From f0b1028a3feb52ea2ec03e7f9a1e1772b7f52b28 Mon Sep 17 00:00:00 2001 From: Sebastian Wolf <65733509+phanlezz@users.noreply.github.com> Date: Fri, 18 Oct 2024 08:41:17 +0200 Subject: [PATCH] Releasing vis-1.129.1 --- README.md | 2 +- .../_posts/release/2024-10-18-vis_1_129_1.md | 18 ++++++++++++++++++ gh-pages/visualization/app/index.html | 2 +- ...68d7842f1eb.js => main.a84126decb7682b7.js} | 2 +- gh-pages/visualization/app/package.json | 2 +- visualization/CHANGELOG.md | 2 ++ visualization/package-lock.json | 4 ++-- visualization/package.json | 2 +- 8 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 gh-pages/_posts/release/2024-10-18-vis_1_129_1.md rename gh-pages/visualization/app/{main.2c27668d7842f1eb.js => main.a84126decb7682b7.js} (80%) diff --git a/README.md b/README.md index 2927db1e51..aa6b0e7d17 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@

Latest Release:
- Analysis 1.127.0 | Visualization 1.129.0 + Analysis 1.127.0 | Visualization 1.129.1 [comment]: ################################################################################## [comment]: diff --git a/gh-pages/_posts/release/2024-10-18-vis_1_129_1.md b/gh-pages/_posts/release/2024-10-18-vis_1_129_1.md new file mode 100644 index 0000000000..3819461c82 --- /dev/null +++ b/gh-pages/_posts/release/2024-10-18-vis_1_129_1.md @@ -0,0 +1,18 @@ +--- +categories: + - Release + - Release-Visualization +tags: + - gh-pages + - release + - visualization + +title: Visualization version 1.129.1 +--- + +{{page.title}} is live and ready for [download](https://github.com/MaibornWolff/codecharta/releases/tag/vis-1.129.1). +This version brings the following: + +### Fixed 🐞 + +- Fix an issue which caused the web demo files to be incomplete [#3790](https://github.com/MaibornWolff/codecharta/pull/3758) diff --git a/gh-pages/visualization/app/index.html b/gh-pages/visualization/app/index.html index 819a6ed37b..2982272e3a 100644 --- a/gh-pages/visualization/app/index.html +++ b/gh-pages/visualization/app/index.html @@ -10,5 +10,5 @@ - + diff --git a/gh-pages/visualization/app/main.2c27668d7842f1eb.js b/gh-pages/visualization/app/main.a84126decb7682b7.js similarity index 80% rename from gh-pages/visualization/app/main.2c27668d7842f1eb.js rename to gh-pages/visualization/app/main.a84126decb7682b7.js index 03a58c397d..d6ebca6270 100644 --- a/gh-pages/visualization/app/main.2c27668d7842f1eb.js +++ b/gh-pages/visualization/app/main.a84126decb7682b7.js @@ -1 +1 @@ -(self.webpackChunkvisualization=self.webpackChunkvisualization||[]).push([[792],{9328:(ut,Se,p)=>{"use strict";function z(n,t,e,i,r,o,s){try{var a=n[o](s),l=a.value}catch(c){return void e(c)}a.done?t(l):Promise.resolve(l).then(i,r)}function k(n){return function(){var t=this,e=arguments;return new Promise(function(i,r){var o=n.apply(t,e);function s(l){z(o,i,r,s,a,"next",l)}function a(l){z(o,i,r,s,a,"throw",l)}s(void 0)})}}function m(n,t){return Object.is(n,t)}let q=null,F=!1,I=1;const G=Symbol("SIGNAL");function T(n){const t=q;return q=n,t}const P={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function K(n){if(F)throw new Error("");if(null===q)return;q.consumerOnSignalRead(n);const t=q.nextProducerIndex++;Ge(q),tn.nextProducerIndex;)n.producerNode.pop(),n.producerLastReadVersion.pop(),n.producerIndexOfThis.pop()}}function ke(n){Ge(n);for(let t=0;t0}function Ge(n){n.producerNode??=[],n.producerIndexOfThis??=[],n.producerLastReadVersion??=[]}function Fe(n){n.liveConsumerNode??=[],n.liveConsumerIndexOfThis??=[]}const Oe=Symbol("UNSET"),tt=Symbol("COMPUTING"),Re=Symbol("ERRORED"),mt={...P,value:Oe,dirty:!0,error:null,equal:m,producerMustRecompute:n=>n.value===Oe||n.value===tt,producerRecomputeValue(n){if(n.value===tt)throw new Error("Detected cycle in computations.");const t=n.value;n.value=tt;const e=Xe(n);let i;try{i=n.computation()}catch(r){i=Re,n.error=r}finally{Je(n,e)}t!==Oe&&t!==Re&&i!==Re&&n.equal(t,i)?n.value=t:(n.value=i,n.version++)}};let Lt=function St(){throw new Error};function qt(){Lt()}let On=null;function Ui(n,t){He()||qt(),n.equal(n.value,t)||(n.value=t,function Pt(n){n.version++,function oe(){I++}(),Me(n),On?.()}(n))}const Ye={...P,equal:m,value:void 0};const En=()=>{},Xt={...P,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:n=>{null!==n.schedule&&n.schedule(n.ref)},hasRun:!1,cleanupFn:En};function Yt(n){return"function"==typeof n}function Ri(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const ir=Ri(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function yr(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class Xn{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const o of e)o.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(Yt(i))try{i()}catch(o){t=o instanceof ir?o.errors:[o]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const o of r)try{So(o)}catch(s){t=t??[],s instanceof ir?t=[...t,...s.errors]:t.push(s)}}if(t)throw new ir(t)}}add(t){var e;if(t&&t!==this)if(this.closed)So(t);else{if(t instanceof Xn){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&yr(e,t)}remove(t){const{_finalizers:e}=this;e&&yr(e,t),t instanceof Xn&&t._removeParent(this)}}Xn.EMPTY=(()=>{const n=new Xn;return n.closed=!0,n})();const ri=Xn.EMPTY;function Qo(n){return n instanceof Xn||n&&"closed"in n&&Yt(n.remove)&&Yt(n.add)&&Yt(n.unsubscribe)}function So(n){Yt(n)?n():n.unsubscribe()}const Zi={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Er={setTimeout(n,t,...e){const{delegate:i}=Er;return i?.setTimeout?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=Er;return(t?.clearTimeout||clearTimeout)(n)},delegate:void 0};function _o(n){Er.setTimeout(()=>{const{onUnhandledError:t}=Zi;if(!t)throw n;t(n)})}function tl(){}const mf=wl("C",void 0,void 0);function wl(n,t,e){return{kind:n,value:t,error:e}}let ea=null;function Zo(n){if(Zi.useDeprecatedSynchronousErrorHandling){const t=!ea;if(t&&(ea={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=ea;if(ea=null,e)throw i}}else n()}class Ac extends Xn{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Qo(t)&&t.add(this)):this.destination=sp}static create(t,e,i){return new Ss(t,e,i)}next(t){this.isStopped?Lu(function Js(n){return wl("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Lu(function Ou(n){return wl("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Lu(mf,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Bd=Function.prototype.bind;function op(n,t){return Bd.call(n,t)}class gc{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){Gc(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){Gc(i)}else Gc(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){Gc(e)}}}class Ss extends Ac{constructor(t,e,i){let r;if(super(),Yt(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let o;this&&Zi.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&op(t.next,o),error:t.error&&op(t.error,o),complete:t.complete&&op(t.complete,o)}):r=t}this.destination=new gc(r)}}function Gc(n){Zi.useDeprecatedSynchronousErrorHandling?function xl(n){Zi.useDeprecatedSynchronousErrorHandling&&ea&&(ea.errorThrown=!0,ea.error=n)}(n):_o(n)}function Lu(n,t){const{onStoppedNotification:e}=Zi;e&&Er.setTimeout(()=>e(n,t))}const sp={closed:!0,next:tl,error:function pf(n){throw n},complete:tl},Nu="function"==typeof Symbol&&Symbol.observable||"@@observable";function ma(n){return n}let Ji=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const o=function Ag(n){return n&&n instanceof Ac||function gf(n){return n&&Yt(n.next)&&Yt(n.error)&&Yt(n.complete)}(n)&&Qo(n)}(e)?e:new Ss(e,i,r);return Zo(()=>{const{operator:s,source:a}=this;o.add(s?s.call(o,a):a?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Af(i))((r,o)=>{const s=new Ss({next:a=>{try{e(a)}catch(l){o(l),s.unsubscribe()}},error:o,complete:r});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Nu](){return this}pipe(...e){return function Uu(n){return 0===n.length?ma:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=Af(e))((i,r)=>{let o;this.subscribe(s=>o=s,s=>r(s),()=>i(o))})}}return n.create=t=>new n(t),n})();function Af(n){var t;return null!==(t=n??Zi.Promise)&&void 0!==t?t:Promise}const jb=Ri(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Ln=(()=>{class n extends Ji{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Hi(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new jb}next(e){Zo(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Zo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Zo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:o}=this;return i||r?ri:(this.currentObservers=null,o.push(e),new Xn(()=>{this.currentObservers=null,yr(o,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:o}=this;i?e.error(r):o&&e.complete()}asObservable(){const e=new Ji;return e.source=this,e}}return n.create=(t,e)=>new Hi(t,e),n})();class Hi extends Ln{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:ri}}class Ia extends Ln{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}function fe(n){return t=>{if(function Be(n){return Yt(n?.lift)}(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function De(n,t,e,i,r){return new yt(n,t,e,i,r)}class yt extends Ac{constructor(t,e,i,r,o,s){super(t),this.onFinalize=o,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){t.error(l)}}:super._next,this._error=r?function(a){try{r(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function Qe(n,t){return fe((e,i)=>{let r=0;e.subscribe(De(i,o=>{i.next(n.call(t,o,r++))}))})}const bi="https://g.co/ng/security#xss";class ct extends Error{constructor(t,e){super(function $i(n,t){return`NG0${Math.abs(n)}${t?": "+t:""}`}(t,e)),this.code=t}}function Fi(n){return{toString:n}.toString()}const rr="__parameters__";function or(n,t,e){return Fi(()=>{const i=function Jo(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...o){if(this instanceof r)return i.apply(this,o),this;const s=new r(...o);return a.annotation=s,a;function a(l,c,d){const u=l.hasOwnProperty(rr)?l[rr]:Object.defineProperty(l,rr,{value:[]})[rr];for(;u.length<=d;)u.push(null);return(u[d]=u[d]||[]).push(s),l}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}const Ti=globalThis;function Ii(n){for(let t in n)if(n[t]===Ii)return t;throw Error("Could not find renamed property on target object.")}function Hu(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function co(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(co).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function Pd(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const El=Ii({__forward_ref__:Ii});function ei(n){return n.__forward_ref__=ei,n.toString=function(){return co(this())},n}function Gn(n){return Bo(n)?n():n}function Bo(n){return"function"==typeof n&&n.hasOwnProperty(El)&&n.__forward_ref__===ei}function Ft(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function It(n){return{providers:n.providers||[],imports:n.imports||[]}}function lp(n){return Jb(n,wf)||Jb(n,jx)}function Jb(n,t){return n.hasOwnProperty(t)?n[t]:null}function yf(n){return n&&(n.hasOwnProperty(cp)||n.hasOwnProperty(PF))?n[cp]:null}const wf=Ii({\u0275prov:Ii}),cp=Ii({\u0275inj:Ii}),jx=Ii({ngInjectableDef:Ii}),PF=Ii({ngInjectorDef:Ii});class dt{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ft({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function nv(n){return n&&!!n.\u0275providers}const up=Ii({\u0275cmp:Ii}),xf=Ii({\u0275dir:Ii}),Cf=Ii({\u0275pipe:Ii}),iv=Ii({\u0275mod:Ii}),$c=Ii({\u0275fac:Ii}),nl=Ii({__NG_ELEMENT_ID__:Ii}),hp=Ii({__NG_ENV_ID__:Ii});function ci(n){return"string"==typeof n?n:null==n?"":String(n)}function rv(n,t){throw new ct(-201,!1)}var sr=function(n){return n[n.Default=0]="Default",n[n.Host=1]="Host",n[n.Self=2]="Self",n[n.SkipSelf=4]="SkipSelf",n[n.Optional=8]="Optional",n}(sr||{});let ov;function Xx(){return ov}function Aa(n){const t=ov;return ov=n,t}function Kx(n,t,e){const i=lp(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&sr.Optional?null:void 0!==t?t:void rv()}const fp={},av="__NG_DI_FLAG__",vg="ngTempTokenPath",HF=/\n/gm,Yx="__source";let Rd;function jc(n){const t=Rd;return Rd=n,t}function mp(n,t=sr.Default){if(void 0===Rd)throw new ct(-203,!1);return null===Rd?Kx(n,void 0,t):Rd.get(n,t&sr.Optional?null:void 0,t)}function ve(n,t=sr.Default){return(Xx()||mp)(Gn(n),t)}function Qt(n,t=sr.Default){return ve(n,Mf(t))}function Mf(n){return typeof n>"u"||"number"==typeof n?n:(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function yg(n){const t=[];for(let e=0;e({token:n})),-1),qu=bc(or("Optional"),8),Ef=bc(or("SkipSelf"),4);function Il(n,t){return n.hasOwnProperty($c)?n[$c]:null}function Gu(n,t){n.forEach(e=>Array.isArray(e)?Gu(e,t):t(e))}function lv(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function pp(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function zo(n,t,e){let i=ka(n,t);return i>=0?n[1|i]=e:(i=~i,function Da(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function qo(n,t){const e=ka(n,t);if(e>=0)return n[1|e]}function ka(n,t){return function cv(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const o=i+(r-i>>1),s=n[o<t?r=o:i=o+1}return~(r<t){s=o-1;break}}}for(;o-1){let o;for(;++ro?"":r[d+1].toLowerCase(),2&i&&c!==u){if(ol(i))return!1;s=!0}}}}else{if(!s&&!ol(i)&&!ol(l))return!1;if(s&&ol(l))continue;s=!1,i=l|1&i}}return ol(i)||s}function ol(n){return!(1&n)}function nC(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let o=!1;for(;r-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?r+="."+s:4&i&&(r+=" "+s);else""!==r&&!ol(s)&&(t+=oC(o,r),r=""),i=s,o=o||!ol(i);e++}return""!==r&&(t+=oC(o,r)),t}function bt(n){return Fi(()=>{const t=aC(n),e={...t,decls:n.decls,vars:n.vars,template:n.template,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,onPush:n.changeDetection===Cg.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&n.dependencies||null,getStandaloneInjector:null,signals:n.signals??!1,data:n.data||{},encapsulation:n.encapsulation||ga.Emulated,styles:n.styles||dr,_:null,schemas:n.schemas||null,tView:null,id:""};lC(e);const i=n.dependencies;return e.directiveDefs=Xu(i,!1),e.pipeDefs=Xu(i,!0),e.id=function JF(n){let t=0;const e=[n.selectors,n.ngContentSelectors,n.hostVars,n.hostAttrs,n.consts,n.vars,n.decls,n.encapsulation,n.standalone,n.signals,n.exportAs,JSON.stringify(n.inputs),JSON.stringify(n.outputs),Object.getOwnPropertyNames(n.type.prototype),!!n.contentQueries,!!n.viewQuery].join("|");for(const r of e)t=Math.imul(31,t)+r.charCodeAt(0)|0;return t+=2147483648,"c"+t}(e),e})}function KF(n){return Vi(n)||es(n)}function YF(n){return null!==n}function kt(n){return Fi(()=>({type:n.type,bootstrap:n.bootstrap||dr,declarations:n.declarations||dr,imports:n.imports||dr,exports:n.exports||dr,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function sC(n,t){if(null==n)return il;const e={};for(const i in n)if(n.hasOwnProperty(i)){const r=n[i];let o,s,a=Ct.None;Array.isArray(r)?(a=r[0],o=r[1],s=r[2]??o):(o=r,s=r),t?(e[o]=a!==Ct.None?[i,a]:i,t[o]=s):e[o]=i}return e}function Wt(n){return Fi(()=>{const t=aC(n);return lC(t),t})}function ur(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function Vi(n){return n[up]||null}function es(n){return n[xf]||null}function Go(n){return n[Cf]||null}function aC(n){const t={};return{type:n.type,providersResolver:null,factory:null,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:n.inputs||il,exportAs:n.exportAs||null,standalone:!0===n.standalone,signals:!0===n.signals,selectors:n.selectors||dr,viewQuery:n.viewQuery||null,features:n.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:sC(n.inputs,t),outputs:sC(n.outputs),debugInfo:null}}function lC(n){n.features?.forEach(t=>t(n))}function Xu(n,t){if(!n)return null;const e=t?Go:KF;return()=>("function"==typeof n?n():n).map(i=>e(i)).filter(YF)}function eD(...n){return{\u0275providers:Tf(0,n),\u0275fromNgModule:!0}}function Tf(n,...t){const e=[],i=new Set;let r;const o=s=>{e.push(s)};return Gu(t,s=>{const a=s;Sg(a,o,[],i)&&(r||=[],r.push(a))}),void 0!==r&&cC(r,o),e}function cC(n,t){for(let e=0;e{t(o,i)})}}function Sg(n,t,e,i){if(!(n=Gn(n)))return!1;let r=null,o=yf(n);const s=!o&&Vi(n);if(o||s){if(s&&!s.standalone)return!1;r=n}else{const l=n.ngModule;if(o=yf(l),!o)return!1;r=l}const a=i.has(r);if(s){if(a)return!1;if(i.add(r),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Sg(c,t,e,i)}}else{if(!o)return!1;{if(null!=o.imports&&!a){let c;i.add(r);try{Gu(o.imports,d=>{Sg(d,t,e,i)&&(c||=[],c.push(d))})}finally{}void 0!==c&&cC(c,t)}if(!a){const c=Il(r)||(()=>new r);t({provide:r,useFactory:c,deps:dr},r),t({provide:Fl,useValue:r,multi:!0},r),t({provide:Nd,useValue:()=>ve(r),multi:!0},r)}const l=o.providers;if(null!=l&&!a){const c=n;mv(l,d=>{t(d,c)})}}}return r!==n&&void 0!==n.providers}function mv(n,t){for(let e of n)nv(e)&&(e=e.\u0275providers),Array.isArray(e)?mv(e,t):t(e)}const Tg=Ii({provide:String,useValue:Ii});function pv(n){return null!==n&&"object"==typeof n&&Tg in n}function Ku(n){return"function"==typeof n}const Av=new dt(""),Ig={},nD={};let gv;function Fg(){return void 0===gv&&(gv=new xg),gv}class Ba{}class If extends Ba{get destroyed(){return this._destroyed}constructor(t,e,i,r){super(),this.parent=e,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,bv(t,s=>this.processProvider(s)),this.records.set(Sf,Ud(void 0,this)),r.has("environment")&&this.records.set(Ba,Ud(void 0,this));const o=this.records.get(Av);null!=o&&"string"==typeof o.value&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(Fl,dr,sr.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const t=T(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),T(t)}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const e=jc(this),i=Aa(void 0);try{return t()}finally{jc(e),Aa(i)}}get(t,e=fp,i=sr.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(hp))return t[hp](this);i=Mf(i);const o=jc(this),s=Aa(void 0);try{if(!(i&sr.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function oD(n){return"function"==typeof n||"object"==typeof n&&n instanceof dt}(t)&&lp(t);l=c&&this.injectableDefInScope(c)?Ud(_v(t),Ig):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&sr.Self?Fg():this.parent).get(t,e=i&sr.Optional&&e===fp?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[vg]=a[vg]||[]).unshift(co(t)),o)throw a;return function QF(n,t,e,i){const r=n[vg];throw t[Yx]&&r.unshift(t[Yx]),n.message=function Od(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let r=co(t);if(Array.isArray(t))r=t.map(co).join(" -> ");else if("object"==typeof t){let o=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];o.push(s+":"+("string"==typeof a?JSON.stringify(a):co(a)))}r=`{${o.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(HF,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[vg]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{Aa(s),jc(o)}}resolveInjectorInitializers(){const t=T(null),e=jc(this),i=Aa(void 0);try{const o=this.get(Nd,dr,sr.Self);for(const s of o)s()}finally{jc(e),Aa(i),T(t)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(co(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ct(205,!1)}processProvider(t){let e=Ku(t=Gn(t))?t:Gn(t&&t.provide);const i=function iD(n){return pv(n)?Ud(void 0,n.useValue):Ud(fC(n),Ig)}(t);if(!Ku(t)&&!0===t.multi){let r=this.records.get(e);r||(r=Ud(void 0,Ig,!0),r.factory=()=>yg(r.multi),this.records.set(e,r)),e=t,r.multi.push(t)}this.records.set(e,i)}hydrate(t,e){const i=T(null);try{return e.value===Ig&&(e.value=nD,e.value=e.factory()),"object"==typeof e.value&&e.value&&function rD(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{T(i)}}injectableDefInScope(t){if(!t.providedIn)return!1;const e=Gn(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(t){const e=this._onDestroyHooks.indexOf(t);-1!==e&&this._onDestroyHooks.splice(e,1)}}function _v(n){const t=lp(n),e=null!==t?t.factory:Il(n);if(null!==e)return e;if(n instanceof dt)throw new ct(204,!1);if(n instanceof Function)return function hC(n){if(n.length>0)throw new ct(204,!1);const e=function Tl(n){return n&&(n[wf]||n[jx])||null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new ct(204,!1)}function fC(n,t,e){let i;if(Ku(n)){const r=Gn(n);return Il(r)||_v(r)}if(pv(n))i=()=>Gn(n.useValue);else if(function uC(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...yg(n.deps||[]));else if(function dC(n){return!(!n||!n.useExisting)}(n))i=()=>ve(Gn(n.useExisting));else{const r=Gn(n&&(n.useClass||n.provide));if(!function Dg(n){return!!n.deps}(n))return Il(r)||_v(r);i=()=>new r(...yg(n.deps))}return i}function Ud(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function bv(n,t){for(const e of n)Array.isArray(e)?bv(e,t):e&&nv(e)?bv(e.\u0275providers,t):t(e)}function mC(){return void 0!==Xx()||null!=function Zx(){return Rd}()}function bp(n){if(!mC())throw new ct(-203,!1)}const uo=0,Jt=1,Hn=2,Ro=3,Dl=4,Fs=5,Pa=6,Ff=7,Xr=8,Ds=9,kl=10,oi=11,yp=12,AC=13,ho=14,bo=15,wp=16,Df=17,Kc=18,xp=19,yv=20,Hd=21,Pg=22,Yu=23,vi=25,wv=1,Bl=7,kf=9,Oo=10;var Mp=function(n){return n[n.None=0]="None",n[n.HasTransplantedViews=2]="HasTransplantedViews",n}(Mp||{});function eo(n){return Array.isArray(n)&&"object"==typeof n[wv]}function Gs(n){return Array.isArray(n)&&!0===n[wv]}function Rg(n){return!!(4&n.flags)}function Pl(n){return n.componentOffset>-1}function Zu(n){return!(1&~n.flags)}function Rl(n){return!!n.template}function xv(n){return!!(512&n[Hn])}class Mv{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Ng(n,t,e,i){null!==t?t.applyValueToInputSignal(t,i):n[e]=i}function xr(){return Ev}function Ev(n){return n.type.prototype.ngOnChanges&&(n.setInput=vC),bD}function bD(){const n=Hg(this),t=n?.current;if(t){const e=n.previous;if(e===il)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function vC(n,t,e,i,r){const o=this.declaredInputs[i],s=Hg(n)||function yC(n,t){return n[Ug]=t}(n,{previous:il,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[o];a[o]=new Mv(c&&c.currentValue,e,l===il),Ng(n,t,r,e)}xr.ngInherit=!0;const Ug="__ngSimpleChanges__";function Hg(n){return n[Ug]||null}const Ol=function(n,t,e){},Qg="svg";let CC=!1;function Cr(n){for(;Array.isArray(n);)n=n[uo];return n}function Sp(n,t){return Cr(t[n])}function na(n,t){return Cr(t[n.index])}function Tp(n,t){return n.data[t]}function Bf(n,t){return n[t]}function Ra(n,t){const e=t[n];return eo(e)?e:e[uo]}function Tv(n){return!(128&~n[Hn])}function yc(n,t){return null==t?null:n[t]}function zg(n){n[Df]=0}function EC(n){1024&n[Hn]||(n[Hn]|=1024,Tv(n)&&Ip(n))}function eh(n){return!!(9216&n[Hn]||n[Yu]?.dirty)}function Iv(n){n[kl].changeDetectionScheduler?.notify(1),eh(n)?Ip(n):64&n[Hn]&&(function vD(){return CC}()?(n[Hn]|=1024,Ip(n)):n[kl].changeDetectionScheduler?.notify())}function Ip(n){n[kl].changeDetectionScheduler?.notify();let t=th(n);for(;null!==t&&!(8192&t[Hn])&&(t[Hn]|=8192,Tv(t));)t=th(t)}function Fp(n,t){if(!(256&~n[Hn]))throw new ct(911,!1);null===n[Hd]&&(n[Hd]=[]),n[Hd].push(t)}function th(n){const t=n[Ro];return Gs(t)?t[Ro]:t}const si={lFrame:Ov(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function TC(){return si.bindingsEnabled}function nh(){return null!==si.skipHydrationRootTNode}function Dt(){return si.lFrame.lView}function ji(){return si.lFrame.tView}function Ot(n){return si.lFrame.contextLView=n,n[Xr]}function Rt(n){return si.lFrame.contextLView=null,n}function Ar(){let n=kC();for(;null!==n&&64===n.type;)n=n.parent;return n}function kC(){return si.lFrame.currentTNode}function sl(n,t){const e=si.lFrame;e.currentTNode=n,e.isParent=t}function qg(){return si.lFrame.isParent}function Gg(){si.lFrame.isParent=!1}function Ws(){const n=si.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function wc(){return si.lFrame.bindingIndex}function Nl(){return si.lFrame.bindingIndex++}function xc(n){const t=si.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}function $g(n,t){const e=si.lFrame;e.bindingIndex=e.bindingRootIndex=n,Dv(t)}function Dv(n){si.lFrame.currentDirectiveIndex=n}function Bv(){return si.lFrame.currentQueryIndex}function Bp(n){si.lFrame.currentQueryIndex=n}function Pv(n){const t=n[Jt];return 2===t.type?t.declTNode:1===t.type?n[Fs]:null}function Rv(n,t,e){if(e&sr.SkipSelf){let r=t,o=n;for(;!(r=r.parent,null!==r||e&sr.Host||(r=Pv(o),null===r||(o=o[ho],10&r.type))););if(null===r)return!1;t=r,n=o}const i=si.lFrame=Xg();return i.currentTNode=t,i.lView=n,!0}function jg(n){const t=Xg(),e=n[Jt];si.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Xg(){const n=si.lFrame,t=null===n?null:n.child;return null===t?Ov(n):t}function Ov(n){const t={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:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Lv(){const n=si.lFrame;return si.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const RC=Lv;function Of(){const n=Lv();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function ks(){return si.lFrame.selectedIndex}function Vd(n){si.lFrame.selectedIndex=n}function Kr(){const n=si.lFrame;return Tp(n.tView,n.selectedIndex)}function Ul(){si.lFrame.currentNamespace=Qg}function Yg(){!function TD(){si.lFrame.currentNamespace=null}()}let Nv=!0;function to(){return Nv}function $s(n){Nv=n}function Hl(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[l]<0&&(n[Df]+=65536),(a>14>16&&(3&n[Hn])===t&&(n[Hn]+=16384,Hv(a,o)):Hv(a,o)}const zd=-1;class Yc{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Vv(n){return n!==zd}function rh(n){return 32767&n}function Pp(n,t){let e=function DD(n){return n>>16}(n),i=t;for(;e>0;)i=i[ho],e--;return i}let Qv=!0;function e0(n){const t=Qv;return Qv=n,t}const t0=255,n0=5;let UC=0;const Cc={};function Rp(n,t){const e=HC(n,t);if(-1!==e)return e;const i=t[Jt];i.firstCreatePass&&(n.injectorIndex=t.length,zv(i.data,n),zv(t,null),zv(i.blueprint,null));const r=r0(n,t),o=n.injectorIndex;if(Vv(r)){const s=rh(r),a=Pp(r,t),l=a[Jt].data;for(let c=0;c<8;c++)t[o+c]=a[s+c]|l[s+c]}return t[o+8]=r,o}function zv(n,t){n.push(0,0,0,0,0,0,0,0,t)}function HC(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function r0(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){if(i=qC(r),null===i)return zd;if(e++,r=r[ho],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return zd}function qv(n,t,e){!function kD(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(nl)&&(i=e[nl]),null==i&&(i=e[nl]=UC++);const r=i&t0;t.data[n+(r>>n0)]|=1<=0?t&t0:a0:t}(e);if("function"==typeof o){if(!Rv(t,n,i))return i&sr.Host?o0(r,0,i):VC(t,e,i,r);try{let s;if(s=o(i),null!=s||i&sr.Optional)return s;rv()}finally{RC()}}else if("number"==typeof o){let s=null,a=HC(n,t),l=zd,c=i&sr.Host?t[bo][Fs]:null;for((-1===a||i&sr.SkipSelf)&&(l=-1===a?r0(n,t):t[a+8],l!==zd&&Mr(i,!1)?(s=t[Jt],a=rh(l),t=Pp(l,t)):a=-1);-1!==a;){const d=t[Jt];if(zC(o,a,d.data)){const u=_n(a,t,e,s,i,c);if(u!==Cc)return u}l=t[a+8],l!==zd&&Mr(i,t[Jt].data[a+8]===c)&&zC(o,a,t)?(s=d,a=rh(l),t=Pp(l,t)):a=-1}}return r}function _n(n,t,e,i,r,o){const s=t[Jt],a=s.data[n+8],d=Zc(a,s,e,null==i?Pl(a)&&Qv:i!=s&&!!(3&a.type),r&sr.Host&&o===a);return null!==d?Mc(t,s,d,a):Cc}function Zc(n,t,e,i,r){const o=n.providerIndexes,s=t.data,a=1048575&o,l=n.directiveStart,d=o>>20,h=r?a+d:n.directiveEnd;for(let f=i?a:a+d;f=l&&A.type===e)return f}if(r){const f=s[l];if(f&&Rl(f)&&f.type===e)return l}return null}function Mc(n,t,e,i){let r=n[e];const o=t.data;if(function NC(n){return n instanceof Yc}(r)){const s=r;s.resolving&&function LF(n,t){throw t&&t.join(" > "),new ct(-200,n)}(function _r(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():ci(n)}(o[e]));const a=e0(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?Aa(s.injectImpl):null;Rv(n,i,sr.Default);try{r=n[e]=s.factory(void 0,o,n,i),t.firstCreatePass&&e>=i.directiveStart&&function Lf(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=t.type.prototype;if(i){const s=Ev(t);(e.preOrderHooks??=[]).push(n,s),(e.preOrderCheckHooks??=[]).push(n,s)}r&&(e.preOrderHooks??=[]).push(0-n,r),o&&((e.preOrderHooks??=[]).push(n,o),(e.preOrderCheckHooks??=[]).push(n,o))}(e,o[e],t)}finally{null!==c&&Aa(c),e0(a),s.resolving=!1,RC()}}return r}function zC(n,t,e){return!!(e[t+(n>>n0)]&1<{const t=n.prototype.constructor,e=t[$c]||Nf(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const o=r[$c]||Nf(r);if(o&&o!==e)return o;r=Object.getPrototypeOf(r)}return o=>new o})}function Nf(n){return Bo(n)?()=>{const t=Nf(Gn(n));return t&&t()}:Il(n)}function qC(n){const t=n[Jt],e=t.type;return 2===e?t.declTNode:1===e?n[Fs]:null}function zl(n){return function BD(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let r=0;for(;r{class n{static{this.THROW_IF_NOT_FOUND=fp}static{this.NULL=new xg}static create(e,i){if(Array.isArray(e))return Kv({name:""},i,e,"");{const r=e.name??"";return Kv({name:r},e.parent,e.providers,r)}}static{this.\u0275prov=Ft({token:n,providedIn:"any",factory:()=>ve(Sf)})}static{this.__NG_ELEMENT_ID__=-1}}return n})();function Uf(n){return n.ngOriginalError}class Oa{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&Uf(t);for(;e&&Uf(e);)e=Uf(e);return e||null}}const oh=new dt("",{providedIn:"root",factory:()=>Qt(Oa).handleError.bind(void 0)});let qd=(()=>{class n{static{this.__NG_ELEMENT_ID__=$C}static{this.__NG_ENV_ID__=e=>e}}return n})();class UD extends qd{constructor(t){super(),this._lView=t}onDestroy(t){return Fp(this._lView,t),()=>function Dp(n,t){if(null===n[Hd])return;const e=n[Hd].indexOf(t);-1!==e&&n[Hd].splice(e,1)}(this._lView,t)}}function $C(){return new UD(Dt())}function VD(){return Hf(Ar(),Dt())}function Hf(n,t){return new Nn(na(n,t))}let Nn=(()=>{class n{constructor(e){this.nativeElement=e}static{this.__NG_ELEMENT_ID__=VD}}return n})();function XC(n){return n instanceof Nn?n.nativeElement:n}function Yv(n){return t=>{setTimeout(n,void 0,t)}}const Fn=class QD extends Ln{constructor(t=!1){super(),this.destroyRef=void 0,this.__isAsync=t,mC()&&(this.destroyRef=Qt(qd,{optional:!0})??void 0)}emit(t){const e=T(null);try{super.next(t)}finally{T(e)}}subscribe(t,e,i){let r=t,o=e||(()=>null),s=i;if(t&&"object"==typeof t){const l=t;r=l.next?.bind(l),o=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(o=Yv(o),r&&(r=Yv(r)),s&&(s=Yv(s)));const a=super.subscribe({next:r,error:o,complete:s});return t instanceof Xn&&t.add(a),a}};function zD(){return this._results[Symbol.iterator]()}class sh{get changes(){return this._changes??=new Fn}constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const e=sh.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=zD)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){this.dirty=!1;const i=function ta(n){return n.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function jr(n,t,e){if(n.length!==t.length)return!1;for(let i=0;ieoe}),eoe="ng",r6=new dt(""),Qf=new dt("",{providedIn:"platform",factory:()=>"unknown"}),_s=new dt(""),GD=new dt("",{providedIn:"root",factory:()=>Vf().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let o6=()=>null;function JD(n,t,e=!1){return o6(n,t,e)}const d6=new dt("",{providedIn:"root",factory:()=>!1});let nM,iM;function f0(n){return function i3(){if(void 0===nM&&(nM=null,Ti.trustedTypes))try{nM=Ti.trustedTypes.createPolicy("angular",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return nM}()?.createHTML(n)||n}function h6(n){return function r3(){if(void 0===iM&&(iM=null,Ti.trustedTypes))try{iM=Ti.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return iM}()?.createHTML(n)||n}class Hp{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${bi})`}}function Wl(n){return n instanceof Hp?n.changingThisBreaksApplicationSecurity:n}function $d(n,t){const e=function boe(n){return n instanceof Hp&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see ${bi})`)}return e===t}class Moe{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(f0(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class Eoe{constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){const e=this.inertDocument.createElement("template");return e.innerHTML=f0(t),e}}const Toe=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function rM(n){return(n=String(n)).match(Toe)?n:"unsafe:"+n}function dh(n){const t={};for(const e of n.split(","))t[e]=!0;return t}function iy(...n){const t={};for(const e of n)for(const i in e)e.hasOwnProperty(i)&&(t[i]=!0);return t}const A6=dh("area,br,col,hr,img,wbr"),g6=dh("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),_6=dh("rp,rt"),o3=iy(A6,iy(g6,dh("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),iy(_6,dh("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),iy(_6,g6)),s3=dh("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),b6=iy(s3,dh("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),dh("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),Ioe=dh("script,style,template");class Foe{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,i=!0,r=[];for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)r.push(e),e=Boe(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=koe(e);if(o){e=o;break}e=r.pop()}return this.buf.join("")}startElement(t){const e=v6(t).toLowerCase();if(!o3.hasOwnProperty(e))return this.sanitizedSomething=!0,!Ioe.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=t.attributes;for(let r=0;r"),!0}endElement(t){const e=v6(t).toLowerCase();o3.hasOwnProperty(e)&&!A6.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(w6(t))}}function koe(n){const t=n.nextSibling;if(t&&n!==t.previousSibling)throw y6(t);return t}function Boe(n){const t=n.firstChild;if(t&&function Doe(n,t){return(n.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(n,t))throw y6(t);return t}function v6(n){const t=n.nodeName;return"string"==typeof t?t:"FORM"}function y6(n){return new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`)}const Poe=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Roe=/([^\#-~ |!])/g;function w6(n){return n.replace(/&/g,"&").replace(Poe,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(Roe,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let oM;function x6(n,t){let e=null;try{oM=oM||function p6(n){const t=new Eoe(n);return function Soe(){try{return!!(new window.DOMParser).parseFromString(f0(""),"text/html")}catch{return!1}}()?new Moe(t):t}(n);let i=t?String(t):"";e=oM.getInertBodyElement(i);let r=5,o=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=e.innerHTML,e=oM.getInertBodyElement(i)}while(i!==o);return f0((new Foe).sanitizeChildren(a3(e)||e))}finally{if(e){const i=a3(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function a3(n){return"content"in n&&function Ooe(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var ra=function(n){return n[n.NONE=0]="NONE",n[n.HTML=1]="HTML",n[n.STYLE=2]="STYLE",n[n.SCRIPT=3]="SCRIPT",n[n.URL=4]="URL",n[n.RESOURCE_URL=5]="RESOURCE_URL",n}(ra||{});function l3(n){const t=ry();return t?h6(t.sanitize(ra.HTML,n)||""):$d(n,"HTML")?h6(Wl(n)):x6(Vf(),ci(n))}function Vp(n){const t=ry();return t?t.sanitize(ra.URL,n)||"":$d(n,"URL")?Wl(n):rM(ci(n))}function ry(){const n=Dt();return n&&n[kl].sanitizer}const zoe=/^>|^->||--!>|)/g,Goe="\u200b$1\u200b";function oy(n){return n.ownerDocument.defaultView}function T6(n){return n.ownerDocument}var qf=function(n){return n[n.Important=1]="Important",n[n.DashCase=2]="DashCase",n}(qf||{});let h3;function f3(n,t){return h3(n,t)}function p0(n,t,e,i,r){if(null!=i){let o,s=!1;Gs(i)?o=i:eo(i)&&(s=!0,i=i[uo]);const a=Cr(i);0===n&&null!==e?null==r?L6(t,e,a):Qp(t,e,a,r||null,!0):1===n&&null!==e?Qp(t,e,a,r||null,!0):2===n?function ly(n,t,e){const i=dM(n,t);i&&function lse(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,a,s):3===n&&t.destroyNode(a),null!=o&&function use(n,t,e,i,r){const o=e[Bl];o!==Cr(e)&&p0(t,n,i,o,r);for(let a=Oo;at.replace(qoe,Goe))}(t))}function lM(n,t,e){return n.createElement(t,e)}function P6(n,t){t[kl].changeDetectionScheduler?.notify(1),hM(n,t,t[oi],2,null,null)}function R6(n,t){const e=n[kf],i=e.indexOf(t);e.splice(i,1)}function sy(n,t){if(n.length<=Oo)return;const e=Oo+t,i=n[e];if(i){const r=i[wp];null!==r&&r!==n&&R6(r,i),t>0&&(n[e-1][Dl]=i[Dl]);const o=pp(n,Oo+t);!function tse(n,t){P6(n,t),t[uo]=null,t[Fs]=null}(i[Jt],i);const s=o[Kc];null!==s&&s.detachView(o[Jt]),i[Ro]=null,i[Dl]=null,i[Hn]&=-129}return i}function cM(n,t){if(!(256&t[Hn])){const e=t[oi];e.destroyNode&&hM(n,t,e,3,null,null),function ise(n){let t=n[yp];if(!t)return A3(n[Jt],n);for(;t;){let e=null;if(eo(t))e=t[yp];else{const i=t[Oo];i&&(e=i)}if(!e){for(;t&&!t[Dl]&&t!==n;)eo(t)&&A3(t[Jt],t),t=t[Ro];null===t&&(t=n),eo(t)&&A3(t[Jt],t),e=t&&t[Dl]}t=e}}(t)}}function A3(n,t){if(256&t[Hn])return;const e=T(null);try{t[Hn]&=-129,t[Hn]|=256,t[Yu]&>(t[Yu]),function ase(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[s]():i[-s].unsubscribe(),o+=2}else e[o].call(i[e[o+1]]);null!==i&&(t[Ff]=null);const r=t[Hd];if(null!==r){t[Hd]=null;for(let o=0;o-1){const{encapsulation:o}=n.data[i.directiveStart+r];if(o===ga.None||o===ga.Emulated)return null}return na(i,e)}}(n,t.parent,e)}function Qp(n,t,e,i,r){n.insertBefore(t,e,i,r)}function L6(n,t,e){n.appendChild(t,e)}function N6(n,t,e,i,r){null!==i?Qp(n,t,e,i,r):L6(n,t,e)}function dM(n,t){return n.parentNode(t)}function U6(n,t,e){return V6(n,t,e)}let _3,V6=function H6(n,t,e){return 40&n.type?na(n,e):null};function uM(n,t,e,i){const r=g3(n,i,t),o=t[oi],a=U6(i.parent||t[Fs],i,t);if(null!=r)if(Array.isArray(e))for(let l=0;lvi&&j6(n,t,vi,!1),Ol(s?2:0,r),e(i,r)}finally{Vd(o),Ol(s?3:1,r)}}function w3(n,t,e){if(Rg(t)){const i=T(null);try{const o=t.directiveEnd;for(let s=t.directiveStart;snull;function e7(n,t,e,i,r){for(let o in t){if(!t.hasOwnProperty(o))continue;const s=t[o];if(void 0===s)continue;i??={};let a,l=Ct.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let c=o;if(null!==r){if(!r.hasOwnProperty(o))continue;c=r[o]}0===n?t7(i,e,c,a,l):t7(i,e,c,a)}return i}function t7(n,t,e,i,r){let o;n.hasOwnProperty(e)?(o=n[e]).push(t,i):o=n[e]=[t,i],void 0!==r&&o.push(r)}function ll(n,t,e,i,r,o,s,a){const l=na(t,e);let d,c=t.inputs;!a&&null!=c&&(d=c[i])?(F3(n,e,d,i,r),Pl(t)&&function Cse(n,t){const e=Ra(t,n);16&e[Hn]||(e[Hn]|=64)}(e,t.index)):3&t.type&&(i=function xse(n){return"class"===n?"className":"for"===n?"htmlFor":"formaction"===n?"formAction":"innerHtml"===n?"innerHTML":"readonly"===n?"readOnly":"tabindex"===n?"tabIndex":n}(i),r=null!=s?s(r,t.value||"",i):r,o.setProperty(l,i,r))}function E3(n,t,e,i){if(TC()){const r=null===i?null:{"":-1},o=function Fse(n,t){const e=n.directiveRegistry;let i=null,r=null;if(e)for(let o=0;o0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,o)}}(n,t,i,cy(n,e,r.hostVars,Di),r)}function jd(n,t,e,i,r,o){const s=na(n,t);!function T3(n,t,e,i,r,o,s){if(null==o)n.removeAttribute(t,r,e);else{const a=null==s?ci(o):s(o,i||"",r);n.setAttribute(t,r,a,e)}}(t[oi],s,o,n.value,e,i,r)}function Ose(n,t,e,i,r,o){const s=o[t];if(null!==s)for(let a=0;a0&&(e[r-1][Dl]=t),i{Ip(n.lView)},consumerOnSignalRead(){this.lView[Yu]=this}},h7=100;function AM(n,t=!0,e=0){const i=n[kl],r=i.rendererFactory;r.begin?.();try{!function Gse(n,t){B3(n,t);let e=0;for(;eh(n);){if(e===h7)throw new ct(103,!1);e++,B3(n,1)}}(n,e)}catch(s){throw t&&pM(n,s),s}finally{r.end?.(),i.inlineEffectRunner?.flush()}}function Wse(n,t,e,i){const r=t[Hn];if(!(256&~r))return;t[kl].inlineEffectRunner?.flush(),jg(t);let s=null,a=null;(function $se(n){return 2!==n.type})(n)&&(a=function Vse(n){return n[Yu]??function Qse(n){const t=u7.pop()??Object.create(qse);return t.lView=n,t}(n)}(t),s=Xe(a));try{zg(t),function PC(n){return si.lFrame.bindingIndex=n}(n.bindingStartIndex),null!==e&&Y6(n,t,e,2,i);const l=!(3&~r);if(l){const u=n.preOrderCheckHooks;null!==u&&Vl(t,u,null)}else{const u=n.preOrderHooks;null!==u&&Qd(t,u,0,null),Ql(t,0)}if(function jse(n){for(let t=gs(n);null!==t;t=ed(t)){if(!(t[Hn]&Mp.HasTransplantedViews))continue;const e=t[kf];for(let i=0;i-1&&(sy(t,i),pp(e,i))}this._attachedToViewContainer=!1}cM(this._lView[Jt],this._lView)}onDestroy(t){Fp(this._lView,t)}markForCheck(){fy(this._cdRefInjectingView||this._lView)}detach(){this._lView[Hn]&=-129}reattach(){Iv(this._lView),this._lView[Hn]|=128}detectChanges(){this._lView[Hn]|=1024,AM(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ct(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,P6(this._lView[Jt],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new ct(902,!1);this._appRef=t,Iv(this._lView)}}let jl=(()=>{class n{static{this.__NG_ELEMENT_ID__=Zse}}return n})();const Kse=jl,Yse=class extends Kse{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,e){return this.createEmbeddedViewImpl(t,e)}createEmbeddedViewImpl(t,e,i){const r=dy(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:e,dehydratedView:i});return new my(r)}};function Zse(){return gM(Ar(),Dt())}function gM(n,t){return 4&n.type?new Yse(t,n,Hf(n,t)):null}let y7=()=>null;function _0(n,t){return y7(n,t)}class wM{}class wae{}class w7{}class Cae{resolveComponentFactory(t){throw function xae(n){const t=Error(`No component factory found for ${co(n)}.`);return t.ngComponent=n,t}(t)}}let b0=(()=>{class n{static{this.NULL=new Cae}}return n})();class U3{}let zp=(()=>{class n{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function Mae(){const n=Dt(),e=Ra(Ar().index,n);return(eo(e)?e:n)[oi]}()}}return n})(),Eae=(()=>{class n{static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:()=>null})}}return n})();const H3={},C7=new Set;function Xd(n){C7.has(n)||(C7.add(n),performance?.mark?.("mark_feature_usage",{detail:{feature:n}}))}function M7(...n){}class In{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fn(!1),this.onMicrotaskEmpty=new Fn(!1),this.onStable=new Fn(!1),this.onError=new Fn(!1),typeof Zone>"u")throw new ct(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function Sae(){const n="function"==typeof Ti.requestAnimationFrame;let t=Ti[n?"requestAnimationFrame":"setTimeout"],e=Ti[n?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&e){const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function Fae(n){const t=()=>{!function Iae(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Ti,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,Q3(n),n.isCheckStableRunning=!0,V3(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),Q3(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,o,s,a)=>{if(function Dae(n){return!(!Array.isArray(n)||1!==n.length)&&!0===n[0].data?.__ignore_ng_zone__}(a))return e.invokeTask(r,o,s,a);try{return E7(n),e.invokeTask(r,o,s,a)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||n.shouldCoalesceRunChangeDetection)&&t(),S7(n)}},onInvoke:(e,i,r,o,s,a,l)=>{try{return E7(n),e.invoke(r,o,s,a,l)}finally{n.shouldCoalesceRunChangeDetection&&t(),S7(n)}},onHasTask:(e,i,r,o)=>{e.hasTask(r,o),i===r&&("microTask"==o.change?(n._hasPendingMicrotasks=o.microTask,Q3(n),V3(n)):"macroTask"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:(e,i,r,o)=>(e.handleError(r,o),n.runOutsideAngular(()=>n.onError.emit(o)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!In.isInAngularZone())throw new ct(909,!1)}static assertNotInAngularZone(){if(In.isInAngularZone())throw new ct(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+r,t,Tae,M7,M7);try{return o.runTask(s,e,i)}finally{o.cancelTask(s)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const Tae={};function V3(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function Q3(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function E7(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function S7(n){n._nesting--,V3(n)}class T7{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fn,this.onMicrotaskEmpty=new Fn,this.onStable=new Fn,this.onError=new Fn}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}let by=(()=>{class n{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:()=>new n})}}return n})();function CM(n,t,e){let i=e?n.styles:null,r=e?n.classes:null,o=0;if(null!==t)for(let s=0;s0&&W6(n,e,o.join(" "))}}(f,N,y,i),void 0!==e&&function qae(n,t,e){const i=n.projection=[];for(let r=0;r{class n{static{this.__NG_ELEMENT_ID__=Wae}}return n})();function Wae(){return N7(Ar(),Dt())}const $ae=oa,O7=class extends $ae{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return Hf(this._hostTNode,this._hostLView)}get injector(){return new ns(this._hostTNode,this._hostLView)}get parentInjector(){const t=r0(this._hostTNode,this._hostLView);if(Vv(t)){const e=Pp(t,this._hostLView),i=rh(t);return new ns(e[Jt].data[i+8],e)}return new ns(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=L7(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-Oo}createEmbeddedView(t,e,i){let r,o;"number"==typeof i?r=i:null!=i&&(r=i.index,o=i.injector);const s=_0(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(e||{},o,s);return this.insertImpl(a,r,g0(this._hostTNode,s)),a}createComponent(t,e,i,r,o){const s=t&&!function vp(n){return"function"==typeof n}(t);let a;if(s)a=e;else{const A=e||{};a=A.index,i=A.injector,r=A.projectableNodes,o=A.environmentInjector||A.ngModuleRef}const l=s?t:new wy(Vi(t)),c=i||this.parentInjector;if(!o&&null==l.ngModule){const y=(s?c:this.parentInjector).get(Ba,null);y&&(o=y)}const d=Vi(l.componentType??{}),u=_0(this._lContainer,d?.id??null),f=l.create(c,r,u?.firstChild??null,o);return this.insertImpl(f.hostView,a,g0(this._hostTNode,u)),f}insert(t,e){return this.insertImpl(t,e,!0)}insertImpl(t,e,i){const r=t._lView;if(function MC(n){return Gs(n[Ro])}(r)){const a=this.indexOf(t);if(-1!==a)this.detach(a);else{const l=r[Ro],c=new O7(l,l[Fs],l[Ro]);c.detach(c.indexOf(t))}}const o=this._adjustIndex(e),s=this._lContainer;return uy(s,r,o,i),t.attachToViewContainerRef(),lv(W3(s),o,t),t}move(t,e){return this.insert(t,e)}indexOf(t){const e=L7(this._lContainer);return null!==e?e.indexOf(t):-1}remove(t){const e=this._adjustIndex(t,-1),i=sy(this._lContainer,e);i&&(pp(W3(this._lContainer),e),cM(i[Jt],i))}detach(t){const e=this._adjustIndex(t,-1),i=sy(this._lContainer,e);return i&&null!=pp(W3(this._lContainer),e)?new my(i):null}_adjustIndex(t,e=0){return t??this.length+e}};function L7(n){return n[8]}function W3(n){return n[8]||(n[8]=[])}function N7(n,t){let e;const i=t[n.index];return Gs(i)?e=i:(e=r7(i,t,null,n),t[n.index]=e,mM(t,e)),U7(e,t,n,i),new O7(e,n,t)}let U7=function V7(n,t,e,i){if(n[Bl])return;let r;r=8&e.type?Cr(i):function jae(n,t){const e=n[oi],i=e.createComment(""),r=na(t,n);return Qp(e,dM(e,r),i,function cse(n,t){return n.nextSibling(t)}(e,r),!1),i}(t,e),n[Bl]=r},$3=()=>!1;class j3{constructor(t){this.queryList=t,this.matches=null}clone(){return new j3(this.queryList)}setDirty(){this.queryList.setDirty()}}class X3{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const i=null!==t.contentQueries?t.contentQueries[0]:e.length,r=[];for(let o=0;ot.trim())}(t):t}}class K3{constructor(t=[]){this.queries=t}elementStart(t,e){for(let i=0;i0)i.push(s[a/2]);else{const c=o[a+1],d=t[-l];for(let u=Oo;u(K(t),t.value);return e[G]=t,e}(n),i=e[G];return t?.equal&&(i.equal=t.equal),e.set=r=>Ui(i,r),e.update=r=>function li(n,t){He()||qt(),Ui(n,t(n.value))}(i,r),e.asReadonly=X7.bind(e),e}function X7(){const n=this[G];if(void 0===n.readonlyFn){const t=()=>this();t[G]=n,n.readonlyFn=t}return n.readonlyFn}function K7(n){return EM(n)&&"function"==typeof n.set}function yi(n){let t=function a9(n){return Object.getPrototypeOf(n.prototype).constructor}(n.type),e=!0;const i=[n];for(;t;){let r;if(Rl(n))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new ct(903,!1);r=t.\u0275dir}if(r){if(e){i.push(r);const s=n;s.inputs=TM(n.inputs),s.inputTransforms=TM(n.inputTransforms),s.declaredInputs=TM(n.declaredInputs),s.outputs=TM(n.outputs);const a=r.hostBindings;a&&gle(n,a);const l=r.viewQuery,c=r.contentQueries;if(l&&ple(n,l),c&&Ale(n,c),fle(n,r),Hu(n.outputs,r.outputs),Rl(r)&&r.data.animation){const d=n.data;d.animation=(d.animation||[]).concat(r.data.animation)}}const o=r.features;if(o)for(let s=0;s=0;i--){const r=n[i];r.hostVars=t+=r.hostVars,r.hostAttrs=Ap(r.hostAttrs,e=Ap(e,r.hostAttrs))}}(i)}function fle(n,t){for(const e in t.inputs){if(!t.inputs.hasOwnProperty(e)||n.inputs.hasOwnProperty(e))continue;const i=t.inputs[e];if(void 0!==i&&(n.inputs[e]=i,n.declaredInputs[e]=t.declaredInputs[e],null!==t.inputTransforms)){const r=Array.isArray(i)?i[0]:i;if(!t.inputTransforms.hasOwnProperty(r))continue;n.inputTransforms??={},n.inputTransforms[r]=t.inputTransforms[r]}}}function TM(n){return n===il?{}:n===dr?[]:n}function ple(n,t){const e=n.viewQuery;n.viewQuery=e?(i,r)=>{t(i,r),e(i,r)}:t}function Ale(n,t){const e=n.contentQueries;n.contentQueries=e?(i,r,o)=>{t(i,r,o),e(i,r,o)}:t}function gle(n,t){const e=n.hostBindings;n.hostBindings=e?(i,r)=>{t(i,r),e(i,r)}:t}function rs(n){const t=n.inputConfig,e={};for(const i in t)if(t.hasOwnProperty(i)){const r=t[i];Array.isArray(r)&&r[3]&&(e[i]=r[3])}n.inputTransforms=e}class Wp{}class xle{}class ik extends Wp{constructor(t,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new P7(this);const r=function qs(n,t){const e=n[iv]||null;if(!e&&!0===t)throw new Error(`Type ${co(n)} does not have '\u0275mod' property.`);return e}(t);this._bootstrapComponents=function $l(n){return n instanceof Function?n():n}(r.bootstrap),this._r3Injector=Lp(t,e,[{provide:Wp,useValue:this},{provide:b0,useValue:this.componentFactoryResolver},...i],co(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class rk extends xle{constructor(t){super(),this.moduleType=t}create(t){return new ik(this.moduleType,t,[])}}class u9 extends Wp{constructor(t){super(),this.componentFactoryResolver=new P7(this),this.instance=null;const e=new If([...t.providers,{provide:Wp,useValue:this},{provide:b0,useValue:this.componentFactoryResolver}],t.parent||Fg(),t.debugName,new Set(["environment"]));this.injector=e,t.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}let $p=(()=>{class n{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Ia(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function ok(n){return null!==n&&("function"==typeof n||"object"==typeof n)}function Kd(n,t,e){return n[t]=e}function os(n,t,e){return!Object.is(n[t],e)&&(n[t]=e,!0)}function jp(n,t,e,i){const r=os(n,t,e);return os(n,t+1,i)||r}function Ec(n,t,e,i,r,o){const s=jp(n,t,e,i);return jp(n,t+2,r,o)||s}function pt(n,t,e,i,r,o,s,a){const l=Dt(),c=ji(),d=n+vi,u=c.firstCreatePass?function Dle(n,t,e,i,r,o,s,a,l){const c=t.consts,d=A0(t,n,4,s||null,yc(c,a));E3(t,e,d,yc(c,l)),Hl(t,d);const u=d.tView=M3(2,d,i,r,o,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,d),u.queries=t.queries.embeddedTView(d)),d}(d,c,l,t,e,i,r,o,s):c.data[d];sl(u,!1);const h=f9(c,l,u,n);to()&&uM(c,l,h,u),Wn(h,l);const f=r7(h,l,h,u);return l[d]=f,mM(l,f),function H7(n,t,e){return $3(n,t,e)}(f,u,l),Zu(u)&&x3(c,l,u),null!=s&&C3(l,u,a),pt}let f9=function m9(n,t,e,i){return $s(!0),t[oi].createComment("")};function pi(n,t,e,i){const r=Dt();return os(r,Nl(),t)&&(ji(),jd(Kr(),r,n,t,e,i)),pi}function T0(n,t,e,i){return os(n,Nl(),e)?t+ci(e)+i:Di}function I0(n,t,e,i,r,o){const a=jp(n,wc(),e,r);return xc(2),a?t+ci(e)+i+ci(r)+o:Di}function LM(n,t){return n<<17|t<<2}function $f(n){return n>>17&32767}function pk(n){return 2|n}function Kp(n){return(131068&n)>>2}function Ak(n,t){return-131069&n|t<<2}function gk(n){return 1|n}function G9(n,t,e,i){const r=n[e+1],o=null===t;let s=i?$f(r):Kp(r),a=!1;for(;0!==s&&(!1===a||o);){const c=n[s+1];Ace(n[s],t)&&(a=!0,n[s+1]=i?gk(c):pk(c)),s=i?$f(c):Kp(c)}a&&(n[e+1]=i?pk(r):gk(r))}function Ace(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&ka(n,t)>=0}const Ps={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function W9(n){return n.substring(Ps.key,Ps.keyEnd)}function gce(n){return n.substring(Ps.value,Ps.valueEnd)}function $9(n,t){const e=Ps.textEnd;return e===t?-1:(t=Ps.keyEnd=function vce(n,t,e){for(;t32;)t++;return t}(n,Ps.key=t,e),O0(n,t,e))}function j9(n,t){const e=Ps.textEnd;let i=Ps.key=O0(n,t,e);return e===i?-1:(i=Ps.keyEnd=function yce(n,t,e){let i;for(;t=65&&(-33&i)<=90||i>=48&&i<=57);)t++;return t}(n,i,e),i=K9(n,i,e),i=Ps.value=O0(n,i,e),i=Ps.valueEnd=function wce(n,t,e){let i=-1,r=-1,o=-1,s=t,a=s;for(;s32&&(a=s),o=r,r=i,i=-33&l}return a}(n,i,e),K9(n,i,e))}function X9(n){Ps.key=0,Ps.keyEnd=0,Ps.value=0,Ps.valueEnd=0,Ps.textEnd=n.length}function O0(n,t,e){for(;t=0;e=j9(t,e))eH(n,W9(t),gce(t))}function cl(n){od(Ice,Yd,n,!0)}function Yd(n,t){for(let e=function _ce(n){return X9(n),$9(n,O0(n,0,Ps.textEnd))}(t);e>=0;e=$9(t,e))zo(n,W9(t),!0)}function rd(n,t,e,i){const r=Dt(),o=ji(),s=xc(2);o.firstUpdatePass&&J9(o,n,s,i),t!==Di&&os(r,s,t)&&tH(o,o.data[ks()],r,r[oi],n,r[s+1]=function Dce(n,t){return null==n||""===n||("string"==typeof t?n+=t:"object"==typeof n&&(n=co(Wl(n)))),n}(t,e),i,s)}function od(n,t,e,i){const r=ji(),o=xc(2);r.firstUpdatePass&&J9(r,null,o,i);const s=Dt();if(e!==Di&&os(s,o,e)){const a=r.data[ks()];if(iH(a,i)&&!Z9(r,o)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=Pd(l,e||"")),_k(r,a,s,e,i)}else!function Fce(n,t,e,i,r,o,s,a){r===Di&&(r=dr);let l=0,c=0,d=0=n.expandoStartIndex}function J9(n,t,e,i){const r=n.data;if(null===r[e+1]){const o=r[ks()],s=Z9(n,e);iH(o,i)&&null===t&&!s&&(t=!1),t=function Cce(n,t,e,i){const r=function kv(n){const t=si.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let o=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=Iy(e=bk(null,n,t,e,i),t.attrs,i),o=null);else{const s=t.directiveStylingLast;if(-1===s||n[s]!==r)if(e=bk(r,n,t,e,i),null===o){let l=function Mce(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Kp(i))return n[$f(i)]}(n,t,i);void 0!==l&&Array.isArray(l)&&(l=bk(null,n,t,l[1],i),l=Iy(l,t.attrs,i),function Ece(n,t,e,i){n[$f(e?t.classBindings:t.styleBindings)]=i}(n,t,i,l))}else o=function Sce(n,t,e){let i;const r=t.directiveEnd;for(let o=1+t.directiveStylingLast;o0)&&(c=!0)):d=e,r)if(0!==l){const h=$f(n[a+1]);n[i+1]=LM(h,a),0!==h&&(n[h+1]=Ak(n[h+1],i)),n[a+1]=function hce(n,t){return 131071&n|t<<17}(n[a+1],i)}else n[i+1]=LM(a,0),0!==a&&(n[a+1]=Ak(n[a+1],i)),a=i;else n[i+1]=LM(l,0),0===a?a=i:n[l+1]=Ak(n[l+1],i),l=i;c&&(n[i+1]=pk(n[i+1])),G9(n,d,i,!0),G9(n,d,i,!1),function pce(n,t,e,i,r){const o=r?n.residualClasses:n.residualStyles;null!=o&&"string"==typeof t&&ka(o,t)>=0&&(e[i+1]=gk(e[i+1]))}(t,d,n,i,o),s=LM(a,l),o?t.classBindings=s:t.styleBindings=s}(r,o,t,e,s,i)}}function bk(n,t,e,i,r){let o=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=n[r],c=Array.isArray(l),d=c?l[1]:l,u=null===d;let h=e[r+1];h===Di&&(h=u?dr:void 0);let f=u?qo(h,i):d===i?h:void 0;if(c&&!NM(f)&&(f=qo(l,i)),NM(f)&&(a=f,s))return a;const A=n[r+1];r=s?$f(A):Kp(A)}if(null!==t){let l=o?t.residualClasses:t.residualStyles;null!=l&&(a=qo(l,i))}return a}function NM(n){return void 0!==n}function iH(n,t){return!!(n.flags&(t?8:16))}function hh(n,t,e){od(zo,Yd,T0(Dt(),n,t,e),!0)}class Uce{destroy(t){}updateValue(t,e){}swap(t,e){const i=Math.min(t,e),r=Math.max(t,e),o=this.detach(r);if(r-i>1){const s=this.detach(i);this.attach(i,o),this.attach(r,s)}else this.attach(i,o)}move(t,e){this.attach(e,this.detach(t))}}function vk(n,t,e,i,r){return n===e&&Object.is(t,i)?1:Object.is(r(n,t),r(e,i))?-1:0}function yk(n,t,e,i){return!(void 0===t||!t.has(i)||(n.attach(e,t.get(i)),t.delete(i),0))}function sH(n,t,e,i,r){if(yk(n,t,i,e(i,r)))n.updateValue(i,r);else{const o=n.create(i,r);n.attach(i,o)}}function aH(n,t,e,i){const r=new Set;for(let o=t;o<=e;o++)r.add(i(o,n.at(o)));return r}class lH{constructor(){this.kvMap=new Map,this._vMap=void 0}has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;const e=this.kvMap.get(t);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(t,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,e){if(this.kvMap.has(t)){let i=this.kvMap.get(t);void 0===this._vMap&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,e)}else this.kvMap.set(t,e)}forEach(t){for(let[e,i]of this.kvMap)if(t(i,e),void 0!==this._vMap){const r=this._vMap;for(;r.has(i);)i=r.get(i),t(i,e)}}}function Tt(n,t,e){Xd("NgControlFlow");const i=Dt(),r=Nl(),o=wk(i,vi+n);if(os(i,r,t)){const a=T(null);try{if(k3(o,0),-1!==t){const l=xk(i[Jt],vi+t),c=_0(o,l.tView.ssrId);uy(o,dy(i,l,e,{dehydratedView:c}),0,g0(l,c))}}finally{T(a)}}else{const a=c7(o,0);void 0!==a&&(a[Xr]=e)}}class Vce{constructor(t,e,i){this.lContainer=t,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-Oo}}function qr(n,t){return t}class zce{constructor(t,e,i){this.hasEmptyBlock=t,this.trackByFn=e,this.liveCollection=i}}function Or(n,t,e,i,r,o,s,a,l,c,d,u,h){Xd("NgControlFlow");const f=void 0!==l,A=Dt(),y=a?s.bind(A[bo][Xr]):s,_=new zce(f,y);A[vi+n]=_,pt(n+1,t,e,i,r,o),f&&pt(n+2,l,c,d,u,h)}class qce extends Uce{constructor(t,e,i){super(),this.lContainer=t,this.hostLView=e,this.templateTNode=i,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Oo}at(t){return this.getLView(t)[Xr].$implicit}attach(t,e){const i=e[Pa];this.needsIndexUpdate||=t!==this.length,uy(this.lContainer,e,t,g0(this.templateTNode,i))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,function Gce(n,t){return sy(n,t)}(this.lContainer,t)}create(t,e){const i=_0(this.lContainer,this.templateTNode.tView.ssrId);return dy(this.hostLView,this.templateTNode,new Vce(this.lContainer,e,t),{dehydratedView:i})}destroy(t){cM(t[Jt],t)}updateValue(t,e){this.getLView(t)[Xr].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t{n.destroy(a)})}(s,n,o.trackByFn),s.updateIndexes(),o.hasEmptyBlock){const a=Nl(),l=0===s.length;if(os(i,a,l)){const c=e+2,d=wk(i,c);if(l){const u=xk(r,c),h=_0(d,u.tView.ssrId);uy(d,dy(i,u,void 0,{dehydratedView:h}),0,g0(u,h))}else k3(d,0)}}}finally{T(t)}}function wk(n,t){return n[t]}function xk(n,t){return Tp(n,t)}function D(n,t,e,i){const r=Dt(),o=ji(),s=vi+n,a=r[oi],l=o.firstCreatePass?function $ce(n,t,e,i,r,o){const s=t.consts,l=A0(t,n,2,i,yc(s,r));return E3(t,e,l,yc(s,o)),null!==l.attrs&&CM(l,l.attrs,!1),null!==l.mergedAttrs&&CM(l,l.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,l),l}(s,o,r,t,e,i):o.data[s],c=cH(o,r,l,a,t,n);r[s]=c;const d=Zu(l);return sl(l,!0),$6(a,c,l),!function My(n){return!(32&~n.flags)}(l)&&to()&&uM(o,r,c,l),0===function xD(){return si.lFrame.elementDepthCount}()&&Wn(c,r),function CD(){si.lFrame.elementDepthCount++}(),d&&(x3(o,r,l),w3(o,l,r)),null!==i&&C3(r,l),D}function U(){let n=Ar();qg()?Gg():(n=n.parent,sl(n,!1));const t=n;(function IC(n){return si.skipHydrationRootTNode===n})(t)&&function ED(){si.skipHydrationRootTNode=null}(),function MD(){si.lFrame.elementDepthCount--}();const e=ji();return e.firstCreatePass&&(Hl(e,n),Rg(n)&&e.queries.elementEnd(n)),null!=t.classesWithoutHost&&function ID(n){return!!(8&n.flags)}(t)&&_k(e,t,Dt(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function FD(n){return!!(16&n.flags)}(t)&&_k(e,t,Dt(),t.stylesWithoutHost,!1),U}function xe(n,t,e,i){return D(n,t,e,i),U(),xe}let cH=(n,t,e,i,r,o)=>($s(!0),lM(i,r,function ih(){return si.lFrame.currentNamespace}()));function UM(n,t,e){const i=Dt(),r=ji(),o=n+vi,s=r.firstCreatePass?function Kce(n,t,e,i,r){const o=t.consts,s=yc(o,i),a=A0(t,n,8,"ng-container",s);return null!==s&&CM(a,s,!0),E3(t,e,a,yc(o,r)),null!==t.queries&&t.queries.elementStart(t,a),a}(o,r,i,t,e):r.data[o];sl(s,!0);const a=dH(r,i,s,n);return i[o]=a,to()&&uM(r,i,a,s),Wn(a,i),Zu(s)&&(x3(r,i,s),w3(r,s,i)),null!=e&&C3(i,s),UM}function HM(){let n=Ar();const t=ji();return qg()?Gg():(n=n.parent,sl(n,!1)),t.firstCreatePass&&(Hl(t,n),Rg(n)&&t.queries.elementEnd(n)),HM}function L0(n,t,e){return UM(n,t,e),HM(),L0}let dH=(n,t,e,i)=>($s(!0),p3(t[oi],""));function Dn(){return Dt()}function Zd(n,t,e){const i=Dt();return os(i,Nl(),t)&&ll(ji(),Kr(),i,n,t,i[oi],e,!0),Zd}const Yp=void 0;var ede=["en",[["a","p"],["AM","PM"],Yp],[["AM","PM"],Yp,Yp],[["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"]],Yp,[["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"]],Yp,[["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}",Yp,"{1} 'at' {0}",Yp],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Jce(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let N0={};function Na(n){const t=function tde(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=fH(t);if(e)return e;const i=t.split("-")[0];if(e=fH(i),e)return e;if("en"===i)return ede;throw new ct(701,!1)}function fH(n){return n in N0||(N0[n]=Ti.ng&&Ti.ng.common&&Ti.ng.common.locales&&Ti.ng.common.locales[n]),N0[n]}var fo=function(n){return n[n.LocaleId=0]="LocaleId",n[n.DayPeriodsFormat=1]="DayPeriodsFormat",n[n.DayPeriodsStandalone=2]="DayPeriodsStandalone",n[n.DaysFormat=3]="DaysFormat",n[n.DaysStandalone=4]="DaysStandalone",n[n.MonthsFormat=5]="MonthsFormat",n[n.MonthsStandalone=6]="MonthsStandalone",n[n.Eras=7]="Eras",n[n.FirstDayOfWeek=8]="FirstDayOfWeek",n[n.WeekendRange=9]="WeekendRange",n[n.DateFormat=10]="DateFormat",n[n.TimeFormat=11]="TimeFormat",n[n.DateTimeFormat=12]="DateTimeFormat",n[n.NumberSymbols=13]="NumberSymbols",n[n.NumberFormats=14]="NumberFormats",n[n.CurrencyCode=15]="CurrencyCode",n[n.CurrencySymbol=16]="CurrencySymbol",n[n.CurrencyName=17]="CurrencyName",n[n.Currencies=18]="Currencies",n[n.Directionality=19]="Directionality",n[n.PluralCase=20]="PluralCase",n[n.ExtraData=21]="ExtraData",n}(fo||{});const U0="en-US";let mH=U0;function ze(n,t,e,i){const r=Dt(),o=ji(),s=Ar();return Ek(o,r,r[oi],s,n,t,i),ze}function Ek(n,t,e,i,r,o,s){const a=Zu(i),c=n.firstCreatePass&&a7(n),d=t[Xr],u=s7(t);let h=!0;if(3&i.type||s){const y=na(i,t),_=s?s(y):y,b=u.length,M=s?E=>s(Cr(E[i.index])):i.index;let C=null;if(!s&&a&&(C=function Yde(n,t,e,i){const r=n.cleanup;if(null!=r)for(let o=0;ol?a[l]:null}"string"==typeof s&&(o+=2)}return null}(n,t,r,i.index)),null!==C)(C.__ngLastListenerFn__||C).__ngNextListenerFn__=o,C.__ngLastListenerFn__=o,h=!1;else{o=QH(i,t,d,o,!1);const E=e.listen(_,r,o);u.push(o,E),c&&c.push(r,M,b,b+1)}}else o=QH(i,t,d,o,!1);const f=i.outputs;let A;if(h&&null!==f&&(A=f[r])){const y=A.length;if(y)for(let _=0;_-1?Ra(n.index,t):t);let l=VH(t,e,i,s),c=o.__ngNextListenerFn__;for(;c;)l=VH(t,e,c,s)&&l,c=c.__ngNextListenerFn__;return r&&!1===l&&s.preventDefault(),l}}function Le(n=1){return function Kg(n){return(si.lFrame.contextLView=function As(n,t){for(;n>0;)t=t[ho],n--;return t}(n,si.lFrame.contextLView))[Xr]}(n)}function Zde(n,t){let e=null;const i=function iC(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(!(1&e))return t[e+1]}return null}(n);for(let r=0;r($s(!0),function m3(n,t){return n.createText(t)}(t[oi],i));function br(n){return sn("",n,""),br}function sn(n,t,e){const i=Dt(),r=T0(i,n,t,e);return r!==Di&&uh(i,ks(),r),sn}function Jd(n,t,e,i,r){const o=Dt(),s=I0(o,n,t,e,i,r);return s!==Di&&uh(o,ks(),s),Jd}function Sk(n,t,e,i,r,o,s,a,l){const c=Dt(),d=function D0(n,t,e,i,r,o,s,a,l,c){const u=Ec(n,wc(),e,r,s,l);return xc(4),u?t+ci(e)+i+ci(r)+o+ci(s)+a+ci(l)+c:Di}(c,n,t,e,i,r,o,s,a,l);return d!==Di&&uh(c,ks(),d),Sk}function ad(n,t,e){K7(t)&&(t=t());const i=Dt();return os(i,Nl(),t)&&ll(ji(),Kr(),i,n,t,i[oi],e,!1),ad}function eu(n,t){const e=K7(n);return e&&n.set(t),e}function ld(n,t){const e=Dt(),i=ji(),r=Ar();return Ek(i,e,e[oi],r,n,t),ld}function Tk(n,t,e,i,r){if(n=Gn(n),Array.isArray(n))for(let o=0;o>20;if(Ku(n)||!n.multi){const f=new Yc(c,r,$),A=Fk(l,t,r?d:d+h,u);-1===A?(qv(Rp(a,s),o,l),Ik(o,n,t.length),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(f),s.push(f)):(e[A]=f,s[A]=f)}else{const f=Fk(l,t,d+h,u),A=Fk(l,t,d,d+h),_=A>=0&&e[A];if(r&&!_||!r&&!(f>=0&&e[f])){qv(Rp(a,s),o,l);const b=function gue(n,t,e,i,r){const o=new Yc(n,e,$);return o.multi=[],o.index=t,o.componentProviders=0,fV(o,r,i&&!e),o}(r?Aue:pue,e.length,r,i,c);!r&&_&&(e[A].providerFactory=b),Ik(o,n,t.length,0),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(b),s.push(b)}else Ik(o,n,f>-1?f:A,fV(e[r?A:f],c,!r&&i));!r&&i&&_&&e[A].componentProviders++}}}function Ik(n,t,e,i){const r=Ku(t),o=function tD(n){return!!n.useClass}(t);if(r||o){const l=(o?Gn(t.useClass):t).prototype.ngOnDestroy;if(l){const c=n.destroyHooks||(n.destroyHooks=[]);if(!r&&t.multi){const d=c.indexOf(e);-1===d?c.push(e,[i,l]):c[d+1].push(i,l)}else c.push(e,l)}}}function fV(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function Fk(n,t,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function mue(n,t,e){const i=ji();if(i.firstCreatePass){const r=Rl(n);Tk(e,i.data,i.blueprint,r,!0),Tk(t,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,t)}}let _ue=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Tf(0,e.type),r=i.length>0?function h9(n,t,e=null){return new u9({providers:n,parent:t,debugName:e,runEnvironmentInitializers:!0}).injector}([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,r)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Ft({token:n,providedIn:"environment",factory:()=>new n(ve(Ba))})}}return n})();function Nr(n){Xd("NgStandalone"),n.getStandaloneInjector=t=>t.get(_ue).getOrCreateStandaloneInjector(n)}function GM(n,t,e){const i=n.\u0275cmp;i.directiveDefs=Xu(t,!1),i.pipeDefs=Xu(e,!0)}function fh(n,t,e){const i=Ws()+n,r=Dt();return r[i]===Di?Kd(r,i,e?t.call(e):t()):function Cy(n,t){return n[t]}(r,i)}function ul(n,t,e,i,r){return gV(Dt(),Ws(),n,t,e,i,r)}function Oy(n,t){const e=n[t];return e===Di?void 0:e}function AV(n,t,e,i,r,o){const s=t+e;return os(n,s,r)?Kd(n,s+1,o?i.call(o,r):i(r)):Oy(n,s+1)}function gV(n,t,e,i,r,o,s){const a=t+e;return jp(n,a,r,o)?Kd(n,a+2,s?i.call(s,r,o):i(r,o)):Oy(n,a+2)}function qe(n,t){const e=ji();let i;const r=n+vi;e.firstCreatePass?(i=function Sue(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks??=[]).push(r,i.onDestroy)):i=e.data[r];const o=i.factory||(i.factory=Il(i.type)),a=Aa($);try{const l=e0(!1),c=o();return e0(l),function nue(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,Dt(),r,c),c}finally{Aa(a)}}function rt(n,t,e){const i=n+vi,r=Dt(),o=Bf(r,i);return Ly(r,i)?AV(r,Ws(),t,o.transform,e,o):o.transform(e)}function Io(n,t,e,i){const r=n+vi,o=Dt(),s=Bf(o,r);return Ly(o,r)?gV(o,Ws(),t,s.transform,e,i,s):s.transform(e,i)}function yV(n,t,e,i,r,o){const s=n+vi,a=Dt(),l=Bf(a,s);return Ly(a,s)?function bV(n,t,e,i,r,o,s,a,l){const c=t+e;return Ec(n,c,r,o,s,a)?Kd(n,c+4,l?i.call(l,r,o,s,a):i(r,o,s,a)):Oy(n,c+4)}(a,Ws(),t,l.transform,e,i,r,o,l):l.transform(e,i,r,o)}function Ly(n,t){return n[Jt].data[t].pure}function jf(n,t){return gM(n,t)}const VV=new dt(""),XM=new dt("");let Uk,Lk=(()=>{class n{constructor(e,i,r){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Uk||(function xhe(n){Uk=n}(r),r.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{In.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),e()},i)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:r})}whenStable(e,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,r){return[]}static{this.\u0275fac=function(i){return new(i||n)(ve(In),ve(Nk),ve(XM))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Nk=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Uk?.findTestabilityInTree(this,e,i)??null}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"platform"})}}return n})();function KM(n){return!!n&&"function"==typeof n.then}function QV(n){return!!n&&"function"==typeof n.subscribe}const zV=new dt("");let Hk=(()=>{class n{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=Qt(zV,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const r of this.appInits){const o=r();if(KM(o))e.push(o);else if(QV(o)){const s=new Promise((a,l)=>{o.subscribe({complete:a,error:l})});e.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const qV=new dt("");function $V(n,t){return Array.isArray(t)?t.reduce($V,n):{...n,...t}}let Xf=(()=>{class n{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qt(oh),this.afterRenderEffectManager=Qt(by),this.externalTestViews=new Set,this.beforeRender=new Ln,this.afterTick=new Ln,this.componentTypes=[],this.components=[],this.isStable=Qt($p).hasPendingTasks.pipe(Qe(e=>!e)),this._injector=Qt(Ba)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const r=e instanceof w7;if(!this._injector.get(Hk).done)throw!r&&function ju(n){const t=Vi(n)||es(n)||Go(n);return null!==t&&t.standalone}(e),new ct(405,!1);let s;s=r?e:this._injector.get(b0).resolveComponentFactory(e),this.componentTypes.push(s.componentType);const a=function Che(n){return n.isBoundToModule}(s)?void 0:this._injector.get(Wp),c=s.create(is.NULL,[],i||s.selector,a),d=c.location.nativeElement,u=c.injector.get(VV,null);return u?.registerApplication(d),c.onDestroy(()=>{this.detachView(c.hostView),YM(this.components,c),u?.unregisterApplication(d)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(e){if(this._runningTick)throw new ct(101,!1);const i=T(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(e)}catch(r){this.internalErrorHandler(r)}finally{this.afterTick.next(),this._runningTick=!1,T(i)}}detectChangesInAttachedViews(e){let i=0;const r=this.afterRenderEffectManager;for(;;){if(i===h7)throw new ct(103,!1);if(e){const o=0===i;this.beforeRender.next(o);for(let{_lView:s,notifyErrorHandler:a}of this._views)Ehe(s,o,a)}if(i++,r.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>Vk(o))&&(r.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>Vk(o))))break}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;YM(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(qV,[]);[...this._bootstrapListeners,...i].forEach(r=>r(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>YM(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ct(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function YM(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function Ehe(n,t,e){!t&&!Vk(n)||function She(n,t,e){let i;e?(i=0,n[Hn]|=1024):i=64&n[Hn]?0:1,AM(n,t,i)}(n,e,t)}function Vk(n){return eh(n)}let Dhe=(()=>{class n{constructor(){this.zone=Qt(In),this.applicationRef=Qt(Xf)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function khe(){const n=Qt(In),t=Qt(Oa);return e=>n.runOutsideAngular(()=>t.handleError(e))}let Phe=(()=>{class n{constructor(){this.subscription=new Xn,this.initialized=!1,this.zone=Qt(In),this.pendingTasks=Qt($p)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{In.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{In.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const tu=new dt("",{providedIn:"root",factory:()=>Qt(tu,sr.Optional|sr.SkipSelf)||function Rhe(){return typeof $localize<"u"&&$localize.locale||U0}()}),Qk=new dt("");let YV=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const r=function kae(n="zone.js",t){return"noop"===n?new T7:"zone.js"===n?new In(t):n}(i?.ngZone,function KV(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:n?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:n?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return r.run(()=>{const o=function Mle(n,t,e){return new ik(n,t,e)}(e.moduleType,this.injector,function XV(n){return[{provide:In,useFactory:n},{provide:Nd,multi:!0,useFactory:()=>{const t=Qt(Dhe,{optional:!0});return()=>t.initialize()}},{provide:Nd,multi:!0,useFactory:()=>{const t=Qt(Phe);return()=>{t.initialize()}}},{provide:oh,useFactory:khe}]}(()=>r)),s=o.injector.get(Oa,null);return r.runOutsideAngular(()=>{const a=r.onError.subscribe({next:l=>{s.handleError(l)}});o.onDestroy(()=>{YM(this._modules,o),a.unsubscribe()})}),function WV(n,t,e){try{const i=e();return KM(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(s,r,()=>{const a=o.injector.get(Hk);return a.runInitializers(),a.donePromise.then(()=>(function pH(n){"string"==typeof n&&(mH=n.toLowerCase().replace(/_/g,"-"))}(o.injector.get(tu,U0)||U0),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,i=[]){const r=$V({},i);return function Fhe(n,t,e){const i=new rk(e);return Promise.resolve(i)}(0,0,e).then(o=>this.bootstrapModuleFactory(o,r))}_moduleDoBootstrap(e){const i=e.injector.get(Xf);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new ct(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ct(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Qk,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(i){return new(i||n)(ve(is))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"platform"})}}return n})(),Kf=null;const ZV=new dt("");function JV(n,t,e=[]){const i=`Platform: ${t}`,r=new dt(i);return(o=[])=>{let s=zk();if(!s||s.injector.get(ZV,!1)){const a=[...e,...o,{provide:r,useValue:!0}];n?n(a):function Nhe(n){if(Kf&&!Kf.get(ZV,!1))throw new ct(400,!1);(function GV(){!function wn(n){Lt=n}(()=>{throw new ct(600,!1)})})(),Kf=n;const t=n.get(YV);(function tQ(n){n.get(r6,null)?.forEach(e=>e())})(n)}(function eQ(n=[],t){return is.create({name:t,providers:[{provide:Av,useValue:"platform"},{provide:Qk,useValue:new Set([()=>Kf=null])},...n]})}(a,i))}return function Uhe(n){const t=zk();if(!t)throw new ct(401,!1);return t}()}}function zk(){return Kf?.get(YV)??null}let vo=(()=>{class n{static{this.__NG_ELEMENT_ID__=Vhe}}return n})();function Vhe(n){return function Qhe(n,t,e){if(Pl(n)&&!e){const i=Ra(n.index,t);return new my(i,i)}return 47&n.type?new my(t[bo],t):null}(Ar(),Dt(),!(16&~n))}class cQ{constructor(){}supports(t){return t instanceof Map||ok(t)}create(){return new Khe}}class Khe{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ok(t)))throw new ct(900,!1)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(i,r)=>{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const o=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,o)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const o=r._prev,s=r._next;return o&&(o._next=s),s&&(s._prev=o),r._next=null,r._prev=null,r}const i=new Yhe(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class Yhe{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function uQ(){return new tE([new cQ])}let tE=(()=>{class n{static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:uQ})}constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||uQ()),deps:[[n,new Ef,new qu]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(i)return i;throw new ct(901,!1)}}return n})();const efe=JV(null,"core",[]);let tfe=(()=>{class n{constructor(e){}static{this.\u0275fac=function(i){return new(i||n)(ve(Xf))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function Jn(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}function ba(n,t=NaN){return isNaN(parseFloat(n))||isNaN(Number(n))?t:Number(n)}function BQ(n,t){Xd("NgSignals");const e=function ge(n){const t=Object.create(mt);t.computation=n;const e=()=>{if(ie(t),K(t),t.value===Re)throw t.error;return t.value};return e[G]=t,e}(n);return t?.equal&&(e[G].equal=t.equal),e}function PQ(n){const t=T(null);try{return n()}finally{T(t)}}const Dfe=new dt("",{providedIn:"root",factory:()=>Qt(kfe)});let kfe=(()=>{class n{static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:()=>new Bfe})}}return n})();class Bfe{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qt($p),this.taskId=null}scheduleEffect(t){if(this.enqueue(t),null===this.taskId){const e=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(e),this.taskId=null})}}enqueue(t){const e=t.creationZone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(t)||(this.queuedEffectCount++,i.add(t))}flush(){for(;this.queuedEffectCount>0;)for(const[t,e]of this.queues)null===t?this.flushQueue(e):t.run(()=>this.flushQueue(e))}flushQueue(t){for(const e of t)t.delete(e),this.queuedEffectCount--,e.run()}}class Pfe{constructor(t,e,i,r,o,s){this.scheduler=t,this.effectFn=e,this.creationZone=i,this.injector=o,this.watcher=function jt(n,t,e){const i=Object.create(Xt);e&&(i.consumerAllowSignalWrites=!0),i.fn=n,i.schedule=t;const r=l=>{i.cleanupFn=l};return i.ref={notify:()=>Te(i),run:()=>{if(null===i.fn)return;if(function V(){return F}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(i.dirty=!1,i.hasRun&&!ke(i))return;i.hasRun=!0;const l=Xe(i);try{i.cleanupFn(),i.cleanupFn=En,i.fn(r)}finally{Je(i,l)}},cleanup:()=>i.cleanupFn(),destroy:()=>function s(l){(function o(l){return null===l.fn&&null===l.schedule})(l)||(gt(l),l.cleanupFn(),l.fn=null,l.schedule=null,l.cleanupFn=En)}(i),[G]:i},i.ref}(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}runEffect(t){try{this.effectFn(t)}catch(e){this.injector.get(Oa,null,{optional:!0})?.handleError(e)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let OQ=null;function Yf(){return OQ}class Ofe{}const Li=new dt("");let LQ=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:()=>Qt(Lfe),providedIn:"platform"})}}return n})(),Lfe=(()=>{class n extends LQ{constructor(){super(),this._doc=Qt(Li),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Yf().getBaseHref(this._doc)}onPopState(e){const i=Yf().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Yf().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,r){this._history.pushState(e,i,r)}replaceState(e,i,r){this._history.replaceState(e,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:()=>new n,providedIn:"platform"})}}return n})();function NQ(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function UQ(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function Jp(n){return n&&"?"!==n[0]?"?"+n:n}let Zk=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:()=>Qt(Ufe),providedIn:"root"})}}return n})();const Nfe=new dt("");let Ufe=(()=>{class n extends Zk{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Qt(Li).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return NQ(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+Jp(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,o){const s=this.prepareExternalUrl(r+Jp(o));this._platformLocation.pushState(e,i,s)}replaceState(e,i,r,o){const s=this.prepareExternalUrl(r+Jp(o));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(LQ),ve(Nfe,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Jk=(()=>{class n{constructor(e){this._subject=new Fn,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Qfe(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(UQ(HQ(i))),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+Jp(i))}normalize(e){return n.stripTrailingSlash(function Vfe(n,t){if(!n||!t.startsWith(n))return t;const e=t.substring(n.length);return""===e||["/",";","?","#"].includes(e[0])?e:t}(this._basePath,HQ(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._locationStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Jp(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Jp(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}static{this.normalizeQueryParams=Jp}static{this.joinWithSlash=NQ}static{this.stripTrailingSlash=UQ}static{this.\u0275fac=function(i){return new(i||n)(ve(Zk))}}static{this.\u0275prov=Ft({token:n,factory:()=>function Hfe(){return new Jk(ve(Zk))}(),providedIn:"root"})}}return n})();function HQ(n){return n.replace(/\/index.html$/,"")}var aE=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(aE||{}),q0=function(n){return n[n.Zero=0]="Zero",n[n.One=1]="One",n[n.Two=2]="Two",n[n.Few=3]="Few",n[n.Many=4]="Many",n[n.Other=5]="Other",n}(q0||{});const bs={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function Sc(n,t){const e=Na(n),i=e[fo.NumberSymbols][t];if(typeof i>"u"){if(t===bs.CurrencyDecimal)return e[fo.NumberSymbols][bs.Decimal];if(t===bs.CurrencyGroup)return e[fo.NumberSymbols][bs.Group]}return i}const Kfe=function hH(n){return Na(n)[fo.PluralCase]},pme=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function aB(n){const t=parseInt(n);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+n);return t}let lB=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:function(i){let r=null;return i?r=new i:(o=ve(tu),r=new Mme(o)),r;var o},providedIn:"root"})}}return n})();let Mme=(()=>{class n extends lB{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(Kfe(i||this.locale)(e)){case q0.Zero:return"zero";case q0.One:return"one";case q0.Two:return"two";case q0.Few:return"few";case q0.Many:return"many";default:return"other"}}static{this.\u0275fac=function(i){return new(i||n)(ve(tu))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function XQ(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,o]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}const cB=/\s+/,KQ=[];let nu=(()=>{class n{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=KQ,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(cB):KQ}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(cB):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const r=this.stateMap.get(e);void 0!==r?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],r=e[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(cB).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(zp))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngClass",""]],inputs:{klass:[Ct.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return n})(),eA=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new Ime,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){JQ("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){JQ("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||n)($(oa),$(jl))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return n})();class Ime{constructor(){this.$implicit=null,this.ngIf=null}}function JQ(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${co(t)}'.`)}class dB{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let hB=(()=>{class n{constructor(e){this._localization=e,this._caseViews={}}set ngPlural(e){this._updateView(e)}addCase(e,i){this._caseViews[e]=i}_updateView(e){this._clearViews();const r=function jQ(n,t,e,i){let r=`=${n}`;if(t.indexOf(r)>-1||(r=e.getPluralCategory(n,i),t.indexOf(r)>-1))return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${n}"`)}(e,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[r])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(e){e&&(this._activeView=e,this._activeView.create())}static{this.\u0275fac=function(i){return new(i||n)($(lB))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}return n})(),ez=(()=>{class n{constructor(e,i,r,o){this.value=e;const s=!isNaN(Number(e));o.addCase(s?`=${e}`:e,new dB(r,i))}static{this.\u0275fac=function(i){return new(i||n)(zl("ngPluralCase"),$(jl),$(oa),$(hB,1))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngPluralCase",""]],standalone:!0})}}return n})(),G0=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,o]=e.split("."),s=-1===r.indexOf("-")?void 0:qf.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,o?`${i}${o}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,r,s)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(tE),$(zp))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return n})(),zy=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(e,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static{this.\u0275fac=function(i){return new(i||n)($(oa))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[xr]})}}return n})();function dd(n,t){return new ct(2100,!1)}class Bme{createSubscription(t,e){return PQ(()=>t.subscribe({next:e,error:i=>{throw i}}))}dispose(t){PQ(()=>t.unsubscribe())}}class Pme{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}}const Rme=new Pme,Ome=new Bme;let Kn=(()=>{class n{constructor(e){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(KM(e))return Rme;if(QV(e))return Ome;throw dd()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static{this.\u0275fac=function(i){return new(i||n)($(vo,16))}}static{this.\u0275pipe=ur({name:"async",type:n,pure:!1,standalone:!0})}}return n})();const Nme=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;let tz=(()=>{class n{transform(e){if(null==e)return null;if("string"!=typeof e)throw dd();return e.replace(Nme,i=>i[0].toUpperCase()+i.slice(1).toLowerCase())}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"titlecase",type:n,pure:!0,standalone:!0})}}return n})(),_E=(()=>{class n{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=nz}transform(e,i=nz){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const r=this.differ.diff(e),o=i!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(s=>{this.keyValues.push(function jme(n,t){return{key:n,value:t}}(s.key,s.currentValue))})),(r||o)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static{this.\u0275fac=function(i){return new(i||n)($(tE,16))}}static{this.\u0275pipe=ur({name:"keyvalue",type:n,pure:!1,standalone:!0})}}return n})();function nz(n,t){const e=n.key,i=t.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class n{constructor(e){this._locale=e}transform(e,i,r){if(!function fB(n){return!(null==n||""===n||n!=n)}(e))return null;r||=this._locale;try{return function yme(n,t,e){return function oB(n,t,e,i,r,o,s=!1){let a="",l=!1;if(isFinite(n)){let c=function xme(n){let i,r,o,s,a,t=Math.abs(n)+"",e=0;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(o=t.search(/e/i))>0?(r<0&&(r=o),r+=+t.slice(o+1),t=t.substring(0,o)):r<0&&(r=t.length),o=0;"0"===t.charAt(o);o++);if(o===(a=t.length))i=[0],r=1;else{for(a--;"0"===t.charAt(a);)a--;for(r-=o,i=[],s=0;o<=a;o++,s++)i[s]=Number(t.charAt(o))}return r>22&&(i=i.splice(0,21),e=r-1,r=1),{digits:i,exponent:e,integerLen:r}}(n);s&&(c=function wme(n){if(0===n.digits[0])return n;const t=n.digits.length-n.integerLen;return n.exponent?n.exponent+=2:(0===t?n.digits.push(0,0):1===t&&n.digits.push(0),n.integerLen+=2),n}(c));let d=t.minInt,u=t.minFrac,h=t.maxFrac;if(o){const M=o.match(pme);if(null===M)throw new Error(`${o} is not a valid digit info`);const C=M[1],E=M[3],L=M[5];null!=C&&(d=aB(C)),null!=E&&(u=aB(E)),null!=L?h=aB(L):null!=E&&u>h&&(h=u)}!function Cme(n,t,e){if(t>e)throw new Error(`The minimum number of digits after fraction (${t}) is higher than the maximum (${e}).`);let i=n.digits,r=i.length-n.integerLen;const o=Math.min(Math.max(t,r),e);let s=o+n.integerLen,a=i[s];if(s>0){i.splice(Math.max(n.integerLen,s));for(let u=s;u=5)if(s-1<0){for(let u=0;u>s;u--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[s-1]++;for(;r=c?A.pop():l=!1),h>=10?1:0},0);d&&(i.unshift(d),n.integerLen++)}(c,u,h);let f=c.digits,A=c.integerLen;const y=c.exponent;let _=[];for(l=f.every(M=>!M);A0?_=f.splice(A,f.length):(_=f,f=[0]);const b=[];for(f.length>=t.lgSize&&b.unshift(f.splice(-t.lgSize,f.length).join(""));f.length>t.gSize;)b.unshift(f.splice(-t.gSize,f.length).join(""));f.length&&b.unshift(f.join("")),a=b.join(Sc(e,i)),_.length&&(a+=Sc(e,r)+_.join("")),y&&(a+=Sc(e,bs.Exponential)+"+"+y)}else a=Sc(e,bs.Infinity);return a=n<0&&!l?t.negPre+a+t.negSuf:t.posPre+a+t.posSuf,a}(n,function sB(n,t="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],o=i[1],s=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],a=s[0],l=s[1]||"";e.posPre=a.substring(0,a.indexOf("#"));for(let d=0;d{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();const iz="browser";function rz(n){return"server"===n}class oz{}class Ipe extends Ofe{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class AB extends Ipe{static makeCurrent(){!function Rfe(n){OQ??=n}(new AB)}onAndCancel(t,e,i){return t.addEventListener(e,i),()=>{t.removeEventListener(e,i)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function Fpe(){return $y=$y||document.querySelector("base"),$y?$y.getAttribute("href"):null}();return null==e?null:function Dpe(n){return new URL(n,document.baseURI).pathname}(e)}resetBaseElement(){$y=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return XQ(document.cookie,t)}}let $y=null,Bpe=(()=>{class n{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const gB=new dt("");let mz=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>{r.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(o=>o.supports(e)),!i)throw new ct(5101,!1);return this._eventNameToPlugin.set(e,i),i}static{this.\u0275fac=function(i){return new(i||n)(ve(gB),ve(In))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();class pz{constructor(t){this._doc=t}}const _B="ng-app-id";let Az=(()=>{class n{constructor(e,i,r,o={}){this.doc=e,this.appId=i,this.nonce=r,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=rz(o),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(r=>r.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${_B}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(e,i){const r=this.styleRef;if(r.has(e)){const o=r.get(e);return o.usage+=i,o.usage}return r.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const r=this.styleNodesInDOM,o=r?.get(i);if(o?.parentNode===e)return r.delete(i),o.removeAttribute(_B),o;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(_B,this.appId),e.appendChild(s),s}}addStyleToHost(e,i){const r=this.getStyleElement(e,i),o=this.styleRef,s=o.get(i)?.elements;s?s.push(r):o.set(i,{elements:[r],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(Zv),ve(GD,8),ve(Qf))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const bB={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},vB=/%COMP%/g,Lpe=new dt("",{providedIn:"root",factory:()=>!0});function _z(n,t){return t.map(e=>e.replace(vB,n))}let yB=(()=>{class n{constructor(e,i,r,o,s,a,l,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=rz(a),this.defaultRenderer=new wB(e,s,l,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===ga.ShadowDom&&(i={...i,encapsulation:ga.Emulated});const r=this.getOrCreateRenderer(e,i);return r instanceof vz?r.applyToHost(e):r instanceof xB&&r.applyStyles(),r}getOrCreateRenderer(e,i){const r=this.rendererByCompId;let o=r.get(i.id);if(!o){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,u=this.platformIsServer;switch(i.encapsulation){case ga.Emulated:o=new vz(l,c,i,this.appId,d,s,a,u);break;case ga.ShadowDom:return new Vpe(l,c,e,i,s,a,this.nonce,u);default:o=new xB(l,c,i,d,s,a,u)}r.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||n)(ve(mz),ve(Az),ve(Zv),ve(Lpe),ve(Li),ve(Qf),ve(In),ve(GD))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();class wB{constructor(t,e,i,r){this.eventManager=t,this.doc=e,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(t,e){return e?this.doc.createElementNS(bB[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){(bz(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(bz(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?this.doc.querySelector(t):t;if(!i)throw new ct(-5104,!1);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const o=bB[r];o?t.setAttributeNS(o,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=bB[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(qf.DashCase|qf.Important)?t.style.setProperty(e,i,r&qf.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&qf.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){null!=t&&(t[e]=i)}setValue(t,e){t.nodeValue=e}listen(t,e,i){if("string"==typeof t&&!(t=Yf().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${e}`);return this.eventManager.addEventListener(t,e,this.decoratePreventDefault(i))}decoratePreventDefault(t){return e=>{if("__ngUnwrap__"===e)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(e)):t(e))&&e.preventDefault()}}}function bz(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class Vpe extends wB{constructor(t,e,i,r,o,s,a,l){super(t,o,s,l),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=_z(r.id,r.styles);for(const d of c){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=d,this.shadowRoot.appendChild(u)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,i){return super.insertBefore(this.nodeOrShadowRoot(t),e,i)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class xB extends wB{constructor(t,e,i,r,o,s,a,l){super(t,o,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r,this.styles=l?_z(l,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class vz extends xB{constructor(t,e,i,r,o,s,a,l){const c=r+"-"+i.id;super(t,e,i,o,s,a,l,c),this.contentAttr=function Npe(n){return"_ngcontent-%COMP%".replace(vB,n)}(c),this.hostAttr=function Upe(n){return"_nghost-%COMP%".replace(vB,n)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}let Qpe=(()=>{class n extends pz{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const yz=["alt","control","meta","shift"],zpe={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},qpe={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let Gpe=(()=>{class n extends pz{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const o=n.parseEventName(i),s=n.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Yf().onAndCancel(e,o.domEventName,s))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const o=n._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),yz.forEach(c=>{const d=i.indexOf(c);d>-1&&(i.splice(d,1),s+=c+".")}),s+=o,0!=i.length||0===o.length)return null;const l={};return l.domEventName=r,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let r=zpe[e.key]||e.key,o="";return i.indexOf("code.")>-1&&(r=e.code,o="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),yz.forEach(s=>{s!==r&&(0,qpe[s])(e)&&(o+=s+".")}),o+=r,o===i)}static eventCallback(e,i,r){return o=>{n.matchEventFullKeyCode(o,e)&&r.runGuarded(()=>i(o))}}static _normalizeKey(e){return"esc"===e?"escape":e}static{this.\u0275fac=function(i){return new(i||n)(ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const Xpe=JV(efe,"browser",[{provide:Qf,useValue:iz},{provide:r6,useValue:function Wpe(){AB.makeCurrent()},multi:!0},{provide:Li,useFactory:function jpe(){return function Jre(n){qD=n}(document),document},deps:[]}]),Kpe=new dt(""),Cz=[{provide:XM,useClass:class kpe{addToWindow(t){Ti.getAngularTestability=(i,r=!0)=>{const o=t.findTestabilityInTree(i,r);if(null==o)throw new ct(5103,!1);return o},Ti.getAllAngularTestabilities=()=>t.getAllTestabilities(),Ti.getAllAngularRootElements=()=>t.getAllRootElements(),Ti.frameworkStabilizers||(Ti.frameworkStabilizers=[]),Ti.frameworkStabilizers.push(i=>{const r=Ti.getAllAngularTestabilities();let o=r.length;const s=function(){o--,0==o&&i()};r.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?Yf().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:VV,useClass:Lk,deps:[In,Nk,XM]},{provide:Lk,useClass:Lk,deps:[In,Nk,XM]}],Mz=[{provide:Av,useValue:"root"},{provide:Oa,useFactory:function $pe(){return new Oa},deps:[]},{provide:gB,useClass:Qpe,multi:!0,deps:[Li,In,Qf]},{provide:gB,useClass:Gpe,multi:!0,deps:[Li]},yB,Az,mz,{provide:U3,useExisting:yB},{provide:oz,useClass:Bpe,deps:[]},[]];let Ez=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:Zv,useValue:e.appId}]}}static{this.\u0275fac=function(i){return new(i||n)(ve(Kpe,12))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[...Mz,...Cz],imports:[mn,tfe]})}}return n})();function Fz(n){return n&&Yt(n.schedule)}function MB(n){return n[n.length-1]}function EB(n){return Yt(MB(n))?n.pop():void 0}function Xy(n){return Fz(MB(n))?n.pop():void 0}function Zf(n){return this instanceof Zf?(this.v=n,this):new Zf(n)}function Pz(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function FB(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(o){e[o]=n[o]&&function(s){return new Promise(function(a,l){!function r(o,s,a,l){Promise.resolve(l).then(function(c){o({value:c,done:a})},s)}(a,l,(s=n[o](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const DB=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function Rz(n){return Yt(n?.then)}function Oz(n){return Yt(n[Nu])}function Lz(n){return Symbol.asyncIterator&&Yt(n?.[Symbol.asyncIterator])}function Nz(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Uz=function xAe(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Hz(n){return Yt(n?.[Uz])}function Vz(n){return function Bz(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(n,t||[]),o=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(h){i[h]&&(r[h]=function(f){return new Promise(function(A,y){o.push([h,f,A,y])>1||a(h,f)})})}function a(h,f){try{!function l(h){h.value instanceof Zf?Promise.resolve(h.value.v).then(c,d):u(o[0][2],h)}(i[h](f))}catch(A){u(o[0][3],A)}}function c(h){a("next",h)}function d(h){a("throw",h)}function u(h,f){h(f),o.shift(),o.length&&a(o[0][0],o[0][1])}}(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Zf(e.read());if(r)return yield Zf(void 0);yield yield Zf(i)}}finally{e.releaseLock()}})}function Qz(n){return Yt(n?.getReader)}function ls(n){if(n instanceof Ji)return n;if(null!=n){if(Oz(n))return function CAe(n){return new Ji(t=>{const e=n[Nu]();if(Yt(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(DB(n))return function MAe(n){return new Ji(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,_o)})}(n);if(Lz(n))return zz(n);if(Hz(n))return function SAe(n){return new Ji(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(Qz(n))return function TAe(n){return zz(Vz(n))}(n)}throw Nz(n)}function zz(n){return new Ji(t=>{(function IAe(n,t){var e,i,r,o;return function Dz(n,t,e,i){return new(e||(e=Promise))(function(o,s){function a(d){try{c(i.next(d))}catch(u){s(u)}}function l(d){try{c(i.throw(d))}catch(u){s(u)}}function c(d){d.done?o(d.value):function r(o){return o instanceof e?o:new e(function(s){s(o)})}(d.value).then(a,l)}c((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=Pz(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(s){r={error:s}}finally{try{i&&!i.done&&(o=e.return)&&(yield o.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function Ah(n,t,e,i=0,r=!1){const o=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(o),!r)return o}function kB(n,t=0){return fe((e,i)=>{e.subscribe(De(i,r=>Ah(i,n,()=>i.next(r),t),()=>Ah(i,n,()=>i.complete(),t),r=>Ah(i,n,()=>i.error(r),t)))})}function qz(n,t=0){return fe((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function Gz(n,t){if(!n)throw new Error("Iterable cannot be null");return new Ji(e=>{Ah(e,t,()=>{const i=n[Symbol.asyncIterator]();Ah(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function tA(n,t){return t?function RAe(n,t){if(null!=n){if(Oz(n))return function FAe(n,t){return ls(n).pipe(qz(t),kB(t))}(n,t);if(DB(n))return function kAe(n,t){return new Ji(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(Rz(n))return function DAe(n,t){return ls(n).pipe(qz(t),kB(t))}(n,t);if(Lz(n))return Gz(n,t);if(Hz(n))return function BAe(n,t){return new Ji(e=>{let i;return Ah(e,t,()=>{i=n[Uz](),Ah(e,t,()=>{let r,o;try{({value:r,done:o}=i.next())}catch(s){return void e.error(s)}o?e.complete():e.next(r)},0,!0)}),()=>Yt(i?.return)&&i.return()})}(n,t);if(Qz(n))return function PAe(n,t){return Gz(Vz(n),t)}(n,t)}throw Nz(n)}(n,t):ls(n)}function hl(...n){return tA(n,Xy(n))}function Jf(n,t,e=1/0){return Yt(t)?Jf((i,r)=>Qe((o,s)=>t(i,o,r,s))(ls(n(i,r))),e):("number"==typeof t&&(e=t),fe((i,r)=>function OAe(n,t,e,i,r,o,s,a){const l=[];let c=0,d=0,u=!1;const h=()=>{u&&!l.length&&!c&&t.complete()},f=y=>c{o&&t.next(y),c++;let _=!1;ls(e(y,d++)).subscribe(De(t,b=>{r?.(b),o?f(b):t.next(b)},()=>{_=!0},void 0,()=>{if(_)try{for(c--;l.length&&cA(b)):A(b)}h()}catch(b){t.error(b)}}))};return n.subscribe(De(t,f,()=>{u=!0,h()})),()=>{a?.()}}(i,r,n,e)))}function qi(n,t){return fe((e,i)=>{let r=0;e.subscribe(De(i,o=>n.call(t,o,r++)&&i.next(o)))})}function BB(n){return fe((t,e)=>{try{t.subscribe(e)}finally{e.add(n)}})}function gh(n,t){return fe((e,i)=>{let r=null,o=0,s=!1;const a=()=>s&&!r&&i.complete();e.subscribe(De(i,l=>{r?.unsubscribe();let c=0;const d=o++;ls(n(l,d)).subscribe(r=De(i,u=>i.next(t?t(l,u,d,c++):u),()=>{r=null,a()}))},()=>{s=!0,a()}))})}class wE{}class xE{}class Ic{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),o=r.toLowerCase(),s=e.slice(i+1).trim();this.maybeSetNormalizedName(r,o),this.headers.has(o)?this.headers.get(o).push(s):this.headers.set(o,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof Ic?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new Ic;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Ic?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const o=t.value;if(o){let s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===o.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(t,e){const i=(Array.isArray(e)?e:[e]).map(o=>o.toString()),r=t.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(t,r)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class NAe{encodeKey(t){return Wz(t)}encodeValue(t){return Wz(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const HAe=/%(\d[a-f0-9])/gi,VAe={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Wz(n){return encodeURIComponent(n).replace(HAe,(t,e)=>VAe[e]??t)}function CE(n){return`${n}`}class em{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new NAe,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function UAe(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const o=r.indexOf("="),[s,a]=-1==o?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,o)),t.decodeValue(r.slice(o+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],r=Array.isArray(i)?i.map(CE):[CE(i)];this.map.set(e,r)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(o=>{e.push({param:i,value:o,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new em({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(CE(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf(CE(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class QAe{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function $z(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function jz(n){return typeof Blob<"u"&&n instanceof Blob}function Xz(n){return typeof FormData<"u"&&n instanceof FormData}class Ky{constructor(t,e,i,r){let o;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function zAe(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,o=r):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new Ic,this.context??=new QAe,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":ah.set(f,t.setHeaders[f]),c)),t.setParams&&(d=Object.keys(t.setParams).reduce((h,f)=>h.set(f,t.setParams[f]),d)),new Ky(e,i,s,{params:d,headers:c,context:u,reportProgress:l,responseType:r,withCredentials:a,transferCache:o})}}var tm=function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n}(tm||{});class PB{constructor(t,e=Yy.Ok,i="OK"){this.headers=t.headers||new Ic,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class ME extends PB{constructor(t={}){super(t),this.type=tm.ResponseHeader}clone(t={}){return new ME({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class nA extends PB{constructor(t={}){super(t),this.type=tm.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new nA({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class W0 extends PB{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}var Yy=function(n){return n[n.Continue=100]="Continue",n[n.SwitchingProtocols=101]="SwitchingProtocols",n[n.Processing=102]="Processing",n[n.EarlyHints=103]="EarlyHints",n[n.Ok=200]="Ok",n[n.Created=201]="Created",n[n.Accepted=202]="Accepted",n[n.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",n[n.NoContent=204]="NoContent",n[n.ResetContent=205]="ResetContent",n[n.PartialContent=206]="PartialContent",n[n.MultiStatus=207]="MultiStatus",n[n.AlreadyReported=208]="AlreadyReported",n[n.ImUsed=226]="ImUsed",n[n.MultipleChoices=300]="MultipleChoices",n[n.MovedPermanently=301]="MovedPermanently",n[n.Found=302]="Found",n[n.SeeOther=303]="SeeOther",n[n.NotModified=304]="NotModified",n[n.UseProxy=305]="UseProxy",n[n.Unused=306]="Unused",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n[n.BadRequest=400]="BadRequest",n[n.Unauthorized=401]="Unauthorized",n[n.PaymentRequired=402]="PaymentRequired",n[n.Forbidden=403]="Forbidden",n[n.NotFound=404]="NotFound",n[n.MethodNotAllowed=405]="MethodNotAllowed",n[n.NotAcceptable=406]="NotAcceptable",n[n.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",n[n.RequestTimeout=408]="RequestTimeout",n[n.Conflict=409]="Conflict",n[n.Gone=410]="Gone",n[n.LengthRequired=411]="LengthRequired",n[n.PreconditionFailed=412]="PreconditionFailed",n[n.PayloadTooLarge=413]="PayloadTooLarge",n[n.UriTooLong=414]="UriTooLong",n[n.UnsupportedMediaType=415]="UnsupportedMediaType",n[n.RangeNotSatisfiable=416]="RangeNotSatisfiable",n[n.ExpectationFailed=417]="ExpectationFailed",n[n.ImATeapot=418]="ImATeapot",n[n.MisdirectedRequest=421]="MisdirectedRequest",n[n.UnprocessableEntity=422]="UnprocessableEntity",n[n.Locked=423]="Locked",n[n.FailedDependency=424]="FailedDependency",n[n.TooEarly=425]="TooEarly",n[n.UpgradeRequired=426]="UpgradeRequired",n[n.PreconditionRequired=428]="PreconditionRequired",n[n.TooManyRequests=429]="TooManyRequests",n[n.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",n[n.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",n[n.InternalServerError=500]="InternalServerError",n[n.NotImplemented=501]="NotImplemented",n[n.BadGateway=502]="BadGateway",n[n.ServiceUnavailable=503]="ServiceUnavailable",n[n.GatewayTimeout=504]="GatewayTimeout",n[n.HttpVersionNotSupported=505]="HttpVersionNotSupported",n[n.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",n[n.InsufficientStorage=507]="InsufficientStorage",n[n.LoopDetected=508]="LoopDetected",n[n.NotExtended=510]="NotExtended",n[n.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",n}(Yy||{});function RB(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,transferCache:n.transferCache}}let Zy=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let o;if(e instanceof Ky)o=e;else{let l,c;l=r.headers instanceof Ic?r.headers:new Ic(r.headers),r.params&&(c=r.params instanceof em?r.params:new em({fromObject:r.params})),o=new Ky(e,i,void 0!==r.body?r.body:null,{headers:l,context:r.context,params:c,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const s=hl(o).pipe(function LAe(n,t){return Yt(t)?Jf(n,t,1):Jf(n,1)}(l=>this.handler.handle(l)));if(e instanceof Ky||"events"===r.observe)return s;const a=s.pipe(qi(l=>l instanceof nA));switch(r.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(Qe(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(Qe(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(Qe(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(Qe(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new em).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,RB(r,i))}post(e,i,r={}){return this.request("POST",e,RB(r,i))}put(e,i,r={}){return this.request("PUT",e,RB(r,i))}static{this.\u0275fac=function(i){return new(i||n)(ve(wE))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Yz(n,t){return t(n)}function XAe(n,t){return(e,i)=>t.intercept(e,{handle:r=>n(r,i)})}const YAe=new dt(""),Jy=new dt(""),Zz=new dt(""),Jz=new dt("");function ZAe(){let n=null;return(t,e)=>{null===n&&(n=(Qt(YAe,{optional:!0})??[]).reduceRight(XAe,Yz));const i=Qt($p),r=i.add();return n(t,e).pipe(BB(()=>i.remove(r)))}}let eq=(()=>{class n extends wE{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=Qt($p);const r=Qt(Jz,{optional:!0});this.backend=r??e}handle(e){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(Jy),...this.injector.get(Zz,[])]));this.chain=r.reduceRight((o,s)=>function KAe(n,t,e){return(i,r)=>function vv(n,t){n instanceof If&&n.assertNotDestroyed();const i=jc(n),r=Aa(void 0);try{return t()}finally{jc(i),Aa(r)}}(e,()=>t(i,o=>n(o,r)))}(o,s,this.injector),Yz)}const i=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(BB(()=>this.pendingTasks.remove(i)))}static{this.\u0275fac=function(i){return new(i||n)(ve(xE),ve(Ba))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const ige=/^\)\]\}',?\n/;let nq=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ct(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?tA(i.\u0275loadImpl()):hl(null)).pipe(gh(()=>new Ji(o=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((y,_)=>s.setRequestHeader(y,_.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const y=e.detectContentTypeHeader();null!==y&&s.setRequestHeader("Content-Type",y)}if(e.responseType){const y=e.responseType.toLowerCase();s.responseType="json"!==y?y:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const y=s.statusText||"OK",_=new Ic(s.getAllResponseHeaders()),b=function rge(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(s)||e.url;return l=new ME({headers:_,status:s.status,statusText:y,url:b}),l},d=()=>{let{headers:y,status:_,statusText:b,url:M}=c(),C=null;_!==Yy.NoContent&&(C=typeof s.response>"u"?s.responseText:s.response),0===_&&(_=C?Yy.Ok:0);let E=_>=200&&_<300;if("json"===e.responseType&&"string"==typeof C){const L=C;C=C.replace(ige,"");try{C=""!==C?JSON.parse(C):null}catch(N){C=L,E&&(E=!1,C={error:N,text:C})}}E?(o.next(new nA({body:C,headers:y,status:_,statusText:b,url:M||void 0})),o.complete()):o.error(new W0({error:C,headers:y,status:_,statusText:b,url:M||void 0}))},u=y=>{const{url:_}=c(),b=new W0({error:y,status:s.status||0,statusText:s.statusText||"Unknown Error",url:_||void 0});o.error(b)};let h=!1;const f=y=>{h||(o.next(c()),h=!0);let _={type:tm.DownloadProgress,loaded:y.loaded};y.lengthComputable&&(_.total=y.total),"text"===e.responseType&&s.responseText&&(_.partialText=s.responseText),o.next(_)},A=y=>{let _={type:tm.UploadProgress,loaded:y.loaded};y.lengthComputable&&(_.total=y.total),o.next(_)};return s.addEventListener("load",d),s.addEventListener("error",u),s.addEventListener("timeout",u),s.addEventListener("abort",u),e.reportProgress&&(s.addEventListener("progress",f),null!==a&&s.upload&&s.upload.addEventListener("progress",A)),s.send(a),o.next({type:tm.Sent}),()=>{s.removeEventListener("error",u),s.removeEventListener("abort",u),s.removeEventListener("load",d),s.removeEventListener("timeout",u),e.reportProgress&&(s.removeEventListener("progress",f),null!==a&&s.upload&&s.upload.removeEventListener("progress",A)),s.readyState!==s.DONE&&s.abort()}})))}static{this.\u0275fac=function(i){return new(i||n)(ve(oz))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const NB=new dt(""),iq=new dt("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),rq=new dt("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class oq{}let age=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=XQ(e,this.cookieName),this.lastCookieString=e),this.lastToken}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(Qf),ve(iq))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function lge(n,t){const e=n.url.toLowerCase();if(!Qt(NB)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=Qt(oq).getToken(),r=Qt(rq);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),t(n)}var nm=function(n){return n[n.Interceptors=0]="Interceptors",n[n.LegacyInterceptors=1]="LegacyInterceptors",n[n.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",n[n.NoXsrfProtection=3]="NoXsrfProtection",n[n.JsonpSupport=4]="JsonpSupport",n[n.RequestsMadeViaParent=5]="RequestsMadeViaParent",n[n.Fetch=6]="Fetch",n}(nm||{});function iA(n,t){return{\u0275kind:n,\u0275providers:t}}function cge(...n){const t=[Zy,nq,eq,{provide:wE,useExisting:eq},{provide:xE,useExisting:nq},{provide:Jy,useValue:lge,multi:!0},{provide:NB,useValue:!0},{provide:oq,useClass:age}];for(const e of n)t.push(...e.\u0275providers);return function _p(n){return{\u0275providers:n}}(t)}const sq=new dt("");let aq=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[cge(iA(nm.LegacyInterceptors,[{provide:sq,useFactory:ZAe},{provide:Jy,useExisting:sq,multi:!0}]))]})}}return n})();const{isArray:Age}=Array,{getPrototypeOf:gge,prototype:_ge,keys:bge}=Object;function pq(n){if(1===n.length){const t=n[0];if(Age(t))return{args:t,keys:null};if(function vge(n){return n&&"object"==typeof n&&gge(n)===_ge}(t)){const e=bge(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}const{isArray:yge}=Array;function UB(n){return Qe(t=>function wge(n,t){return yge(t)?n(...t):n(t)}(n,t))}function Aq(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}let _q=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static{this.\u0275fac=function(i){return new(i||n)($(zp),$(Nn))}}static{this.\u0275dir=Wt({type:n})}}return n})(),rA=(()=>{class n extends _q{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,features:[yi]})}}return n})();const js=new dt(""),Cge={provide:js,useExisting:ei(()=>im),multi:!0},Ege=new dt("");let im=(()=>{class n extends _q{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function Mge(){const n=Yf()?Yf().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static{this.\u0275fac=function(i){return new(i||n)($(zp),$(Nn),$(Ege,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){1&i&&ze("input",function(s){return r._handleInput(s.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(s){return r._compositionEnd(s.target.value)})},features:[ui([Cge]),yi]})}}return n})();function rm(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function vq(n){return null!=n&&"number"==typeof n.length}const ys=new dt(""),om=new dt(""),Sge=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class HB{static min(t){return function yq(n){return t=>{if(rm(t.value)||rm(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(rm(t.value)||rm(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}(t)}static required(t){return xq(t)}static requiredTrue(t){return function Cq(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function Mq(n){return rm(n.value)||Sge.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function Eq(n){return t=>rm(t.value)||!vq(t.value)?null:t.value.lengthvq(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}(t)}static pattern(t){return function Tq(n){if(!n)return SE;let t,e;return"string"==typeof n?(e="","^"!==n.charAt(0)&&(e+="^"),e+=n,"$"!==n.charAt(n.length-1)&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(rm(i.value))return null;const r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}(t)}static nullValidator(t){return null}static compose(t){return Pq(t)}static composeAsync(t){return Rq(t)}}function xq(n){return rm(n.value)?{required:!0}:null}function SE(n){return null}function Iq(n){return null!=n}function Fq(n){return KM(n)?tA(n):n}function Dq(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function kq(n,t){return t.map(e=>e(n))}function Bq(n){return n.map(t=>function Tge(n){return!n.validate}(t)?t:e=>t.validate(e))}function Pq(n){if(!n)return null;const t=n.filter(Iq);return 0==t.length?null:function(e){return Dq(kq(e,t))}}function VB(n){return null!=n?Pq(Bq(n)):null}function Rq(n){if(!n)return null;const t=n.filter(Iq);return 0==t.length?null:function(e){return function gq(...n){const t=EB(n),{args:e,keys:i}=pq(n),r=new Ji(o=>{const{length:s}=e;if(!s)return void o.complete();const a=new Array(s);let l=s,c=s;for(let d=0;d{u||(u=!0,c--),a[d]=h},()=>l--,void 0,()=>{(!l||!u)&&(c||o.next(i?Aq(i,a):a),o.complete())}))}});return t?r.pipe(UB(t)):r}(kq(e,t).map(Fq)).pipe(Qe(Dq))}}function QB(n){return null!=n?Rq(Bq(n)):null}function Oq(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function Lq(n){return n._rawValidators}function Nq(n){return n._rawAsyncValidators}function zB(n){return n?Array.isArray(n)?n:[n]:[]}function TE(n,t){return Array.isArray(n)?n.includes(t):n===t}function Uq(n,t){const e=zB(t);return zB(n).forEach(r=>{TE(e,r)||e.push(r)}),e}function Hq(n,t){return zB(t).filter(e=>!TE(n,e))}class Vq{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=VB(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=QB(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class Qa extends Vq{get formDirective(){return null}get path(){return null}}class iu extends Vq{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Qq{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let $0=(()=>{class n extends Qq{constructor(e){super(e)}static{this.\u0275fac=function(i){return new(i||n)($(iu,2))}}static{this.\u0275dir=Wt({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&Un("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[yi]})}}return n})();const e1="VALID",FE="INVALID",j0="PENDING",t1="DISABLED";function WB(n){return(DE(n)?n.validators:n)||null}function $B(n,t){return(DE(t)?t.asyncValidators:n)||null}function DE(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class jB{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===e1}get invalid(){return this.status===FE}get pending(){return this.status==j0}get disabled(){return this.status===t1}get enabled(){return this.status!==t1}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Uq(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Uq(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Hq(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Hq(t,this._rawAsyncValidators))}hasValidator(t){return TE(this._rawValidators,t)}hasAsyncValidator(t){return TE(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=j0,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=t1,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=e1,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===e1||this.status===j0)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?t1:e1}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=j0,this._hasOwnPendingAsyncValidator=!0;const e=Fq(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){let e=t;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Fn,this.statusChanges=new Fn}_calculateStatus(){return this._allControlsDisabled()?t1:this.errors?FE:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(j0)?j0:this._anyControlsHaveStatus(FE)?FE:e1}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){DE(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function Bge(n){return Array.isArray(n)?VB(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function Pge(n){return Array.isArray(n)?QB(n):n||null}(this._rawAsyncValidators)}}class XB extends jB{constructor(t,e,i){super(WB(e),$B(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){(function Gq(n,t,e){n._forEachChild((i,r)=>{if(void 0===e[r])throw new ct(1002,"")})})(this,0,t),Object.keys(t).forEach(i=>{(function qq(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new ct(1e3,"");if(!i[e])throw new ct(1001,"")})(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{const r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,o)=>{i=e(i,r,o)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const oA=new dt("CallSetDisabledState",{providedIn:"root",factory:()=>n1}),n1="always";function r1(n,t,e=n1){KB(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function Lge(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&Wq(n,t)})}(n,t),function Uge(n,t){const e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function Nge(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&Wq(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function Oge(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function BE(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),RE(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function PE(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function KB(n,t){const e=Lq(n);null!==t.validator?n.setValidators(Oq(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=Nq(n);null!==t.asyncValidator?n.setAsyncValidators(Oq(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();PE(t._rawValidators,r),PE(t._rawAsyncValidators,r)}function RE(n,t){let e=!1;if(null!==n){if(null!==t.validator){const r=Lq(n);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==t.validator);o.length!==r.length&&(e=!0,n.setValidators(o))}}if(null!==t.asyncValidator){const r=Nq(n);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==t.asyncValidator);o.length!==r.length&&(e=!0,n.setAsyncValidators(o))}}}const i=()=>{};return PE(t._rawValidators,i),PE(t._rawAsyncValidators,i),e}function Wq(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function $q(n,t){KB(n,t)}function ZB(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}function jq(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function JB(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(o=>{o.constructor===im?e=o:function Qge(n){return Object.getPrototypeOf(n.constructor)===rA}(o)?i=o:r=o}),r||i||e||null}const qge={provide:Qa,useExisting:ei(()=>s1)},o1=Promise.resolve();let s1=(()=>{class n extends Qa{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Fn,this.form=new XB({},VB(e),QB(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){o1.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),r1(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){o1.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){o1.then(()=>{const i=this._findContainer(e.path),r=new XB({});$q(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){o1.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){o1.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,jq(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static{this.\u0275fac=function(i){return new(i||n)($(ys,10),$(om,10),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&ze("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{options:[Ct.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ui([qge]),yi]})}}return n})();function Xq(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function Kq(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const eP=class extends jB{constructor(t=null,e,i){super(WB(e),$B(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),DE(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=Kq(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Xq(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Xq(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){Kq(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Yq=eP,$ge={provide:iu,useExisting:ei(()=>X0)},eG=Promise.resolve();let X0=(()=>{class n extends iu{constructor(e,i,r,o,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new eP,this._registered=!1,this.name="",this.update=new Fn,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=JB(0,o)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),ZB(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){r1(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){eG.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=0!==i&&Jn(i);eG.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function kE(n,t){return[...t.path,n]}(e,this._parent):[e]}static{this.\u0275fac=function(i){return new(i||n)($(Qa,9),$(ys,10),$(om,10),$(js,10),$(vo,8),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[Ct.None,"disabled","isDisabled"],model:[Ct.None,"ngModel","model"],options:[Ct.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[ui([$ge]),yi,xr]})}}return n})();const tP=new dt(""),Jge={provide:iu,useExisting:ei(()=>OE)};let OE=(()=>{class n extends iu{set isDisabled(e){}static{this._ngModelWarningSentOnce=!1}constructor(e,i,r,o,s){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=s,this.update=new Fn,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=JB(0,r)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&BE(i,this,!1),r1(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}ZB(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&BE(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static{this.\u0275fac=function(i){return new(i||n)($(ys,10),$(om,10),$(js,10),$(tP,8),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","formControl",""]],inputs:{form:[Ct.None,"formControl","form"],isDisabled:[Ct.None,"disabled","isDisabled"],model:[Ct.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[ui([Jge]),yi,xr]})}}return n})();const e0e={provide:Qa,useExisting:ei(()=>a1)};let a1=(()=>{class n extends Qa{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Fn,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(RE(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return r1(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){BE(e.control||null,e,!1),function zge(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,jq(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,r=this.form.get(e.path);i!==r&&(BE(i||null,e),(n=>n instanceof eP)(r)&&(r1(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);$q(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function Hge(n,t){return RE(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){KB(this.form,this),this._oldForm&&RE(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||n)($(ys,10),$(om,10),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&ze("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{form:[Ct.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ui([e0e]),yi,xr]})}}return n})(),sA=(()=>{class n{constructor(){this._validator=SE}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):SE,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,features:[xr]})}}return n})();const h0e={provide:ys,useExisting:ei(()=>LE),multi:!0};let LE=(()=>{class n extends sA{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Jn,this.createValidator=e=>xq}enabled(e){return e}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){2&i&&pi("required",r._enabled?"":null)},inputs:{required:"required"},features:[ui([h0e]),yi]})}}return n})(),AG=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),ud=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:oA,useValue:e.callSetDisabledState??n1}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[AG]})}}return n})(),l1=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:tP,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:oA,useValue:e.callSetDisabledState??n1}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[AG]})}}return n})();function gG(n=1/0){return Jf(ma,n)}const K0=new Ji(n=>n.complete());function Yl(...n){const t=Xy(n),e=function tAe(n,t){return"number"==typeof MB(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?ls(i[0]):gG(e)(tA(i,t)):K0}function _G(){return fe((n,t)=>{n.subscribe(De(t,tl))})}class _h{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){return vG(this,t)}do(t,e,i){const{kind:r,value:o,error:s}=this;return"N"===r?t?.(o):"E"===r?e?.(s):i?.()}accept(t,e,i){var r;return Yt(null===(r=t)||void 0===r?void 0:r.next)?this.observe(t):this.do(t,e,i)}toObservable(){const{kind:t,value:e,error:i}=this,r="N"===t?hl(e):"E"===t?function bG(n,t){const e=Yt(n)?n:()=>n,i=r=>r.error(e());return new Ji(t?r=>t.schedule(i,0,r):i)}(()=>i):"C"===t?K0:0;if(!r)throw new TypeError(`Unexpected notification kind ${t}`);return r}static createNext(t){return new _h("N",t)}static createError(t){return new _h("E",void 0,t)}static createComplete(){return _h.completeNotification}}function vG(n,t){var e,i,r;const{kind:o,value:s,error:a}=n;if("string"!=typeof o)throw new TypeError('Invalid notification, missing "kind"');"N"===o?null===(e=t.next)||void 0===e||e.call(t,s):"E"===o?null===(i=t.error)||void 0===i||i.call(t,a):null===(r=t.complete)||void 0===r||r.call(t)}function sP(n){return fe((t,e)=>{let o,i=null,r=!1;i=t.subscribe(De(e,void 0,void 0,s=>{o=ls(n(s,sP(n)(t))),i?(i.unsubscribe(),i=null,o.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,o.subscribe(e))})}function yG(n,t,e,i){return fe((r,o)=>{let s;t&&"function"!=typeof t?({duration:e,element:s,connector:i}=t):s=t;const a=new Map,l=A=>{a.forEach(A),A(o)},c=A=>l(y=>y.error(A));let d=0,u=!1;const h=new yt(o,A=>{try{const y=n(A);let _=a.get(y);if(!_){a.set(y,_=i?i():new Ln);const b=function f(A,y){const _=new Ji(b=>{d++;const M=y.subscribe(b);return()=>{M.unsubscribe(),0==--d&&u&&h.unsubscribe()}});return _.key=A,_}(y,_);if(o.next(b),e){const M=De(_,()=>{_.complete(),M?.unsubscribe()},void 0,void 0,()=>a.delete(y));h.add(ls(e(b)).subscribe(M))}}_.next(s?s(A):A)}catch(y){c(y)}},()=>l(A=>A.complete()),c,()=>a.clear(),()=>(u=!0,0===d));r.subscribe(h)})}function wG(n,t){return t?e=>e.pipe(wG((i,r)=>ls(n(i,r)).pipe(Qe((o,s)=>t(i,o,r,s))))):fe((e,i)=>{let r=0,o=null,s=!1;e.subscribe(De(i,a=>{o||(o=De(i,void 0,()=>{o=null,s&&i.complete()}),ls(n(a,r++)).subscribe(o))},()=>{s=!0,!o&&i.complete()}))})}function $o(n){return n<=0?()=>K0:fe((t,e)=>{let i=0;t.subscribe(De(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}_h.completeNotification=new _h("C");class x0e extends Xn{constructor(t,e){super()}schedule(t,e=0){return this}}const UE={setInterval(n,t,...e){const{delegate:i}=UE;return i?.setInterval?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=UE;return(t?.clearInterval||clearInterval)(n)},delegate:void 0};class HE extends x0e{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){var i;if(this.closed)return this;this.state=t;const r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,i=0){return UE.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&UE.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(o){i=!0,r=o||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,yr(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}const aP={now:()=>(aP.delegate||Date).now(),delegate:void 0};class c1{constructor(t,e=c1.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}c1.now=aP.now;class VE extends c1{constructor(t,e=c1.now){super(t,e),this.actions=[],this._active=!1}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const E0e=new class M0e extends VE{}(class C0e extends HE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,i=0){return null!=i&&i>0||null==i&&this.delay>0?super.requestAsyncId(t,e,i):(t.flush(this),0)}});function hd(...n){const t=EB(n);return fe((e,i)=>{const r=n.length,o=new Array(r);let s=n.map(()=>!1),a=!1;for(let l=0;l{o[l]=c,!a&&!s[l]&&(s[l]=!0,(a=s.every(ma))&&(s=null))},tl));e.subscribe(De(i,l=>{if(a){const c=[l,...o];i.next(t?t(...c):c)}}))})}function d1(n,t=ma){return n=n??F0e,fe((e,i)=>{let r,o=!0;e.subscribe(De(i,s=>{const a=t(s);(o||!n(r,a))&&(o=!1,r=a,i.next(s))}))})}function F0e(n,t){return n===t}const u1={};function hn(n,t){if(u1[n]=(u1[n]||0)+1,"function"==typeof t)return lP(n,(...i)=>({...t(...i),type:n}));switch(t?t._as:"empty"){case"empty":return lP(n,()=>({type:n}));case"props":return lP(n,i=>({...i,type:n}));default:throw new Error("Unexpected config.")}}function lP(n,t){return Object.defineProperty(t,"type",{value:n,writable:!1})}const MG="@ngrx/store/init";let aA=(()=>{class n extends Ia{constructor(){super({type:MG})}next(e){if("function"==typeof e)throw new TypeError("\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().");if(typeof e>"u")throw new TypeError("Actions must be objects");if(typeof e.type>"u")throw new TypeError("Actions must have a type property");super.next(e)}complete(){}ngOnDestroy(){super.complete()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const O0e=[aA],dP=new dt("@ngrx/store Internal Root Guard"),EG=new dt("@ngrx/store Internal Initial State"),uP=new dt("@ngrx/store Initial State"),SG=new dt("@ngrx/store Reducer Factory"),TG=new dt("@ngrx/store Internal Reducer Factory Provider"),IG=new dt("@ngrx/store Initial Reducers"),hP=new dt("@ngrx/store Internal Initial Reducers"),FG=new dt("@ngrx/store Store Features"),DG=new dt("@ngrx/store Internal Store Reducers"),fP=new dt("@ngrx/store Internal Feature Reducers"),kG=new dt("@ngrx/store Internal Feature Configs"),mP=new dt("@ngrx/store Internal Store Features"),BG=new dt("@ngrx/store Internal Feature Reducers Token"),pP=new dt("@ngrx/store Feature Reducers"),PG=new dt("@ngrx/store User Provided Meta Reducers"),QE=new dt("@ngrx/store Meta Reducers"),RG=new dt("@ngrx/store Internal Resolved Meta Reducers"),OG=new dt("@ngrx/store User Runtime Checks Config"),LG=new dt("@ngrx/store Internal User Runtime Checks Config"),h1=new dt("@ngrx/store Internal Runtime Checks"),f1=new dt("@ngrx/store Check if Action types are unique");function lA(n,t={}){const e=Object.keys(n),i={};for(let o=0;oo(r),e(t))}}function HG(n,t){return Array.isArray(t)&&t.length>0&&(n=UG.apply(null,[...t,n])),(e,i)=>{const r=n(e);return(o,s)=>r(o=void 0===o?i:o,s)}}new dt("@ngrx/store Root Store Provider"),new dt("@ngrx/store Feature State Provider");class zE extends Ji{}class VG extends aA{}let m1=(()=>{class n extends Ia{get currentReducers(){return this.reducers}constructor(e,i,r,o){super(o(r,i)),this.dispatcher=e,this.initialState=i,this.reducers=r,this.reducerFactory=o}addFeature(e){this.addFeatures([e])}addFeatures(e){const i=e.reduce((r,{reducers:o,reducerFactory:s,metaReducers:a,initialState:l,key:c})=>{const d="function"==typeof o?function N0e(n){const t=Array.isArray(n)&&n.length>0?UG(...n):e=>e;return(e,i)=>(e=t(e),(r,o)=>e(r=void 0===r?i:r,o))}(a)(o,l):HG(s,a)(o,l);return r[c]=d,r},{});this.addReducers(i)}removeFeature(e){this.removeFeatures([e])}removeFeatures(e){this.removeReducers(e.map(i=>i.key))}addReducer(e,i){this.addReducers({[e]:i})}addReducers(e){this.reducers={...this.reducers,...e},this.updateReducers(Object.keys(e))}removeReducer(e){this.removeReducers([e])}removeReducers(e){e.forEach(i=>{this.reducers=function L0e(n,t){return Object.keys(n).filter(e=>e!==t).reduce((e,i)=>Object.assign(e,{[i]:n[i]}),{})}(this.reducers,i)}),this.updateReducers(e)}updateReducers(e){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:"@ngrx/store/update-reducers",features:e})}ngOnDestroy(){this.complete()}static{this.\u0275fac=function(i){return new(i||n)(ve(VG),ve(uP),ve(IG),ve(SG))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const H0e=[m1,{provide:zE,useExisting:m1},{provide:VG,useExisting:aA}];let p1=(()=>{class n extends Ln{ngOnDestroy(){this.complete()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const V0e=[p1];class QG extends Ji{}let Zr=(()=>{class n extends Ia{static{this.INIT=MG}constructor(e,i,r,o){super(o);const c=e.pipe(kB(E0e)).pipe(hd(i)).pipe(function T0e(n,t){return fe(function S0e(n,t,e,i,r){return(o,s)=>{let a=e,l=t,c=0;o.subscribe(De(s,d=>{const u=c++;l=a?n(l,d,u):(a=!0,d),i&&s.next(l)},r&&(()=>{a&&s.next(l),s.complete()})))}}(n,t,arguments.length>=2,!0))}(Q0e,{state:o}));this.stateSubscription=c.subscribe(({state:d,action:u})=>{this.next(d),r.next(u)}),this.state=function CG(n,t){const e=!t?.manualCleanup;e&&!t?.injector&&bp();const i=e?t?.injector?.get(qd)??Qt(qd):null;let r;r=tk(t?.requireSync?{kind:0}:{kind:1,value:t?.initialValue});const o=n.subscribe({next:s=>r.set({kind:1,value:s}),error:s=>{if(t?.rejectErrors)throw s;r.set({kind:2,error:s})}});return i?.onDestroy(o.unsubscribe.bind(o)),BQ(()=>{const s=r();switch(s.kind){case 1:return s.value;case 2:throw s.error;case 0:throw new ct(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}(this,{manualCleanup:!0,requireSync:!0})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}static{this.\u0275fac=function(i){return new(i||n)(ve(aA),ve(zE),ve(p1),ve(uP))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Q0e(n={state:void 0},[t,e]){const{state:i}=n;return{state:e(i,t),action:t}}const z0e=[Zr,{provide:QG,useExisting:Zr}];let $t=(()=>{class n extends Ji{constructor(e,i,r){super(),this.actionsObserver=i,this.reducerManager=r,this.source=e,this.state=e.state}select(e,...i){return G0e.call(null,e,...i)(this)}selectSignal(e,i){return BQ(()=>e(this.state()),i)}lift(e){const i=new n(this,this.actionsObserver,this.reducerManager);return i.operator=e,i}dispatch(e){this.actionsObserver.next(e)}next(e){this.actionsObserver.next(e)}error(e){this.actionsObserver.error(e)}complete(){this.actionsObserver.complete()}addReducer(e,i){this.reducerManager.addReducer(e,i)}removeReducer(e){this.reducerManager.removeReducer(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(QG),ve(aA),ve(m1))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const q0e=[$t];function G0e(n,t,...e){return function(r){let o;if("string"==typeof n){const s=[t,...e].filter(Boolean);o=r.pipe(function I0e(...n){const t=n.length;if(0===t)throw new Error("list of properties cannot be empty.");return Qe(e=>{let i=e;for(let r=0;rn(s,t)))}return o.pipe(d1())}}const gP="https://ngrx.io/guide/store/configuration/runtime-checks";function zG(n){return void 0===n}function qG(n){return null===n}function GG(n){return Array.isArray(n)}function WG(n){return"object"==typeof n&&null!==n}function _P(n){return"function"==typeof n}function bP(n,t){return n===t}function vP(n,t=bP,e=bP){let o,i=null,r=null;return{memoized:function c(){if(void 0!==o)return o.result;if(!i)return r=n.apply(null,arguments),i=arguments,r;if(!function J0e(n,t,e){for(let i=0;i"function"==typeof t)}(i[0])&&(i=function r_e(n){const t=Object.values(n),e=Object.keys(n);return[...t,(...r)=>e.reduce((o,s,a)=>({...o,[s]:r[a]}),{})]}(i[0]));const r=i.slice(0,i.length-1),o=i[i.length-1],s=r.filter(d=>d.release&&"function"==typeof d.release),a=n(function(...d){return o.apply(null,d)}),l=vP(function(d,u){return t.stateFn.apply(null,[d,r,u,a])});return Object.assign(l.memoized,{release:function c(){l.reset(),a.reset(),s.forEach(d=>d.release())},projector:a.memoized,setResult:l.setResult,clearResult:l.clearResult})}}(vP)(...n)}function e_e(n,t,e,i){if(void 0===e){const o=t.map(s=>s(n));return i.memoized.apply(null,o)}const r=t.map(o=>o(n,e));return i.memoized.apply(null,[...r,e])}function a_e(n){return n instanceof dt?Qt(n):n}function l_e(n,t){return t.map((e,i)=>{if(n[i]instanceof dt){const r=Qt(n[i]);return{key:e.key,reducerFactory:r.reducerFactory?r.reducerFactory:lA,metaReducers:r.metaReducers?r.metaReducers:[],initialState:r.initialState}}return e})}function c_e(n){return n.map(t=>t instanceof dt?Qt(t):t)}function yP(n){return"function"==typeof n?n():n}function d_e(n,t){return n.concat(t)}function u_e(){if(Qt($t,{optional:!0,skipSelf:!0}))throw new TypeError("The root Store has been provided more than once. Feature modules should provide feature states instead.");return"guarded"}function wP(n){Object.freeze(n);const t=_P(n);return Object.getOwnPropertyNames(n).forEach(e=>{if(!e.startsWith("\u0275")&&function Y0e(n,t){return Object.prototype.hasOwnProperty.call(n,t)}(n,e)&&(!t||"caller"!==e&&"callee"!==e&&"arguments"!==e)){const i=n[e];(WG(i)||_P(i))&&!Object.isFrozen(i)&&wP(i)}}),n}function xP(n,t=[]){return(zG(n)||qG(n))&&0===t.length?{path:["root"],value:n}:Object.keys(n).reduce((i,r)=>{if(i)return i;const o=n[r];return function K0e(n){return _P(n)&&n.hasOwnProperty("\u0275cmp")}(o)?i:!(zG(o)||qG(o)||function j0e(n){return"number"==typeof n}(o)||function $0e(n){return"boolean"==typeof n}(o)||function W0e(n){return"string"==typeof n}(o)||GG(o))&&(function $G(n){if(!function X0e(n){return WG(n)&&!GG(n)}(n))return!1;const t=Object.getPrototypeOf(n);return t===Object.prototype||null===t}(o)?xP(o,[...t,r]):{path:[...t,r],value:o})},!1)}function XG(n,t){if(!1===n)return;const e=n.path.join("."),i=new Error(`Detected unserializable ${t} at "${e}". ${gP}#strict${t}serializability`);throw i.value=n.value,i.unserializablePath=e,i}function p_e(n){return{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function A_e({strictActionSerializability:n,strictStateSerializability:t}){return e=>n||t?function f_e(n,t){return function(e,i){t.action(i)&&XG(xP(i),"action");const r=n(e,i);return t.state()&&XG(xP(r),"state"),r}}(e,{action:i=>n&&!CP(i),state:()=>t}):e}function g_e({strictActionImmutability:n,strictStateImmutability:t}){return e=>n||t?function h_e(n,t){return function(e,i){const r=t.action(i)?wP(i):i,o=n(e,r);return t.state()?wP(o):o}}(e,{action:i=>n&&!CP(i),state:()=>t}):e}function CP(n){return n.type.startsWith("@ngrx")}function __e({strictActionWithinNgZone:n}){return t=>n?function m_e(n,t){return function(e,i){if(t.action(i)&&!In.isInAngularZone())throw new Error(`Action '${i.type}' running outside NgZone. ${gP}#strictactionwithinngzone`);return n(e,i)}}(t,{action:e=>n&&!CP(e)}):t}function b_e(n){return[{provide:LG,useValue:n},{provide:OG,useFactory:v_e,deps:[LG]},{provide:h1,deps:[OG],useFactory:p_e},{provide:QE,multi:!0,deps:[h1],useFactory:g_e},{provide:QE,multi:!0,deps:[h1],useFactory:A_e},{provide:QE,multi:!0,deps:[h1],useFactory:__e}]}function KG(){return[{provide:f1,multi:!0,deps:[h1],useFactory:y_e}]}function v_e(n){return n}function y_e(n){if(!n.strictActionTypeUniqueness)return;const t=Object.entries(u1).filter(([,e])=>e>1).map(([e])=>e);if(t.length)throw new Error(`Action types are registered more than once, ${t.map(e=>`"${e}"`).join(", ")}. ${gP}#strictactiontypeuniqueness`)}function YG(n={},t={}){return[{provide:dP,useFactory:u_e},{provide:EG,useValue:t.initialState},{provide:uP,useFactory:yP,deps:[EG]},{provide:hP,useValue:n},{provide:DG,useExisting:n instanceof dt?n:hP},{provide:IG,deps:[hP,[new To(DG)]],useFactory:a_e},{provide:PG,useValue:t.metaReducers?t.metaReducers:[]},{provide:RG,deps:[QE,PG],useFactory:d_e},{provide:TG,useValue:t.reducerFactory?t.reducerFactory:lA},{provide:SG,deps:[TG,RG],useFactory:HG},O0e,H0e,V0e,z0e,q0e,b_e(t.runtimeChecks),KG()]}function ZG(n,t,e={}){return[{provide:kG,multi:!0,useValue:n instanceof Object?{}:e},{provide:FG,multi:!0,useValue:{key:n instanceof Object?n.name:n,reducerFactory:e instanceof dt||!e.reducerFactory?lA:e.reducerFactory,metaReducers:e instanceof dt||!e.metaReducers?[]:e.metaReducers,initialState:e instanceof dt||!e.initialState?void 0:e.initialState}},{provide:mP,deps:[kG,FG],useFactory:l_e},{provide:fP,multi:!0,useValue:n instanceof Object?n.reducer:t},{provide:BG,multi:!0,useExisting:t instanceof dt?t:fP},{provide:pP,multi:!0,deps:[fP,[new To(BG)]],useFactory:c_e},KG()]}let qE=(()=>{class n{constructor(e,i,r,o,s,a){}static{this.\u0275fac=function(i){return new(i||n)(ve(aA),ve(zE),ve(p1),ve($t),ve(dP,8),ve(f1,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),MP=(()=>{class n{constructor(e,i,r,o,s){this.features=e,this.featureReducers=i,this.reducerManager=r;const a=e.map((l,c)=>{const u=i.shift()[c];return{...l,reducers:u,initialState:yP(l.initialState)}});r.addFeatures(a)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}static{this.\u0275fac=function(i){return new(i||n)(ve(mP),ve(pP),ve(m1),ve(qE),ve(f1,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),E_e=(()=>{class n{static forRoot(e,i){return{ngModule:qE,providers:[...YG(e,i)]}}static forFeature(e,i,r={}){return{ngModule:MP,providers:[...ZG(e,i,r)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function An(...n){return{reducer:n.pop(),types:n.map(i=>i.type)}}function wi(n,...t){const e=new Map;for(const i of t)for(const r of i.types){const o=e.get(r);e.set(r,o?(a,l)=>i.reducer(o(a,l),l):i.reducer)}return function(i=n,r){const o=e.get(r.type);return o?o(i,r):i}}const S_e={dispatch:!0,functional:!1,useEffectsErrorHandler:!0},GE="__@ngrx/effects_create__";function Ao(n,t={}){const e=t.functional?n:n(),i={...S_e,...t};return Object.defineProperty(e,GE,{value:i}),e}function eW(n){return Object.getPrototypeOf(n)}function EP(n){return"function"==typeof n}function SP(n){return n.filter(EP)}function D_e(n,t,e){const i=eW(n),o=i&&"Object"!==i.constructor.name?i.constructor.name:null,s=function JG(n){return function T_e(n){return Object.getOwnPropertyNames(n).filter(i=>!(!n[i]||!n[i].hasOwnProperty(GE))&&n[i][GE].hasOwnProperty("dispatch")).map(i=>({propertyName:i,...n[i][GE]}))}(n)}(n).map(({propertyName:a,dispatch:l,useEffectsErrorHandler:c})=>{const d="function"==typeof n[a]?n[a]():n[a],u=c?e(d,t):d;return!1===l?u.pipe(_G()):u.pipe(function y0e(){return fe((n,t)=>{n.subscribe(De(t,e=>{t.next(_h.createNext(e))},()=>{t.next(_h.createComplete()),t.complete()},e=>{t.next(_h.createError(e)),t.complete()}))})}()).pipe(Qe(f=>({effect:n[a],notification:f,propertyName:a,sourceName:o,sourceInstance:n})))});return Yl(...s)}function tW(n,t,e=10){return n.pipe(sP(i=>(t&&t.handleError(i),e<=1?n:tW(n,t,e-1))))}let fd=(()=>{class n extends Ji{constructor(e){super(),e&&(this.source=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}static{this.\u0275fac=function(i){return new(i||n)(ve(p1))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function za(...n){return qi(t=>n.some(e=>"string"==typeof e?e===t.type:e.type===t.type))}const nW=new dt("@ngrx/effects Internal Root Guard"),WE=new dt("@ngrx/effects User Provided Effects"),TP=new dt("@ngrx/effects Internal Root Effects"),iW=new dt("@ngrx/effects Internal Root Effects Instances"),rW=new dt("@ngrx/effects Internal Feature Effects"),oW=new dt("@ngrx/effects Internal Feature Effects Instance Groups"),B_e=new dt("@ngrx/effects Effects Error Handler",{providedIn:"root",factory:()=>tW}),sW="@ngrx/effects/init";hn(sW);function q_e(n){return IP(n,"ngrxOnInitEffects")}function IP(n,t){return n&&t in n&&"function"==typeof n[t]}let FP=(()=>{class n extends Ln{constructor(e,i){super(),this.errorHandler=e,this.effectsErrorHandler=i}addEffects(e){this.next(e)}toActions(){return this.pipe(yG(e=>function I_e(n){return!!n.constructor&&"Object"!==n.constructor.name&&"Function"!==n.constructor.name}(e)?eW(e):e),Jf(e=>e.pipe(yG(G_e))),Jf(e=>{const i=e.pipe(wG(o=>function W_e(n,t){return e=>{const i=D_e(e,n,t);return function Q_e(n){return IP(n,"ngrxOnRunEffects")}(e)?e.ngrxOnRunEffects(i):i}}(this.errorHandler,this.effectsErrorHandler)(o)),Qe(o=>(function R_e(n,t){if("N"===n.notification.kind){const e=n.notification.value;!function O_e(n){return"function"!=typeof n&&n&&n.type&&"string"==typeof n.type}(e)&&t.handleError(new Error(`Effect ${function L_e({propertyName:n,sourceInstance:t,sourceName:e}){const i="function"==typeof t[n];return e?`"${e}.${String(n)}${i?"()":""}"`:`"${String(n)}()"`}(n)} dispatched an invalid action: ${function N_e(n){try{return JSON.stringify(n)}catch{return n}}(e)}`))}}(o,this.errorHandler),o.notification)),qi(o=>"N"===o.kind&&null!=o.value),function w0e(){return fe((n,t)=>{n.subscribe(De(t,e=>vG(e,t)))})}());return Yl(i,e.pipe($o(1),qi(q_e),Qe(o=>o.ngrxOnInitEffects())))}))}static{this.\u0275fac=function(i){return new(i||n)(ve(Oa),ve(B_e))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function G_e(n){return function H_e(n){return IP(n,"ngrxOnIdentifyEffects")}(n)?n.ngrxOnIdentifyEffects():""}let DP=(()=>{class n{get isStarted(){return!!this.effectsSubscription}constructor(e,i){this.effectSources=e,this.store=i,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}static{this.\u0275fac=function(i){return new(i||n)(ve(FP),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),aW=(()=>{class n{constructor(e,i,r,o,s,a,l){this.sources=e,i.start();for(const c of o)e.addEffects(c);r.dispatch({type:sW})}addEffects(e){this.sources.addEffects(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(FP),ve(DP),ve($t),ve(iW),ve(qE,8),ve(MP,8),ve(nW,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),$_e=(()=>{class n{constructor(e,i,r,o){const s=i.flat();for(const a of s)e.addEffects(a)}static{this.\u0275fac=function(i){return new(i||n)(ve(aW),ve(oW),ve(qE,8),ve(MP,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),j_e=(()=>{class n{static forFeature(...e){const i=e.flat(),r=SP(i);return{ngModule:$_e,providers:[r,{provide:rW,multi:!0,useValue:i},{provide:WE,multi:!0,useValue:[]},{provide:oW,multi:!0,useFactory:lW,deps:[rW,WE]}]}}static forRoot(...e){const i=e.flat(),r=SP(i);return{ngModule:aW,providers:[r,{provide:TP,useValue:[i]},{provide:nW,useFactory:X_e},{provide:WE,multi:!0,useValue:[]},{provide:iW,useFactory:lW,deps:[TP,WE]}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function lW(n,t){const e=[];for(const i of n)e.push(...i);for(const i of t)e.push(...i);return e.map(i=>function F_e(n){return n instanceof dt||EP(n)}(i)?Qt(i):i)}function X_e(){const n=Qt(DP,{optional:!0,skipSelf:!0}),t=Qt(TP,{self:!0});if((1!==t.length||0!==t[0].length)&&n)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}const cA=hn("SET_IS_LOADING_FILE",{_as:"props",_p:void 0});const md=p(4999),sm=hn("SET_AMOUNT_OF_TOP_LABELS",{_as:"props",_p:void 0}),A1=hn("SET_COLOR_LABELS",{_as:"props",_p:void 0}),Y0=hn("SET_EDGE_HEIGHT",{_as:"props",_p:void 0}),$E=hn("SET_SCREENSHOT_TO_CLIPBOARD_ENABLED",{_as:"props",_p:void 0}),jE=hn("SET_EXPERIMENTAL_FEATURES_ENABLED",{_as:"props",_p:void 0}),g1=hn("SET_ENABLE_FLOOR_LABELS",{_as:"props",_p:void 0}),_1=hn("SET_HIDE_FLAT_BUILDINGS",{_as:"props",_p:void 0}),b1=hn("SET_INVERT_AREA",{_as:"props",_p:void 0}),v1=hn("SET_INVERT_HEIGHT",{_as:"props",_p:void 0}),kP=hn("SET_IS_EDGE_METRIC_VISIBLE",{_as:"props",_p:void 0}),XE=hn("TOGGLE_IS_EDGE_METRIC_VISIBLE"),BP=hn("SET_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC",{_as:"props",_p:void 0}),PP=hn("TOGGLE_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC"),KE=hn("SET_PRESENTATION_MODE",{_as:"props",_p:void 0}),y1=hn("SET_IS_WHITE_BACKGROUND",{_as:"props",_p:void 0}),w1=hn("SET_LAYOUT_ALGORITHM",{_as:"props",_p:void 0}),bh=hn("SET_MAP_COLORS",{_as:"props",_p:void 0}),YE=hn("INVERT_COLOR_RANGE"),ZE=hn("INVERT_DELTA_COLORS"),x1=hn("SET_MAX_TREE_MAP_FILES",{_as:"props",_p:void 0}),JE=hn("SET_RESET_CAMERA_IF_NEW_FILE_IS_LOADED",{_as:"props",_p:void 0}),Z0=hn("SET_SCALING",{_as:"props",_p:void 0}),C1=hn("SET_SHARPNESS_MODE",{_as:"props",_p:void 0}),M1=hn("SET_SHOW_METRIC_LABEL_NAME_VALUE",{_as:"props",_p:void 0}),E1=hn("SET_SHOW_METRIC_LABEL_NODE_NAME",{_as:"props",_p:void 0}),S1=hn("SET_SHOW_ONLY_BUILDINGS_WITH_EDGES",{_as:"props",_p:void 0}),vh=hn("SET_AREA_METRIC",{_as:"props",_p:void 0}),pd=hn("SET_COLOR_METRIC",{_as:"props",_p:void 0}),J0=hn("SET_COLOR_MODE",{_as:"props",_p:void 0}),ru=hn("SET_COLOR_RANGE",{_as:"props",_p:void 0}),T1=hn("SET_DISTRIBUTION_METRIC",{_as:"props",_p:void 0}),yh=hn("SET_EDGE_METRIC",{_as:"props",_p:void 0}),wh=hn("SET_HEIGHT_METRIC",{_as:"props",_p:void 0}),e_=hn("SET_MARGIN",{_as:"props",_p:void 0}),am=hn("SET_SEARCH_PATTERN",{_as:"props",_p:void 0}),e2=hn("SET_SORTING_OPTION",{_as:"props",_p:void 0}),RP=hn("SET_ATTRIBUTE_DESCRIPTORS",{_as:"props",_p:void 0}),OP=hn("SET_ATTRIBUTE_TYPES",{_as:"props",_p:void 0}),LP=hn("UPDATE_ATTRIBUTE_TYPE",{_as:"props",_p:void 0}),NP=hn("SET_BLACKLIST",{_as:"props",_p:void 0}),UP=hn("ADD_BLACKLIST_ITEM",{_as:"props",_p:void 0}),t2=hn("ADD_BLACKLIST_ITEMS",{_as:"props",_p:void 0}),n2=hn("REMOVE_BLACKLIST_ITEM",{_as:"props",_p:void 0}),HP=hn("ADD_BLACKLIST_ITEMS_IF_NOT_RESULTS_IN_EMPTY_MAP",{_as:"props",_p:void 0}),VP=hn("SET_EDGES",{_as:"props",_p:void 0}),dW=hn("ADD_EDGE",{_as:"props",_p:void 0}),uW=hn("REMOVE_EDGE",{_as:"props",_p:void 0}),r2=hn("SET_MARKED_PACKAGES",{_as:"props",_p:void 0}),I1=hn("MARK_PACKAGES",{_as:"props",_p:void 0}),o2=hn("UNMARK_PACKAGE",{_as:"props",_p:void 0});function hW(n,t){this.v=n,this.k=t}function fW(n){return new hW(n,0)}function F1(n){var t,e;function i(o,s){try{var a=n[o](s),l=a.value,c=l instanceof hW;Promise.resolve(c?l.v:l).then(function(d){if(c){var u="return"===o?"return":"next";if(!l.k||d.done)return i(u,d);d=n[u](d).value}r(a.done?"return":"normal",d)},function(d){i("throw",d)})}catch(d){r("throw",d)}}function r(o,s){switch(o){case"return":t.resolve({value:s,done:!0});break;case"throw":t.reject(s);break;default:t.resolve({value:s,done:!1})}(t=t.next)?i(t.key,t.arg):e=null}this._invoke=function(o,s){return new Promise(function(a,l){var c={key:o,arg:s,resolve:a,reject:l,next:null};e?e=e.next=c:(t=e=c,i(o,s))})},"function"!=typeof n.return&&(this.return=void 0)}F1.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},F1.prototype.next=function(n){return this._invoke("next",n)},F1.prototype.throw=function(n){return this._invoke("throw",n)},F1.prototype.return=function(n){return this._invoke("return",n)};const QP=(n,t)=>t.some(e=>n instanceof e);let mW,pW;const zP=new WeakMap,qP=new WeakMap,s2=new WeakMap;let GP={get(n,t,e){if(n instanceof IDBTransaction){if("done"===t)return zP.get(n);if("store"===t)return e.objectStoreNames[1]?void 0:e.objectStore(e.objectStoreNames[0])}return lm(n[t])},set:(n,t,e)=>(n[t]=e,!0),has:(n,t)=>n instanceof IDBTransaction&&("done"===t||"store"===t)||t in n};function AW(n){GP=n(GP)}function nbe(n){return"function"==typeof n?function tbe(n){return function Z_e(){return pW||(pW=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(n)?function(...t){return n.apply(WP(this),t),lm(this.request)}:function(...t){return lm(n.apply(WP(this),t))}}(n):(n instanceof IDBTransaction&&function ebe(n){if(zP.has(n))return;const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("complete",o),n.removeEventListener("error",s),n.removeEventListener("abort",s)},o=()=>{e(),r()},s=()=>{i(n.error||new DOMException("AbortError","AbortError")),r()};n.addEventListener("complete",o),n.addEventListener("error",s),n.addEventListener("abort",s)});zP.set(n,t)}(n),QP(n,function Y_e(){return mW||(mW=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(n,GP):n)}function lm(n){if(n instanceof IDBRequest)return function J_e(n){const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("success",o),n.removeEventListener("error",s)},o=()=>{e(lm(n.result)),r()},s=()=>{i(n.error),r()};n.addEventListener("success",o),n.addEventListener("error",s)});return s2.set(t,n),t}(n);if(qP.has(n))return qP.get(n);const t=nbe(n);return t!==n&&(qP.set(n,t),s2.set(t,n)),t}const WP=n=>s2.get(n),rbe=["get","getKey","getAll","getAllKeys","count"],obe=["put","add","delete","clear"],$P=new Map;function gW(n,t){if(!(n instanceof IDBDatabase)||t in n||"string"!=typeof t)return;if($P.get(t))return $P.get(t);const e=t.replace(/FromIndex$/,""),i=t!==e,r=obe.includes(e);if(!(e in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!rbe.includes(e))return;const o=function(){var s=k(function*(a,...l){const c=this.transaction(a,r?"readwrite":"readonly");let d=c.store;return i&&(d=d.index(l.shift())),(yield Promise.all([d[e](...l),r&&c.done]))[0]});return function(l){return s.apply(this,arguments)}}();return $P.set(t,o),o}AW(n=>({...n,get:(t,e,i)=>gW(t,e)||n.get(t,e,i),has:(t,e)=>!!gW(t,e)||n.has(t,e)}));const sbe=["continue","continuePrimaryKey","advance"],_W={},jP=new WeakMap,bW=new WeakMap,abe={get(n,t){if(!sbe.includes(t))return n[t];let e=_W[t];return e||(e=_W[t]=function(...i){jP.set(this,bW.get(this)[t](...i))}),e}};function lbe(){return XP.apply(this,arguments)}function XP(){return XP=function K_e(n){return function(){return new F1(n.apply(this,arguments))}}(function*(...n){let t=this;if(t instanceof IDBCursor||(t=yield fW(t.openCursor(...n))),!t)return;const e=new Proxy(t,abe);for(bW.set(e,t),s2.set(e,WP(t));t;)yield e,t=yield fW(jP.get(e)||t.continue()),jP.delete(e)}),XP.apply(this,arguments)}function vW(n,t){return t===Symbol.asyncIterator&&QP(n,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&QP(n,[IDBIndex,IDBObjectStore])}AW(n=>({...n,get:(t,e,i)=>vW(t,e)?lbe:n.get(t,e,i),has:(t,e)=>vW(t,e)||n.has(t,e)}));const cbe="CodeCharta",dbe=1,D1="ccstate",yW="id",KP=1001;function YP(){return(YP=k(function*(n){const e=(yield tR()).transaction(D1,"readwrite");yield e.store.put({[yW]:KP,state:n}),yield e.done})).apply(this,arguments)}function ZP(){return JP.apply(this,arguments)}function JP(){return(JP=k(function*(){return(yield(yield tR()).get(D1,KP))?.state||null})).apply(this,arguments)}function eR(){return(eR=k(function*(){const t=(yield tR()).transaction(D1,"readwrite");yield t.store.delete(KP),yield t.done})).apply(this,arguments)}function tR(){return nR.apply(this,arguments)}function nR(){return(nR=k(function*(){return function ibe(n,t,{blocked:e,upgrade:i,blocking:r,terminated:o}={}){const s=indexedDB.open(n,t),a=lm(s);return i&&s.addEventListener("upgradeneeded",l=>{i(lm(s.result),l.oldVersion,l.newVersion,lm(s.transaction),l)}),e&&s.addEventListener("blocked",l=>e(l.oldVersion,l.newVersion,l)),a.then(l=>{o&&l.addEventListener("close",()=>o()),r&&l.addEventListener("versionchange",c=>r(c.oldVersion,c.newVersion,c))}).catch(()=>{}),a}(cbe,dbe,{upgrade(n){n.objectStoreNames.contains(D1)||n.createObjectStore(D1,{keyPath:yW})}})})).apply(this,arguments)}const fbe=JSON.parse('{"projectName":"Sample Project with Edges","apiVersion":"1.2","fileChecksum":"valid-md5-sample1","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"sample1OnlyLeaf.scss","type":"File","attributes":{"rloc":400,"functions":10,"sonar_complexity":100,"pairingRate":32,"avgCommits":17},"link":"http://www.google.de"},{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":100,"functions":10,"sonar_complexity":1,"pairingRate":77,"avgCommits":56},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":100,"sonar_complexity":100,"pairingRate":60,"avgCommits":51}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":1000,"sonar_complexity":10,"pairingRate":65,"avgCommits":22}}]}]}],"edges":[{"fromNodeName":"/root/bigLeaf.ts","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":89,"avgCommits":34}},{"fromNodeName":"/root/sample1OnlyLeaf.scss","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":32,"avgCommits":17}},{"fromNodeName":"/root/ParentLeaf/otherSmallLeaf.ts","toNodeName":"/root/bigLeaf.ts","attributes":{"pairingRate":65,"avgCommits":22}}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","sonar_complexity":"absolute","pairingRate":"relative"},"edges":{"pairingRate":"relative","avgCommits":"absolute"}}}'),mbe=JSON.parse('{"projectName":"Sample Project","apiVersion":"1.2","fileChecksum":"valid-md5-sample2","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":120,"functions":10,"sonar_complexity":1},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":101,"sonar_complexity":80}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":10,"sonar_complexity":100}},{"name":"sample2LeafMergedIn.kt","type":"File","attributes":{"rloc":600,"functions":10,"sonar_complexity":1},"link":"http://www.google.de"}]}]}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","sonar_complexity":"absolute"}}}');var er=function(n){return n.Reference="Reference",n.Comparison="Comparison",n.Partial="Partial",n.None="None",n}(er||{});const iR=".png",wW="~",a2="_";function xW(n){return n.some(t=>t.selectedAs!==er.None)}function l2(n){return n.filter(t=>t.selectedAs!==er.None)}function ou(n){return n.some(t=>t.selectedAs===er.Reference)}function CW(n){return n.some(t=>t.selectedAs===er.Partial)}function c2(n,t){return n.fileMeta.fileChecksum===t.fileMeta.fileChecksum}const t_=new VE(HE),wbe=t_;function n_(n,t=t_){return fe((e,i)=>{let r=null,o=null,s=null;const a=()=>{if(r){r.unsubscribe(),r=null;const c=o;o=null,i.next(c)}};function l(){const c=s+n,d=t.now();if(d{o=c,s=t.now(),r||(r=t.schedule(l,n),i.add(r))},()=>{a(),i.complete()},void 0,()=>{o=r=null}))})}function Dr(n,t,e){const i=Yt(n)||t||e?{next:n,error:t,complete:e}:n;return i?fe((r,o)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;r.subscribe(De(o,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),o.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),o.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),o.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):ma}const k1=n=>n.fileSettings,su=Kt(k1,n=>n.blacklist),xh=n=>n.files,au=Kt(xh,l2);function xbe(n){var t=0,e=n.children,i=e&&e.length;if(i)for(;--i>=0;)t+=e[i].value;else t=1;n.value=t}function yo(n,t){n instanceof Map?(n=[void 0,n],void 0===t&&(t=Hbe)):void 0===t&&(t=Ube);for(var i,o,s,a,l,e=new d2(n),r=[e];i=r.pop();)if((s=t(i.data))&&(l=(s=Array.from(s)).length))for(i.children=s,a=l-1;a>=0;--a)r.push(o=s[a]=new d2(s[a])),o.parent=i,o.depth=i.depth+1;return e.eachBefore(Qbe)}function Ube(n){return n.children}function Hbe(n){return Array.isArray(n)?n[1]:null}function Vbe(n){void 0!==n.data.value&&(n.value=n.data.value),n.data=n.data.data}function Qbe(n){var t=0;do{n.height=t}while((n=n.parent)&&n.height<++t)}function d2(n){this.data=n,this.depth=this.height=0,this.parent=null}d2.prototype=yo.prototype={constructor:d2,count:function Cbe(){return this.eachAfter(xbe)},each:function Mbe(n,t){let e=-1;for(const i of this)n.call(t,i,++e,this);return this},eachAfter:function Sbe(n,t){for(var o,s,a,e=this,i=[e],r=[],l=-1;e=i.pop();)if(r.push(e),o=e.children)for(s=0,a=o.length;s=0;--o)i.push(r[o]);return this},find:function Tbe(n,t){let e=-1;for(const i of this)if(n.call(t,i,++e,this))return i},sum:function Ibe(n){return this.eachAfter(function(t){for(var e=+n(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)e+=i[r].value;t.value=e})},sort:function Fbe(n){return this.eachBefore(function(t){t.children&&t.children.sort(n)})},path:function Dbe(n){for(var t=this,e=function kbe(n,t){if(n===t)return n;var e=n.ancestors(),i=t.ancestors(),r=null;for(n=e.pop(),t=i.pop();n===t;)r=n,n=e.pop(),t=i.pop();return r}(t,n),i=[t];t!==e;)i.push(t=t.parent);for(var r=i.length;n!==e;)i.splice(r,0,n),n=n.parent;return i},ancestors:function Bbe(){for(var n=this,t=[n];n=n.parent;)t.push(n);return t},descendants:function Pbe(){return Array.from(this)},leaves:function Rbe(){var n=[];return this.eachBefore(function(t){t.children||n.push(t)}),n},links:function Obe(){var n=this,t=[];return n.each(function(e){e!==n&&t.push({source:e.parent,target:e})}),t},copy:function Nbe(){return yo(this).eachBefore(Vbe)},[Symbol.iterator]:function*Lbe(){var t,i,r,o,n=this,e=[n];do{for(t=e.reverse(),e=[];n=t.pop();)if(yield n,i=n.children)for(r=0,o=i.length;r=7340032:return m2.BIG_MAP;case e>=2097152:return m2.MEDIUM_MAP;default:return m2.SMALL_MAP}}const IW=n=>{n.sort((t,e)=>{const i=t.name.toLowerCase(),r=e.name.toLowerCase();return i>r?1:r>i?-1:0})};function Jbe(n,t){const e=new Map,i=new Set;for(const{file:o}of n)for(const{data:s}of yo(o.map))i.add(s.path);for(const o of n)for(const s of o.file.settings.fileSettings.edges)if(eve(s,i,t))for(const a of Object.keys(s.attributes))nve(tve(e,a),FW(n.length,o,s.fromNodeName),FW(n.length,o,s.toNodeName));const r=function ive(n){const t=[];for(const[e,i]of n){const r=[];let o=0,s=Number.MAX_SAFE_INTEGER;for(const a of i.values()){const l=a.incoming+a.outgoing;r.push(l),l>o&&(o=l),l<=s&&(s=l)}t.push({name:e,values:r,maxValue:o,minValue:s})}return t}(e);return IW(r),{edgeMetricData:r,nodeEdgeMetricsMap:e}}function FW(n,t,e){return n>1?`/root/${t.file.fileMeta.fileName}${e.replace("/root","")}`:e}function eve(n,t,e){return!(!t.has(n.fromNodeName)||!t.has(n.toNodeName)||Ch(n.fromNodeName,e,"exclude")||Ch(n.toNodeName,e,"exclude"))}function tve(n,t){let e=n.get(t);return e||(e=new Map,n.set(t,e)),e}function nve(n,t,e){const i=n.get(t);void 0===i?n.set(t,{incoming:0,outgoing:1}):i.outgoing+=1;const r=n.get(e);void 0===r?n.set(e,{incoming:1,outgoing:0}):r.incoming+=1}const A2="unary",DW=(n,t)=>{if(0===n.length)return[];const e=new Map,i=new Map,r=new Map;for(const{file:s}of n)for(const a of yo(s.map))if(No(a)&&a.data.path&&!Ch(a.data.path,t,"exclude"))for(const l of Object.keys(a.data.attributes)){const c=i.get(l),d=r.get(l);e.get(l)||e.set(l,[]),e.get(l).push(a.data.attributes[l]),(void 0===d||d>=a.data.attributes[l])&&r.set(l,a.data.attributes[l]),(void 0===c||c<=a.data.attributes[l])&&i.set(l,a.data.attributes[l])}const o=[];i.set(A2,1),r.set(A2,1);for(const[s,a]of i)o.push({name:s,values:e.get(s),maxValue:a,minValue:r.get(s)});return IW(o),o},Xs=Kt(au,su,(n,t)=>({nodeMetricData:DW(n,t),...Jbe(n,t)})),rve=[yh,wh,pd,vh];var cu=function(n){return n.areaMetric="area",n.heightMetric="height",n.colorMetric="color",n.edgeMetric="edge",n}(cu||{});let ove=(()=>{class n{constructor(e,i,r,o){this.loadInitialFileService=e,this.actions$=i,this.state=r,this.store=o,this.saveMetricsInQueryParameters$=Ao(()=>this.actions$.pipe(za(...rve),hd(this.store.select(Xs)),Qe(s=>s[1].edgeMetricData&&s[1].edgeMetricData.length>0),n_(100),Dr(s=>{this.updateMetricQueryParameters(s)})),{dispatch:!1})}updateMetricQueryParameters(e){const i=this.state.getValue(),{edgeMetric:r,heightMetric:o,colorMetric:s,areaMetric:a}=i.dynamicSettings;this.loadInitialFileService.checkFileQueryParameterPresent()&&(this.addOrUpdateQueryParameter(cu.areaMetric,a),this.addOrUpdateQueryParameter(cu.heightMetric,o),this.addOrUpdateQueryParameter(cu.colorMetric,s),e?this.addOrUpdateQueryParameter(cu.edgeMetric,r):this.deleteQueryParameterIfExists(cu.edgeMetric))}addOrUpdateQueryParameter(e,i){const r=new URL(window.location.href),o=r.search.slice(1),s=o.length>0?o.split("&"):[],a=[];let l=!1;for(const c of s)c.split("=")[0]===e?(a.push(`${e}=${encodeURIComponent(i)}`),l=!0):a.push(c);l||a.push(`${e}=${encodeURIComponent(i)}`),r.search=a.join("&"),window.history.replaceState(null,"",r.toString())}deleteQueryParameterIfExists(e){const i=new URL(window.location.href),r=i.search.slice(1),o=r.length>0?r.split("&"):[],s=[];for(const a of o){const[l,c]=a.split("=");l!==e&&s.push(`${l}=${c}`)}i.search=s.join("&"),window.history.replaceState(null,"",i.toString())}static{this.\u0275fac=function(i){return new(i||n)(ve(D4),ve(fd),ve(Zr),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const r_=hn("SET_IS_LOADING_MAP",{_as:"props",_p:void 0}),B1=hn("SET_FILES",{_as:"props",_p:void 0}),kW=hn("ADD_FILE",{_as:"props",_p:void 0}),oR=hn("REMOVE_FILE",{_as:"props",_p:void 0}),P1=hn("SET_STANDARD",{_as:"props",_p:void 0}),sR=hn("SET_STANDARD_BY_NAMES",{_as:"props",_p:void 0}),aR=hn("SET_ALL"),lR=hn("INVERT_STANDARD"),cR=hn("SWITCH_REFERENCE_AND_COMPARISON"),dR=hn("SET_DELTA_COMPARISON",{_as:"props",_p:void 0}),uR=hn("SET_DELTA_REFERENCE",{_as:"props",_p:void 0}),g2=hn("SET_DELTA",{_as:"props",_p:void 0}),_2=[B1,kW,oR,P1,sR,aR,lR,cR,dR,uR,g2];function sa(n){return null!=n&&"false"!=`${n}`}function cm(n,t=0){return function sve(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function b2(n){return Array.isArray(n)?n:[n]}function ws(n){return null==n?"":"string"==typeof n?n:`${n}px`}function Mh(n){return n instanceof Nn?n.nativeElement:n}const ave=["addListener","removeListener"],lve=["addEventListener","removeEventListener"],cve=["on","off"];function o_(n,t,e,i){if(Yt(e)&&(i=e,e=void 0),i)return o_(n,t,e).pipe(UB(i));const[r,o]=function hve(n){return Yt(n.addEventListener)&&Yt(n.removeEventListener)}(n)?lve.map(s=>a=>n[s](t,a,e)):function dve(n){return Yt(n.addListener)&&Yt(n.removeListener)}(n)?ave.map(BW(n,t)):function uve(n){return Yt(n.on)&&Yt(n.off)}(n)?cve.map(BW(n,t)):[];if(!r&&DB(n))return Jf(s=>o_(s,t,e))(ls(n));if(!r)throw new TypeError("Invalid event target");return new Ji(s=>{const a=(...l)=>s.next(1o(a)})}function BW(n,t){return e=>i=>n[e](t,i)}const R1={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=R1;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(o=>{e=void 0,n(o)});return new Xn(()=>e?.(r))},requestAnimationFrame(...n){const{delegate:t}=R1;return(t?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=R1;return(t?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0};new class mve extends VE{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class fve extends HE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=R1.requestAnimationFrame(()=>t.flush(void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:o}=t;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(R1.cancelAnimationFrame(e),t._scheduled=void 0)}});let hR,Ave=1;const v2={};function PW(n){return n in v2&&(delete v2[n],!0)}const gve={setImmediate(n){const t=Ave++;return v2[t]=!0,hR||(hR=Promise.resolve()),hR.then(()=>PW(t)&&n()),t},clearImmediate(n){PW(n)}},{setImmediate:_ve,clearImmediate:bve}=gve,y2={setImmediate(...n){const{delegate:t}=y2;return(t?.setImmediate||_ve)(...n)},clearImmediate(n){const{delegate:t}=y2;return(t?.clearImmediate||bve)(n)},delegate:void 0},fR=new class yve extends VE{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class vve extends HE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=y2.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:o}=t;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(y2.clearImmediate(e),t._scheduled===e&&(t._scheduled=void 0))}});function mR(n=0,t,e=wbe){let i=-1;return null!=t&&(Fz(t)?e=t:i=t),new Ji(r=>{let o=function xve(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;o<0&&(o=0);let s=0;return e.schedule(function(){r.closed||(r.next(s++),0<=i?this.schedule(void 0,i):r.complete())},o)})}function pR(n,t=t_){return function wve(n){return fe((t,e)=>{let i=!1,r=null,o=null,s=!1;const a=()=>{if(o?.unsubscribe(),o=null,i){i=!1;const c=r;r=null,e.next(c)}s&&e.complete()},l=()=>{o=null,s&&e.complete()};t.subscribe(De(e,c=>{i=!0,r=c,o||ls(n(c)).subscribe(o=De(e,a,l))},()=>{s=!0,(!i||!o||o.closed)&&e.complete()}))})}(()=>mR(n,t))}let AR;try{AR=typeof Intl<"u"&&Intl.v8BreakIterator}catch{AR=!1}let s_,ro=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function epe(n){return n===iz}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!AR)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static{this.\u0275fac=function(i){return new(i||n)(ve(Qf))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const RW=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function OW(){if(s_)return s_;if("object"!=typeof document||!document)return s_=new Set(RW),s_;let n=document.createElement("input");return s_=new Set(RW.filter(t=>(n.setAttribute("type",t),n.type===t))),s_}let O1,uA,gR;function dA(n){return function Cve(){if(null==O1&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>O1=!0}))}finally{O1=O1||!1}return O1}()?n:!!n.capture}function Mve(){if(null==uA){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return uA=!1,uA;if("scrollBehavior"in document.documentElement.style)uA=!0;else{const n=Element.prototype.scrollTo;uA=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return uA}function x2(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function dm(n){return n.composedPath?n.composedPath()[0]:n.target}function _R(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const Tve=new dt("cdk-dir-doc",{providedIn:"root",factory:function Ive(){return Qt(Li)}}),Fve=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Eh=(()=>{class n{constructor(e){this.value="ltr",this.change=new Fn,e&&(this.value=function Dve(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?Fve.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||n)(ve(Tve,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),N1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),LW=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Ln,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new Ji(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(pR(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):hl()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(qi(o=>!o||r.indexOf(o)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,o)=>{this._scrollableContainsElement(o,e)&&i.push(o)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=Mh(i),o=e.getElementRef().nativeElement;do{if(r==o)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>o_(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static{this.\u0275fac=function(i){return new(i||n)(ve(In),ve(ro),ve(Li,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),bR=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new Ln,this._changeListener=o=>{this._change.next(o)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,o=r.getBoundingClientRect();return{top:-o.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-o.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(pR(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(In),ve(Li,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),U1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),NW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[N1,U1,N1,U1]})}}return n})();function oo(n){return fe((t,e)=>{ls(n).subscribe(De(e,()=>e.complete(),tl)),!e.closed&&t.subscribe(e)})}class vR{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class H1 extends vR{constructor(t,e,i,r,o){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=o}}class V1 extends vR{constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class Rve extends vR{constructor(t){super(),this.element=t instanceof Nn?t.nativeElement:t}}class yR{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof H1?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof V1?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof Rve?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Ove extends yR{constructor(t,e,i,r,o){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");a.parentNode.insertBefore(l,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let r;return t.viewContainerRef?(r=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector,t.projectableNodes||void 0),this.setDisposeFn(()=>r.destroy())):(r=i.create(t.injector||this._defaultInjector||is.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=t,r}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);-1!==r&&e.remove(r)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let C2=(()=>{class n extends yR{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Fn,this.attachDomPortal=o=>{const s=o.element,a=this._document.createComment("dom-portal");o.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=o,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=r}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,o=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),s=i.createComponent(o,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=e,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static{this.\u0275fac=function(i){return new(i||n)($(b0),$(oa),$(Li))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[Ct.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[yi]})}}return n})(),Q1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function Ad(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const UW=Mve();class Kve{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=ws(-this._previousScrollPosition.left),t.style.top=ws(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,r=this._document.body.style,o=i.scrollBehavior||"",s=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),UW&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),UW&&(i.scrollBehavior=o,r.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class Yve{constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0).pipe(qi(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class HW{enable(){}disable(){}attach(){}}function xR(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function VW(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class Zve{constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();xR(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Jve=(()=>{class n{constructor(e,i,r,o){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new HW,this.close=s=>new Yve(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new Kve(this._viewportRuler,this._document),this.reposition=s=>new Zve(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}static{this.\u0275fac=function(i){return new(i||n)(ve(LW),ve(bR),ve(In),ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class I2{constructor(t){if(this.scrollStrategy=new HW,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class eye{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let QW=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static{this.\u0275fac=function(i){return new(i||n)(ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),tye=(()=>{class n extends QW{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const a=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(r)):a.next(r);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(In,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),nye=(()=>{class n extends QW{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=dm(o)},this._clickListener=o=>{const s=dm(o),a="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const l=this._attachedOverlays.slice();for(let c=l.length-1;c>-1;c--){const d=l[c];if(d._outsidePointerEvents.observers.length<1||!d.hasAttached())continue;if(d.overlayElement.contains(s)||d.overlayElement.contains(a))break;const u=d._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>u.next(o)):u.next(o)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(ro),ve(In,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),F2=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||_R()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let o=0;othis._backdropClick.next(u),this._backdropTransitionendHandler=u=>{this._disposeBackdrop(u.target)},this._keydownEvents=new Ln,this._outsidePointerEvents=new Ln,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe($o(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=ws(this._config.width),t.height=ws(this._config.height),t.minWidth=ws(this._config.minWidth),t.minHeight=ws(this._config.minHeight),t.maxWidth=ws(this._config.maxWidth),t.maxHeight=ws(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;if(t){if(this._animationsDisabled)return void this._disposeBackdrop(t);t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){const r=b2(e||[]).filter(o=>!!o);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(oo(Yl(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const zW="cdk-overlay-connected-position-bounding-box",iye=/([A-Za-z%]+)$/;class rye{get positions(){return this._preferredPositions}constructor(t,e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new Ln,this._resizeSubscription=Xn.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}attach(t){this._validatePositions(),t.hostElement.classList.add(zW),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,o=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(t,r,a),c=this._getOverlayPoint(l,e,a),d=this._getOverlayFit(c,e,i,a);if(d.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(d,c,i)?o.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=d,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&hA(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(zW),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r,o;if("center"==i.originX)r=t.left+t.width/2;else{const s=this._isRtl()?t.right:t.left,a=this._isRtl()?t.left:t.right;r="start"==i.originX?s:a}return e.left<0&&(r-=e.left),o="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(o-=e.top),{x:r,y:o}}_getOverlayPoint(t,e,i){let r,o;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,o="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+o}}_getOverlayFit(t,e,i,r){const o=GW(e);let{x:s,y:a}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(s+=l),c&&(a+=c);let h=0-a,f=a+o.height-i.height,A=this._subtractOverflows(o.width,0-s,s+o.width-i.width),y=this._subtractOverflows(o.height,h,f),_=A*y;return{visibleArea:_,isCompletelyWithinViewport:o.width*o.height===_,fitsInViewportVertically:y===o.height,fitsInViewportHorizontally:A==o.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,o=i.right-e.x,s=qW(this._overlayRef.getConfig().minHeight),a=qW(this._overlayRef.getConfig().minWidth);return(t.fitsInViewportVertically||null!=s&&s<=r)&&(t.fitsInViewportHorizontally||null!=a&&a<=o)}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const r=GW(e),o=this._viewportRect,s=Math.max(t.x+r.width-o.width,0),a=Math.max(t.y+r.height-o.height,0),l=Math.max(o.top-i.top-t.y,0),c=Math.max(o.left-i.left-t.x,0);let d=0,u=0;return d=r.width<=o.width?c||-s:t.xA&&!this._isInitialRender&&!this._growAfterOpen&&(s=t.y-A/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)h=i.width-t.x+2*this._viewportMargin,d=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)u=t.x,d=i.right-t.x;else{const f=Math.min(i.right-t.x+i.left,t.x),A=this._lastBoundingBoxSize.width;d=2*f,u=t.x-f,d>A&&!this._isInitialRender&&!this._growAfterOpen&&(u=t.x-A/2)}return{top:s,left:u,bottom:a,right:h,width:d,height:o}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;r.height=ws(i.height),r.top=ws(i.top),r.bottom=ws(i.bottom),r.width=ws(i.width),r.left=ws(i.left),r.right=ws(i.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",o&&(r.maxHeight=ws(o)),s&&(r.maxWidth=ws(s))}this._lastBoundingBoxSize=i,hA(this._boundingBox.style,r)}_resetBoundingBoxStyles(){hA(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){hA(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(r){const d=this._viewportRuler.getViewportScrollPosition();hA(i,this._getExactOverlayY(e,t,d)),hA(i,this._getExactOverlayX(e,t,d))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(r?i.maxHeight=ws(s.maxHeight):o&&(i.maxHeight="")),s.maxWidth&&(r?i.maxWidth=ws(s.maxWidth):o&&(i.maxWidth="")),hA(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},o=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":r.top=ws(o.y),r}_getExactOverlayX(t,e,i){let s,r={left:"",right:""},o=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),s=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===s?r.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":r.left=ws(o.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:VW(t,i),isOriginOutsideView:xR(t,i),isOverlayClipped:VW(e,i),isOverlayOutsideView:xR(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&b2(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof Nn)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function hA(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function qW(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(iye);return e&&"px"!==e?null:parseFloat(t)}return n||null}function GW(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const WW="cdk-global-overlay-wrapper";class sye{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(WW),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:o,maxWidth:s,maxHeight:a}=i,l=!("100%"!==r&&"100vw"!==r||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==o&&"100vh"!==o||a&&"100%"!==a&&"100vh"!==a),d=this._xPosition,u=this._xOffset,h="rtl"===this._overlayRef.getConfig().direction;let f="",A="",y="";l?y="flex-start":"center"===d?(y="center",h?A=u:f=u):h?"left"===d||"end"===d?(y="flex-end",f=u):("right"===d||"start"===d)&&(y="flex-start",A=u):"left"===d||"start"===d?(y="flex-start",f=u):("right"===d||"end"===d)&&(y="flex-end",A=u),t.position=this._cssPosition,t.marginLeft=l?"0":f,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":A,e.justifyContent=y,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(WW),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let aye=(()=>{class n{constructor(e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o}global(){return new sye}flexibleConnectedTo(e){return new rye(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||n)(ve(bR),ve(Li),ve(ro),ve(F2))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),lye=0,Ls=(()=>{class n{constructor(e,i,r,o,s,a,l,c,d,u,h,f){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=a,this._ngZone=l,this._document=c,this._directionality=d,this._location=u,this._outsideClickDispatcher=h,this._animationsModuleType=f}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),o=this._createPortalOutlet(r),s=new I2(e);return s.direction=s.direction||this._directionality.value,new D2(o,i,r,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+lye++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Xf)),new Ove(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||n)(ve(Jve),ve(F2),ve(b0),ve(aye),ve(tye),ve(is),ve(In),ve(Li),ve(Eh),ve(Jk),ve(nye),ve(_s,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const cye=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],$W=new dt("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition()}});let CR=(()=>{class n{constructor(e){this.elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return n})(),jW=(()=>{class n{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}constructor(e,i,r,o,s){this._overlay=e,this._dir=s,this._backdropSubscription=Xn.EMPTY,this._attachSubscription=Xn.EMPTY,this._detachSubscription=Xn.EMPTY,this._positionSubscription=Xn.EMPTY,this._disposeOnNavigation=!1,this._ngZone=Qt(In),this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.hasBackdrop=!1,this.lockPosition=!1,this.flexibleDimensions=!1,this.growAfterOpen=!1,this.push=!1,this.backdropClick=new Fn,this.positionChange=new Fn,this.attach=new Fn,this.detach=new Fn,this.overlayKeydown=new Fn,this.overlayOutsideClick=new Fn,this._templatePortal=new V1(i,r),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=cye);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Ad(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new I2({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof CR?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Pve(n,t=!1){return fe((e,i)=>{let r=0;e.subscribe(De(i,o=>{const s=n(o,r++);(s||t)&&i.next(o),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(Ls),$(jl),$(oa),$($W),$(Eh,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[Ct.None,"cdkConnectedOverlayOrigin","origin"],positions:[Ct.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[Ct.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[Ct.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[Ct.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[Ct.None,"cdkConnectedOverlayWidth","width"],height:[Ct.None,"cdkConnectedOverlayHeight","height"],minWidth:[Ct.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[Ct.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[Ct.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[Ct.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[Ct.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[Ct.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[Ct.None,"cdkConnectedOverlayOpen","open"],disableClose:[Ct.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[Ct.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayHasBackdrop","hasBackdrop",Jn],lockPosition:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayLockPosition","lockPosition",Jn],flexibleDimensions:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",Jn],growAfterOpen:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",Jn],push:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayPush","push",Jn],disposeOnNavigation:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",Jn]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[rs,xr]})}}return n})();const uye={provide:$W,deps:[Ls],useFactory:function dye(n){return()=>n.scrollStrategies.reposition()}};let q1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Ls,uye],imports:[N1,Q1,NW,NW]})}}return n})();function G1(n){return qi((t,e)=>n<=e)}let XW=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),hye=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Mh(e);return new Ji(r=>{const s=this._observeElement(i).subscribe(r);return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new Ln,r=this._mutationObserverFactory.create(o=>i.next(o));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static{this.\u0275fac=function(i){return new(i||n)(ve(XW))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),KW=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=cm(e),this._subscribe()}constructor(e,i,r){this._contentObserver=e,this._elementRef=i,this._ngZone=r,this.event=new Fn,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(n_(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(hye),$(Nn),$(In))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[Ct.HasDecoratorInputTransform,"cdkObserveContentDisabled","disabled",Jn],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],standalone:!0,features:[rs]})}}return n})(),MR=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[XW]})}}return n})();function Sh(...n){const t=Xy(n),e=EB(n),{args:i,keys:r}=pq(n);if(0===i.length)return tA([],t);const o=new Ji(function fye(n,t,e=ma){return i=>{YW(t,()=>{const{length:r}=n,o=new Array(r);let s=r,a=r;for(let l=0;l{const c=tA(n[l],t);let d=!1;c.subscribe(De(i,u=>{o[l]=u,d||(d=!0,a--),a||i.next(e(o.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,t,r?s=>Aq(r,s):ma));return e?o.pipe(UB(e)):o}function YW(n,t,e){n?Ah(e,n,t):t()}function k2(...n){return function mye(){return gG(1)}()(tA(n,Xy(n)))}function gd(...n){const t=Xy(n);return fe((e,i)=>{(t?k2(n,e,t):k2(n,e)).subscribe(i)})}const ZW=new Set;let fA,pye=(()=>{class n{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):gye}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Aye(n,t){if(!ZW.has(n))try{fA||(fA=document.createElement("style"),t&&fA.setAttribute("nonce",t),fA.setAttribute("type","text/css"),document.head.appendChild(fA)),fA.sheet&&(fA.sheet.insertRule(`@media ${n} {body{ }}`,0),ZW.add(n))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(GD,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function gye(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let _ye=(()=>{class n{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new Ln}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return JW(b2(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let o=Sh(JW(b2(e)).map(s=>this._registerQuery(s).observable));return o=k2(o.pipe($o(1)),o.pipe(G1(1),n_(0))),o.pipe(Qe(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),o={observable:new Ji(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(gd(i),Qe(({matches:s})=>({query:e,matches:s})),oo(this._destroySubject)),mql:i};return this._queries.set(e,o),o}static{this.\u0275fac=function(i){return new(i||n)(ve(pye),ve(In))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function JW(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function t$(n,t,e){const i=B2(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(" ")))}function ER(n,t,e){const i=B2(n,t);e=e.trim();const r=i.filter(o=>o!==e);r.length?n.setAttribute(t,r.join(" ")):n.removeAttribute(t)}function B2(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}const n$="cdk-describedby-message",P2="cdk-describedby-host";let SR=0,bye=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+SR++,this._document=e,this._id=Qt(Zv)+"-"+SR++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;const o=TR(i,r);"string"!=typeof i?(i$(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,o)||this._addMessageReference(e,o)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;const o=TR(i,r);if(this._isElementDescribedByMessage(e,o)&&this._removeMessageReference(e,o),"string"==typeof i){const s=this._messageRegistry.get(o);s&&0===s.referenceCount&&this._deleteMessageElement(o)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${P2}="${this._id}"]`);for(let i=0;i0!=r.indexOf(n$));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const r=this._messageRegistry.get(i);t$(e,"aria-describedby",r.messageElement.id),e.setAttribute(P2,this._id),r.referenceCount++}_removeMessageReference(e,i){const r=this._messageRegistry.get(i);r.referenceCount--,ER(e,"aria-describedby",r.messageElement.id),e.removeAttribute(P2)}_isElementDescribedByMessage(e,i){const r=B2(e,"aria-describedby"),o=this._messageRegistry.get(i),s=o&&o.messageElement.id;return!!s&&-1!=r.indexOf(s)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),o=e.getAttribute("aria-label");return!(!r||o&&o.trim()===r)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(ro))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function TR(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function i$(n,t){n.id||(n.id=`${n$}-${t}-${SR++}`)}class r${constructor(t,e){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new Ln,this._typeaheadSubscription=Xn.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=i=>i.disabled,this._pressedLetters=[],this.tabOut=new Ln,this.change=new Ln,t instanceof sh?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):EM(t)&&(this._effectRef=function RQ(n,t){Xd("NgSignals"),!t?.injector&&bp();const e=t?.injector??Qt(is),i=!0!==t?.manualCleanup?e.get(qd):null,r=new Pfe(e.get(Dfe),n,typeof Zone>"u"?null:Zone.current,i,e,t?.allowSignalWrites??!1),o=e.get(vo,null,{optional:!0});return o&&8&o._lView[Hn]?(o._lView[Pg]??=[]).push(r.watcher.notify):r.watcher.notify(),r}(()=>this._itemsChanged(t()),{injector:e}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Dr(e=>this._pressedLetters.push(e)),n_(t),qi(()=>this._pressedLetters.length>0),Qe(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let r=1;r!t[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(o=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const r=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return EM(this._items)?this._items():this._items instanceof sh?this._items.toArray():this._items}_itemsChanged(t){if(this._activeItem){const e=t.indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}}class vye extends r${setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class IR extends r${constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let FR=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function wye(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function yye(n){try{return n.frameElement}catch{return null}}(function Fye(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===s$(i)||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),o=s$(e);return e.hasAttribute("contenteditable")?-1!==o:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function Tye(n){let t=n.nodeName.toLowerCase(),e="input"===t&&n.type;return"text"===e||"password"===e||"select"===t||"textarea"===t}(e))&&("audio"===r?!!e.hasAttribute("controls")&&-1!==o:"video"===r?-1!==o&&(null!==o||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Iye(n){return!function Cye(n){return function Eye(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function xye(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function Mye(n){return function Sye(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||o$(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static{this.\u0275fac=function(i){return new(i||n)(ve(ro))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function o$(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function s$(n){if(!o$(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class a${get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}constructor(t,e,i,r,o=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,o||this.attachAnchors()}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){const e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){const e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){const e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;const e=t.children;for(let i=0;i=0;i--){const r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe($o(1)).subscribe(t)}}let l$=(()=>{class n{constructor(e,i,r){this._checker=e,this._ngZone=i,this._document=r}create(e,i=!1){return new a$(e,this._checker,this._ngZone,this._document,i)}static{this.\u0275fac=function(i){return new(i||n)(ve(FR),ve(In),ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function DR(n){return 0===n.buttons||0===n.detail}function kR(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const Dye=new dt("cdk-input-modality-detector-options"),kye={ignoreKeys:[18,17,224,91,16]},c_=dA({passive:!0,capture:!0});let Bye=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(e,i,r,o){this._platform=e,this._mostRecentTarget=null,this._modality=new Ia(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=dm(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(DR(s)?"keyboard":"mouse"),this._mostRecentTarget=dm(s))},this._onTouchstart=s=>{kR(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=dm(s))},this._options={...kye,...o},this.modalityDetected=this._modality.pipe(G1(1)),this.modalityChanged=this.modalityDetected.pipe(d1()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,c_),r.addEventListener("mousedown",this._onMousedown,c_),r.addEventListener("touchstart",this._onTouchstart,c_)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,c_),document.removeEventListener("mousedown",this._onMousedown,c_),document.removeEventListener("touchstart",this._onTouchstart,c_))}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(In),ve(Li),ve(Dye,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Pye=new dt("liveAnnouncerElement",{providedIn:"root",factory:function Rye(){return null}}),Oye=new dt("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Lye=0,Nye=(()=>{class n{constructor(e,i,r,o){this._ngZone=i,this._defaultOptions=o,this._document=r,this._liveElement=e||this._createLiveElement()}announce(e,...i){const r=this._defaultOptions;let o,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[o,s]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=r&&r.politeness?r.politeness:"polite"),null==s&&r&&(s=r.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{constructor(e,i,r,o,s){this._ngZone=e,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new Ln,this._rootNodeFocusAndBlurListener=a=>{for(let c=dm(a);c;c=c.parentElement)"focus"===a.type?this._onFocus(a,c):this._onBlur(a,c)},this._document=o,this._detectionMode=s?.detectionMode||R2.IMMEDIATE}monitor(e,i=!1){const r=Mh(e);if(!this._platform.isBrowser||1!==r.nodeType)return hl();const o=function Sve(n){if(function Eve(){if(null==gR){const n=typeof document<"u"?document.head:null;gR=!(!n||!n.createShadowRoot&&!n.attachShadow)}return gR}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(r)||this._getDocument(),s=this._elementInfo.get(r);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new Ln,rootNode:o};return this._elementInfo.set(r,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Mh(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){const o=Mh(e);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof o.focus&&o.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===R2.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,this._detectionMode===R2.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),o=dm(e);!r||!r.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),r)}_onBlur(e,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,O2),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,O2)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(oo(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,O2),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,O2),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((r,o)=>{(o===e||r.checkChildren&&o.contains(e))&&i.push([o,r])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const o=e.labels;if(o)for(let s=0;s{class n{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Qt(_ye).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return mA.NONE;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,o=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return mA.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return mA.BLACK_ON_WHITE}return mA.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(BR,d$,u$),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===mA.BLACK_ON_WHITE?e.add(BR,d$):i===mA.WHITE_ON_BLACK&&e.add(BR,u$)}}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),PR=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}static{this.\u0275fac=function(i){return new(i||n)(ve(h$))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[MR]})}}return n})();function RR(n){return new Ji(t=>{ls(n()).subscribe(t)})}function Hye(n,t){}class L2{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let f$=(()=>{class n extends yR{constructor(e,i,r,o,s,a,l,c){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=o,this._interactivityChecker=s,this._ngZone=a,this._overlayRef=l,this._focusMonitor=c,this._platform=Qt(ro),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=Qt(vo),this.attachDomPortal=d=>{this._portalOutlet.hasAttached();const u=this._portalOutlet.attachDomPortal(d);return this._contentAttached(),u},this._document=r,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const r=()=>{e.removeEventListener("blur",r),e.removeEventListener("mousedown",r),e.removeAttribute("tabindex")};e.addEventListener("blur",r),e.addEventListener("mousedown",r)})),e.focus(i)}_focusByCssSelector(e,i){let r=this._elementRef.nativeElement.querySelector(e);r&&this._forceFocus(r,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const r=x2(),o=this._elementRef.nativeElement;(!r||r===this._document.body||r===o||o.contains(r))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=x2();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=x2()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(l$),$(Li,8),$(L2),$(FR),$(In),$(D2),$(Th))}}static{this.\u0275cmp=bt({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&ti(C2,7),2&i){let o;an(o=ln())&&(r._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&pi("id",r._config.id||null)("role",r._config.role)("aria-modal",r._config.ariaModal)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null)},standalone:!0,features:[yi,Nr],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&pt(0,Hye,0,0,"ng-template",0)},dependencies:[C2],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return n})();class OR{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new Ln,this.disableClose=e.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Ad(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=t.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(t,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",e=""){return this.overlayRef.updateSize({width:t,height:e}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}}const m$=new dt("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.block()}}),Vye=new dt("DialogData"),Qye=new dt("DefaultDialogConfig");let qye=0,p$=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,r,o,s,a){this._overlay=e,this._injector=i,this._defaultOptions=r,this._parentDialog=o,this._overlayContainer=s,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ln,this._afterOpenedAtThisLevel=new Ln,this._ariaHiddenElements=new Map,this.afterAllClosed=RR(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(gd(void 0))),this._scrollStrategy=a}open(e,i){(i={...this._defaultOptions||new L2,...i}).id=i.id||"cdk-dialog-"+qye++,i.id&&this.getDialogById(i.id);const o=this._getOverlayConfig(i),s=this._overlay.create(o),a=new OR(s,i),l=this._attachContainer(s,a,i);return a.containerInstance=l,this._attachDialogContent(e,a,l,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){LR(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){LR(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),LR(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new I2({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,r){const o=r.injector||r.viewContainerRef?.injector,s=[{provide:L2,useValue:r},{provide:OR,useValue:i},{provide:D2,useValue:e}];let a;r.container?"function"==typeof r.container?a=r.container:(a=r.container.type,s.push(...r.container.providers(r))):a=f$;const l=new H1(a,r.viewContainerRef,is.create({parent:o||this._injector,providers:s}),r.componentFactoryResolver);return e.attach(l).instance}_attachDialogContent(e,i,r,o){if(e instanceof jl){const s=this._createInjector(o,i,r,void 0);let a={$implicit:o.data,dialogRef:i};o.templateContext&&(a={...a,..."function"==typeof o.templateContext?o.templateContext():o.templateContext}),r.attachTemplatePortal(new V1(e,null,a,s))}else{const s=this._createInjector(o,i,r,this._injector),a=r.attachComponentPortal(new H1(e,o.viewContainerRef,s,o.componentFactoryResolver));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,r,o){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Vye,useValue:e.data},{provide:OR,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,r)):a.push(...e.providers)),e.direction&&(!s||!s.get(Eh,null,{optional:!0}))&&a.push({provide:Eh,useValue:{value:e.direction,change:hl()}}),is.create({parent:s||o,providers:a})}_removeOpenDialog(e,i){const r=this.openDialogs.indexOf(e);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,s)=>{o?s.setAttribute("aria-hidden",o):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let r=i.length-1;r>-1;r--){const o=i[r];o!==e&&"SCRIPT"!==o.nodeName&&"STYLE"!==o.nodeName&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||n)(ve(Ls),ve(is),ve(Qye,8),ve(n,12),ve(F2),ve(m$))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function LR(n,t){let e=n.length;for(;e--;)t(n[e])}let Gye=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[p$],imports:[q1,Q1,PR,Q1]})}}return n})();const Wye=["text"],$ye=[[["mat-icon"]],"*"],jye=["mat-icon","*"];function Xye(n,t){if(1&n&&xe(0,"mat-pseudo-checkbox",1),2&n){const e=Le();_e("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function Kye(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&_e("disabled",Le().disabled)}function Yye(n,t){if(1&n&&(D(0,"span",4),ye(1),U()),2&n){const e=Le();Q(),sn("(",e.group.label,")")}}const Zye=["mat-internal-form-field",""],Jye=["*"],t1e=new dt("mat-sanity-checks",{providedIn:"root",factory:function e1e(){return!0}});let fr=(()=>{class n{constructor(e,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!_R()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static{this.\u0275fac=function(i){return new(i||n)(ve(h$),ve(t1e,8),ve(Li))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[N1,N1]})}}return n})();class NR{constructor(t,e,i,r,o){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=o,this.errorState=!1}updateErrorState(){const t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(r,e)??!1;o!==t&&(this.errorState=o,this._stateChanges.next())}}let _$=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var fl=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(fl||{});class a1e{constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=fl.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const b$=dA({passive:!0,capture:!0});class l1e{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=dm(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(o=>o.handleEvent(t))})}}addHandler(t,e,i,r){const o=this._events.get(e);if(o){const s=o.get(i);s?s.add(r):o.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,b$)})}removeHandler(t,e,i){const r=this._events.get(t);if(!r)return;const o=r.get(e);o&&(o.delete(i),0===o.size&&r.delete(e),0===r.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,b$)))}}const v$={enterDuration:225,exitDuration:150},y$=dA({passive:!0,capture:!0}),w$=["mousedown","touchstart"],x$=["mouseup","mouseleave","touchend","touchcancel"];class $1{static{this._eventManager=new l1e}constructor(t,e,i,r){this._target=t,this._ngZone=e,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=Mh(i))}fadeInRipple(t,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...v$,...i.animation};i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);const s=i.radius||function d1e(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}(t,e,r),a=t-r.left,l=e-r.top,c=o.enterDuration,d=document.createElement("div");d.classList.add("mat-ripple-element"),d.style.left=a-s+"px",d.style.top=l-s+"px",d.style.height=2*s+"px",d.style.width=2*s+"px",null!=i.color&&(d.style.backgroundColor=i.color),d.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(d);const u=window.getComputedStyle(d),f=u.transitionDuration,A="none"===u.transitionProperty||"0s"===f||"0s, 0s"===f||0===r.width&&0===r.height,y=new a1e(this,d,i,A);d.style.transform="scale3d(1, 1, 1)",y.state=fl.FADING_IN,i.persistent||(this._mostRecentTransientRipple=y);let _=null;return!A&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const b=()=>this._finishRippleTransition(y),M=()=>this._destroyRipple(y);d.addEventListener("transitionend",b),d.addEventListener("transitioncancel",M),_={onTransitionEnd:b,onTransitionCancel:M}}),this._activeRipples.set(y,_),(A||!c)&&this._finishRippleTransition(y),y}fadeOutRipple(t){if(t.state===fl.FADING_OUT||t.state===fl.HIDDEN)return;const e=t.element,i={...v$,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=fl.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=Mh(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,w$.forEach(i=>{$1._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{x$.forEach(e=>{this._triggerElement.addEventListener(e,this,y$)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===fl.FADING_IN?this._startFadeOutTransition(t):t.state===fl.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=fl.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){const e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=fl.HIDDEN,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel)),t.element.remove()}_onMousedown(t){const e=DR(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(t.state===fl.VISIBLE||t.config.terminateOnPointerUp&&t.state===fl.FADING_IN)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(w$.forEach(e=>$1._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&x$.forEach(e=>t.removeEventListener(e,this,y$)))}}const d_=new dt("mat-ripple-global-options");let Ih=(()=>{class n{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,r,o,s){this._elementRef=e,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new $1(this,i,e,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(ro),$(d_,8),$(_s,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mat-ripple-unbounded",r.unbounded)},inputs:{color:[Ct.None,"matRippleColor","color"],unbounded:[Ct.None,"matRippleUnbounded","unbounded"],centered:[Ct.None,"matRippleCentered","centered"],radius:[Ct.None,"matRippleRadius","radius"],animation:[Ct.None,"matRippleAnimation","animation"],disabled:[Ct.None,"matRippleDisabled","disabled"],trigger:[Ct.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return n})(),u_=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})(),C$=(()=>{class n{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static{this.\u0275fac=function(i){return new(i||n)($(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){2&i&&Un("mat-pseudo-checkbox-indeterminate","indeterminate"===r.state)("mat-pseudo-checkbox-checked","checked"===r.state)("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal","minimal"===r.appearance)("mat-pseudo-checkbox-full","full"===r.appearance)("_mat-animation-noopable","NoopAnimations"===r._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},standalone:!0,features:[Nr],decls:0,vars:0,template:function(i,r){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color);border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color);border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}}return n})(),M$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr]})}}return n})();const E$=new dt("MAT_OPTION_PARENT_COMPONENT"),S$=new dt("MatOptgroup");let u1e=0;class h1e{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let du=(()=>{class n{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,r,o){this._element=e,this._changeDetectorRef=i,this._parent=r,this.group=o,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+u1e++,this.onSelectionChange=new Fn,this._stateChanges=new Ln}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const r=this._getHostElement();"function"==typeof r.focus&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Ad(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new h1e(this,e))}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(vo),$(E$,8),$(S$,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(1&i&&ti(Wye,7),2&i){let o;an(o=ln())&&(r._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){1&i&&ze("click",function(){return r._selectViaInteraction()})("keydown",function(s){return r._handleKeydown(s)}),2&i&&(Zd("id",r.id),pi("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),Un("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],standalone:!0,features:[rs,Nr],ngContentSelectors:jye,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){1&i&&(Yr($ye),pt(0,Xye,1,2,"mat-pseudo-checkbox",1),Vn(1),D(2,"span",2,0),Vn(4,1),U(),pt(5,Kye,1,1,"mat-pseudo-checkbox",3)(6,Yye,2,1,"span",4),xe(7,"div",5)),2&i&&(Tt(0,r.multiple?0:-1),Q(5),Tt(5,r.multiple||!r.selected||r.hideSingleSelectionIndicator?-1:5),Q(),Tt(6,r.group&&r.group._inert?6:-1),Q(),_e("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[C$,Ih],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return n})(),T$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[u_,fr,M$]})}}return n})();const I$={capture:!0},F$=["focus","click","mouseenter","touchstart"],UR="mat-ripple-loader-uninitialized",HR="mat-ripple-loader-class-name",D$="mat-ripple-loader-centered",N2="mat-ripple-loader-disabled";let p1e=(()=>{class n{constructor(){this._document=Qt(Li,{optional:!0}),this._animationMode=Qt(_s,{optional:!0}),this._globalRippleOptions=Qt(d_,{optional:!0}),this._platform=Qt(ro),this._ngZone=Qt(In),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const r=e.target.closest(`[${UR}]`);r&&this._createRipple(r)},this._ngZone.runOutsideAngular(()=>{for(const e of F$)this._document?.addEventListener(e,this._onInteraction,I$)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of F$)this._document?.removeEventListener(i,this._onInteraction,I$)}configureRipple(e,i){e.setAttribute(UR,""),(i.className||!e.hasAttribute(HR))&&e.setAttribute(HR,i.className||""),i.centered&&e.setAttribute(D$,""),i.disabled&&e.setAttribute(N2,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const r=this._hosts.get(e);r?r.disabled=i:i?e.setAttribute(N2,""):e.removeAttribute(N2)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const r=this._document.createElement("span");r.classList.add("mat-ripple",e.getAttribute(HR)),e.append(r);const o=new Ih(new Nn(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=e,o.centered=e.hasAttribute(D$),o.disabled=e.hasAttribute(N2),this.attachRipple(e,o),o}attachRipple(e,i){e.removeAttribute(UR),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),k$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[Nr],attrs:Zye,ngContentSelectors:Jye,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:[".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-form-field{font-family:var(--mdc-form-field-label-text-font);line-height:var(--mdc-form-field-label-text-line-height);font-size:var(--mdc-form-field-label-text-size);font-weight:var(--mdc-form-field-label-text-weight);letter-spacing:var(--mdc-form-field-label-text-tracking);color:var(--mdc-form-field-label-text-color)}.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}"],encapsulation:2,changeDetection:0})}}return n})();var Ai=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(Ai||{});const Fh="*";function Dh(n,t){return{type:Ai.Trigger,name:n,definitions:t,options:{}}}function Fc(n,t=null){return{type:Ai.Animate,styles:t,timings:n}}function jo(n){return{type:Ai.Style,styles:n,offset:null}}function Dc(n,t,e){return{type:Ai.State,name:n,styles:t,options:e}}function Zl(n,t,e=null){return{type:Ai.Transition,expr:n,animation:t,options:e}}function VR(n=null){return{type:Ai.AnimateChild,options:n}}function QR(n,t,e=null){return{type:Ai.Query,selector:n,animation:t,options:e}}class j1{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class P${constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const o=this.players.length;0==o?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==o&&this._onFinish()}),s.onDestroy(()=>{++i==o&&this._onDestroy()}),s.onStart(()=>{++r==o&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function y1e(n,t){}class qR{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const GR="mdc-dialog--open",R$="mdc-dialog--opening",O$="mdc-dialog--closing";let L$=(()=>{class n extends f${constructor(e,i,r,o,s,a,l,c,d){super(e,i,r,o,s,a,l,d),this._animationMode=c,this._animationStateChanged=new Fn,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?U$(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?U$(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(N$,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(R$,GR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(GR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(GR),this._animationsEnabled?(this._hostElement.style.setProperty(N$,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(O$)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(R$,O$)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(l$),$(Li,8),$(qR),$(FR),$(In),$(D2),$(_s,8),$(Th))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(Zd("id",r._config.id),pi("aria-modal",r._config.ariaModal)("role",r._config.role)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null),Un("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[yi,Nr],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(D(0,"div",0)(1,"div",1),pt(2,y1e,0,0,"ng-template",2),U()())},dependencies:[C2],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0;transform:scale(0.8)}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--closing .mdc-dialog__surface{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{opacity:1}.mdc-dialog--open .mdc-dialog__surface{transform:none}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{width:100%;height:100%}.mat-mdc-dialog-component-host{display:contents}.mat-mdc-dialog-container{--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition:opacity linear var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container .mdc-dialog__surface{transition:transform var(--mat-dialog-transition-duration, 0ms) 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container,.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__surface{transition:none}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-title{padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}}return n})();const N$="--mat-dialog-transition-duration";function U$(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?cm(n.substring(0,n.length-2)):n.endsWith("s")?1e3*cm(n.substring(0,n.length-1)):"0"===n?0:null}var U2=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(U2||{});class WR{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new Ln,this._beforeClosed=new Ln,this._state=U2.OPEN,this.disableClose=e.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(qi(r=>"opened"===r.state),$o(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(qi(r=>"closed"===r.state),$o(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Yl(this.backdropClick(),this.keydownEvents().pipe(qi(r=>27===r.keyCode&&!this.disableClose&&!Ad(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),H$(this,"keydown"===r.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(qi(e=>"closing"===e.state),$o(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=U2.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let e=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",e=""){return this._ref.updateSize(t,e),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=U2.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function H$(n,t,e){return n._closeInteractionType=t,n.close(e)}const h_=new dt("MatMdcDialogData"),C1e=new dt("mat-mdc-dialog-default-options"),V$=new dt("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.block()}});let E1e=0,Ns=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,r,o,s,a,l,c){this._overlay=e,this._defaultOptions=o,this._scrollStrategy=s,this._parentDialog=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ln,this._afterOpenedAtThisLevel=new Ln,this.dialogConfigClass=qR,this.afterAllClosed=RR(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(gd(void 0))),this._dialog=i.get(p$),this._dialogRefConstructor=WR,this._dialogContainerType=L$,this._dialogDataToken=h_}open(e,i){let r;(i={...this._defaultOptions||new qR,...i}).id=i.id||"mat-mdc-dialog-"+E1e++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const o=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:L2,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(s,a,l)=>(r=new this._dialogRefConstructor(s,i,l),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=o.componentRef,r.componentInstance=o.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const s=this.openDialogs.indexOf(r);s>-1&&(this.openDialogs.splice(s,1),this.openDialogs.length||this._getAfterAllClosed().next())}),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static{this.\u0275fac=function(i){return new(i||n)(ve(Ls),ve(is),ve(Jk,8),ve(C1e,8),ve(V$),ve(n,12),ve(F2),ve(_s,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),S1e=0,Jl=(()=>{class n{constructor(e,i,r){this.dialogRef=e,this._elementRef=i,this._dialog=r,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=z$(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){H$(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||n)($(WR,8),$(Nn),$(Ns))}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,r){1&i&&ze("click",function(s){return r._onButtonClick(s)}),2&i&&pi("aria-label",r.ariaLabel||null)("type",r.type)},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],type:"type",dialogResult:[Ct.None,"mat-dialog-close","dialogResult"],_matDialogClose:[Ct.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],standalone:!0,features:[xr]})}}return n})(),Q$=(()=>{class n{constructor(e,i,r){this._dialogRef=e,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=z$(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static{this.\u0275fac=function(i){return new(i||n)($(WR,8),$(Nn),$(Ns))}}static{this.\u0275dir=Wt({type:n,standalone:!0})}}return n})(),H2=(()=>{class n extends Q${constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+S1e++}_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&Zd("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[yi]})}}return n})(),ec=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0})}}return n})(),kc=(()=>{class n extends Q${_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,r){2&i&&Un("mat-mdc-dialog-actions-align-start","start"===r.align)("mat-mdc-dialog-actions-align-center","center"===r.align)("mat-mdc-dialog-actions-align-end","end"===r.align)},inputs:{align:"align"},standalone:!0,features:[yi]})}}return n})();function z$(n,t){let e=n.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?t.find(i=>i.id===e.id):null}let pA=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Ns],imports:[Gye,q1,Q1,fr,fr]})}}return n})();const T1e=["mat-button",""],I1e=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],F1e=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],D1e=new dt("MAT_BUTTON_CONFIG"),k1e=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let B1e=(()=>{class n{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._animationMode=o,this._focusMonitor=Qt(Th),this._rippleLoader=Qt(p1e),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const s=Qt(D1e,{optional:!0}),a=e.nativeElement,l=a.classList;this.disabledInteractive=s?.disabledInteractive??!1,this._rippleLoader?.configureRipple(a,{className:"mat-mdc-button-ripple"});for(const{attribute:c,mdcClasses:d}of k1e)a.hasAttribute(c)&&l.add(...d)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static{this.\u0275fac=function(i){!function X6(){throw new Error("invalid")}()}}static{this.\u0275dir=Wt({type:n,inputs:{color:"color",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],ariaDisabled:[Ct.HasDecoratorInputTransform,"aria-disabled","ariaDisabled",Jn],disabledInteractive:[Ct.HasDecoratorInputTransform,"disabledInteractive","disabledInteractive",Jn]},features:[rs]})}}return n})(),cs=(()=>{class n extends B1e{constructor(e,i,r,o){super(e,i,r,o)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(In),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){2&i&&(pi("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),cl(r.color?"mat-"+r.color:""),Un("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[yi,Nr],attrs:T1e,ngContentSelectors:F1e,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){1&i&&(Yr(I1e),xe(0,"span",0),Vn(1),D(2,"span",1),Vn(3,1),U(),Vn(4,2),xe(5,"span",2)(6,"span",3)),2&i&&Un("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px);display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{font-family:var(--mdc-text-button-label-text-font);font-size:var(--mdc-text-button-label-text-size);letter-spacing:var(--mdc-text-button-label-text-tracking);font-weight:var(--mdc-text-button-label-text-weight);text-transform:var(--mdc-text-button-label-text-transform);height:var(--mdc-text-button-container-height);border-radius:var(--mdc-text-button-container-shape);padding:0 var(--mat-text-button-horizontal-padding, 8px)}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape)}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color)}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color)}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity)}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity)}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity)}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{font-family:var(--mdc-filled-button-label-text-font);font-size:var(--mdc-filled-button-label-text-size);letter-spacing:var(--mdc-filled-button-label-text-tracking);font-weight:var(--mdc-filled-button-label-text-weight);text-transform:var(--mdc-filled-button-label-text-transform);height:var(--mdc-filled-button-container-height);border-radius:var(--mdc-filled-button-container-shape);padding:0 var(--mat-filled-button-horizontal-padding, 16px)}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color)}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color)}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity)}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity)}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity)}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{font-family:var(--mdc-protected-button-label-text-font);font-size:var(--mdc-protected-button-label-text-size);letter-spacing:var(--mdc-protected-button-label-text-tracking);font-weight:var(--mdc-protected-button-label-text-weight);text-transform:var(--mdc-protected-button-label-text-transform);height:var(--mdc-protected-button-container-height);border-radius:var(--mdc-protected-button-container-shape);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow)}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color)}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color)}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color)}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity)}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity)}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity)}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow)}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow)}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow)}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow)}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{font-family:var(--mdc-outlined-button-label-text-font);font-size:var(--mdc-outlined-button-label-text-size);letter-spacing:var(--mdc-outlined-button-label-text-tracking);font-weight:var(--mdc-outlined-button-label-text-weight);text-transform:var(--mdc-outlined-button-label-text-transform);height:var(--mdc-outlined-button-container-height);border-radius:var(--mdc-outlined-button-container-shape);padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width);padding:0 var(--mat-outlined-button-horizontal-padding, 15px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color)}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape)}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color)}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width))}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color)}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity)}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity)}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity)}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button-base{text-decoration:none}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return n})(),$R=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,u_,fr]})}}return n})();function R1e(n,t){if(1&n){const e=Dn();D(0,"button",5),ze("click",function(){return Ot(e),Rt(Le().data.resolveErrorData.onResolveErrorClick())}),ye(1),U()}if(2&n){const e=Le();Q(),sn(" ",e.data.resolveErrorData.buttonText," ")}}let AA=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-error-dialog"]],decls:7,vars:3,consts:[["mat-dialog-title",""],["mat-dialog-content","",3,"innerHTML"],["mat-dialog-actions","","align","end"],["mat-button","","mat-dialog-close","",3,"click",4,"ngIf"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","",3,"click"]],template:function(i,r){1&i&&(D(0,"h1",0),ye(1),U(),xe(2,"div",1),D(3,"div",2),pt(4,R1e,2,1,"button",3),D(5,"button",4),ye(6,"OK"),U()()),2&i&&(Q(),br(r.data.title),Q(),_e("innerHTML",r.data.message,l3),Q(2),_e("ngIf",r.data.resolveErrorData))},dependencies:[eA,cs,Jl,H2,kc,ec],encapsulation:2})}}return n})();function O1e(n){return{title:"Something is wrong with the loaded file(s)",message:[...L1e(n),...N1e(n)].join("")}}function L1e(n){const t=n.filter(e=>e.errors.length>0);return t.length>0?["

Errors

",...t.map(e=>function U1e(n){return`

${n.fileName}: ${jR(' ',n.errors)}

`}(e))]:[]}function N1e(n){const t=n.filter(e=>e.warnings.length>0);return t.length>0?["

Warnings

",...t.map(e=>function H1e(n){return`

${n.fileName}: ${jR(' ',n.warnings)}

`}(e))]:[]}function jR(n,t){return`

${t.map(e=>n+e).join("
")}

`}var V1e=p(7172),G$=p.n(V1e);const X1=JSON.parse('{"rE":"1.129.0","f4":{"X":"1.3"}}'),Q1e=JSON.parse('{"$ref":"#/definitions/ExportCCFile","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"AttributeTypes":{"properties":{"edges":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"},"nodes":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}},"type":"object"},"CodeMapNode":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"children":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"deltas":{"additionalProperties":{"type":"number"},"type":"object"},"edgeAttributes":{"additionalProperties":{"$ref":"#/definitions/EdgeMetricCount"},"type":"object"},"fixedPosition":{"$ref":"#/definitions/FixedPosition"},"id":{"type":"number"},"isExcluded":{"type":"boolean"},"isFlattened":{"type":"boolean"},"link":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"type":{"$ref":"#/definitions/NodeType"}},"required":["name","type"],"type":"object"},"Edge":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"fromNodeName":{"type":"string"},"toNodeName":{"type":"string"},"visible":{"$ref":"#/definitions/EdgeVisibility"}},"required":["attributes","fromNodeName","toNodeName"],"type":"object"},"EdgeMetricCount":{"properties":{"incoming":{"type":"number"},"outgoing":{"type":"number"}},"required":["incoming","outgoing"],"type":"object"},"EdgeVisibility":{"enum":["both","from","none","to"],"type":"string"},"ExportBlacklistItem":{"properties":{"path":{"type":"string"},"type":{"$ref":"#/definitions/ExportBlacklistType"}},"required":["path","type"],"type":"object"},"ExportBlacklistType":{"enum":["exclude","hide"],"type":"string"},"ExportCCFile":{"properties":{"apiVersion":{"type":"string"},"attributeTypes":{"anyOf":[{"$ref":"#/definitions/OldAttributeTypes"},{"$ref":"#/definitions/AttributeTypes"}]},"blacklist":{"items":{"$ref":"#/definitions/ExportBlacklistItem"},"type":"array"},"edges":{"items":{"$ref":"#/definitions/Edge"},"type":"array"},"markedPackages":{"items":{"$ref":"#/definitions/MarkedPackage"},"type":"array"},"nodes":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"projectName":{"type":"string"}},"required":["apiVersion","nodes","projectName"],"type":"object"},"FixedPosition":{"properties":{"height":{"type":"number"},"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number"}},"required":["height","left","top","width"],"type":"object"},"KeyValuePair":{"additionalProperties":{"type":"number"},"type":"object"},"MarkedPackage":{"properties":{"color":{"type":"string"},"path":{"type":"string"}},"required":["color","path"],"type":"object"},"NodeType":{"enum":["File","Folder"],"type":"string"},"OldAttributeTypes":{"properties":{"edges":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"},"nodes":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"}},"type":"object"}}}'),W$=X1.f4.X,uu={fileIsInvalid:"File is empty or invalid.",apiVersionIsInvalid:"API Version is empty or invalid.",majorApiVersionIsOutdated:"API Version Outdated: Update CodeCharta API Version to match cc.json.",minorApiVersionOutdated:"Minor API Version Outdated.",nodesNotUnique:"Node names in combination with node types are not unique.",nodesEmpty:"The nodes array is empty. At least one node is required.",notAllFoldersAreFixed:"If at least one direct sub-folder of root is marked as fixed, all direct sub-folders of root must be fixed.",fixedFoldersOutOfBounds:"Coordinates of fixed folders must be within a range of 0 and 100.",fixedFoldersOverlapped:"Folders may not overlap.",fixedFoldersNotAllowed:"Fixated folders may not be defined in API-Version < 1.2.",fileAlreadyExists:"File already exists.",blacklistError:"Excluding all buildings is not possible."};function z1e(n){const t=[];return n&&function j1e(n){return K1(n.apiVersion).minor>K1(W$).minor}(n)&&t.push(`${uu.minorApiVersionOutdated} Found: ${n.apiVersion}`),t}function q1e(n){const t=[];switch(!0){case!n:t.push(uu.fileIsInvalid);break;case!function W1e(n){const{apiVersion:t}=n,e=void 0!==t,r=/\d+\.\d+/.test(t);return e&&r}(n):t.push(uu.apiVersionIsInvalid);break;case function $1e(n){return K1(n.apiVersion).major>K1(W$).major}(n):t.push(uu.majorApiVersionIsOutdated)}return 0===t.length&&t.push(...function G1e(n){const t=[];if(0===t.length){const i=new(G$())({allErrors:!0}).compile(Q1e);i(n)?0===n.nodes.length?t.push(uu.nodesEmpty):t.push(...function K1e(n){const t=[],e=new Set;return e.add(`${n.name}|${n.type}`),$$(n,t,e,`/${n.name}`),t}(n.nodes[0]),...j$(n)):t.push(...i.errors.map(o=>function X1e(n){return`${n.keyword.charAt(0).toUpperCase()+n.keyword.slice(1)} error: ${n.dataPath.slice(1)} ${n.message}`}(o)))}return t}(n)),t}function K1(n){return{major:Number(n.split(".")[0]),minor:Number(n.split(".")[1])}}function $$(n,t,e,i){if(!No(n))for(const r of n.children){const o=`${i}/${r.name}`;e.has(`${o}|${r.type}`)?t.push(`${uu.nodesNotUnique} Found duplicate of ${r.type} with path: ${o}`):(e.add(`${o}|${r.type}`),$$(r,t,e,o))}}function j$(n,t=n.nodes[0].children){const e=[],i=[],r=[],o=new Set;(function Y1e(n,t,e,i,r,o){for(const s of n)if(void 0===s.fixedPosition)t.push(`${s.name}`);else{const a=K1(e.apiVersion);if(a.major<1||1===a.major&&a.minor<2)return void i.push(`${uu.fixedFoldersNotAllowed} Found: ${e.apiVersion}`);J1e(s)&&r.push(Y1(s));for(const l of n)void 0!==l.fixedPosition&&s!==l&&Z1e(s.fixedPosition,l.fixedPosition)&&!o.has(`${Y1(l)} and ${Y1(s)}`)&&o.add(`${Y1(s)} and ${Y1(l)}`)}})(t,i,n,e,r,o),i.length>0&&i.length!==t.length&&e.push(`${uu.notAllFoldersAreFixed} Found: ${i.join(", ")}`),r.length>0&&e.push(`${uu.fixedFoldersOutOfBounds} Found: ${r.join(", ")}`),o.size>0&&e.push(`${uu.fixedFoldersOverlapped} Found: ${[...o].join(", ")}`);for(const s of t)s.children&&e.push(...j$(n,s.children));return e}function Y1(n){return`${n.name} ${JSON.stringify(n.fixedPosition)}`}function Z1e(n,t){return V2(n.left,n.top,t)||V2(n.left,n.top+n.height,t)||V2(n.left+n.width,n.top,t)||V2(n.left+n.width,n.top+n.height,t)}function V2(n,t,e){return n>=e.left&&n<=e.left+e.width&&t>=e.top&&t<=e.top+e.height}function J1e({fixedPosition:{left:n,top:t,width:e,height:i}}){return n<0||t<0||n+e>100||t+i>100||e<0||i<0}var hu=function(n){return n.SquarifiedTreeMap="Squarified TreeMap",n.StreetMap="StreetMap",n.TreeMapStreet="TreeMapStreet",n}(hu||{}),gA=function(n){return n.Standard="High",n.PixelRatioNoAA="Low",n.PixelRatioFXAA="Medium",n.PixelRatioAA="Best",n}(gA||{}),qa=function(n){return n.FILE="File",n.FOLDER="Folder",n}(qa||{}),Q2=function(n){return n.NAME="Name",n.NUMBER_OF_FILES="Number of Files",n}(Q2||{}),um=function(n){return n.absolute="absolute",n.relative="relative",n}(um||{}),hm=function(n){return n.trueGradient="trueGradient",n.weightedGradient="weightedGradient",n.focusedGradient="focusedGradient",n.absolute="absolute",n}(hm||{}),fu=function(n){return n.none="none",n.from="from",n.to="to",n.both="both",n}(fu||{});function z2(n,t){return t instanceof Map?{dataType:"Map",value:[...t.entries()]}:t instanceof Set?{dataType:"Set",value:[...t]}:t}function X$(n,t){return"Map"===t?.dataType?new Map(t.value):"Set"===t?.dataType?new Set(t.value):t}const XR={decorateMap(n,t,e){for(const{data:i}of yo(n)){i.isFlattened=!1,i.isExcluded=!1;for(const r of e)"flatten"===r.type?i.isFlattened=i.isFlattened||SW(i,r.path):i.isExcluded=i.isExcluded||SW(i,r.path)&&No(i)}n.isExcluded=!1,this.decorateMapWithMetricData(n,t)},decorateMapWithMetricData(n,t){const{nodeMetricData:e,edgeMetricData:i}=t;let r=0;for(const{data:o}of yo(n)){o.id=r,r++,void 0===o.attributes&&(o.attributes={}),No(o)&&(o.attributes[A2]=1);for(const s of e)void 0===o.attributes[s.name]&&(o.attributes[s.name]=0),void 0!==o.deltas&&void 0===o.deltas[s.name]&&(o.deltas[s.name]=0);void 0===o.edgeAttributes&&(o.edgeAttributes={});for(const s of i)void 0===o.edgeAttributes[s.name]&&(o.edgeAttributes[s.name]={incoming:0,outgoing:0});ewe(o)}},decorateMapWithPathAttribute(n){for(const t of yo(n.map))t.data.path=t.parent?`${t.parent.data.path}/${t.data.name}`:`/${t.data.name}`;return n},decorateParentNodesWithAggregatedAttributes(n,t,e){const i=new Map,r=Object.keys(n.attributes),o=Object.keys(n.edgeAttributes);yo(n).eachAfter(function({data:a,parent:l}){if(!a.isExcluded&&l){for(const c of r){const u=`${c}${l.data.path}`;e.nodes[c]===um.relative?(nwe(i,`${c}${a.path}`,u,a,c,t),twe(i,u,a,c,t)):(l.data.attributes[c]+=a.attributes[c],t&&l.data.deltas&&(l.data.deltas[c]=l.data.deltas[c]??0,l.data.deltas[c]+=a.deltas[c]??0))}t&&l.data.fileCount&&(l.data.fileCount.added+=a.fileCount.added,l.data.fileCount.changed+=a.fileCount.changed,l.data.fileCount.removed+=a.fileCount.removed);for(const c of o){const d=a.edgeAttributes[c];if(!d)continue;const u=`${c}${a.path}`,h=`${c}${l.data.path}`;e.edges[c]===um.relative?(Y$(i,`INCOMING${u}`,`INCOMING${h}`,a,c,"incoming"),Y$(i,`OUTGOING${u}`,`OUTGOING${h}`,a,c,"outgoing"),K$(i,`INCOMING${h}`,a,c,"incoming"),K$(i,`OUTGOING${h}`,a,c,"outgoing")):(l.data.edgeAttributes[c].incoming+=d.incoming,l.data.edgeAttributes[c].outgoing+=d.outgoing)}}});for(const s of o)e.edges[s]===um.relative&&(n.edgeAttributes[s].incoming=_A(i.get(`INCOMING${s}${n.path}`)),n.edgeAttributes[s].outgoing=_A(i.get(`OUTGOING${s}${n.path}`)));for(const s of r)e.nodes[s]===um.relative&&(n.attributes[s]=_A(i.get(`MEDIAN${s}${n.path}`)),t&&n.deltas&&(n.deltas[s]=_A(i.get(`DELTA${s}${n.path}`))))}};function ewe(n){if((1!==n.children?.length||!n.children[0]?.fixedPosition)&&1===n.children?.length&&n.children[0].children?.length>0){const[t]=n.children;n.children=t.children,n.name+=`/${t.name}`,n.path+=`/${t.name}`,t.link&&(n.link=t.link)}}function K$(n,t,e,i,r){0!==e.edgeAttributes[i][r]&&YR(n,t,e,e.edgeAttributes[i][r])}function twe(n,t,e,i,r){0!==e.attributes[i]&&YR(n,`MEDIAN${t}`,e,e.attributes[i]),r&&e.deltas&&0!==e.deltas[i]&&YR(n,`DELTA${t}`,e,e.deltas[i])}function nwe(n,t,e,i,r,o){if(No(i))return;const s=n.get(`MEDIAN${t}`);if(void 0!==s&&(i.attributes[r]=_A(s),KR(n,`MEDIAN${e}`,s)),o&&i.deltas){const a=n.get(`DELTA${t}`);void 0!==a&&(i.deltas[r]=_A(a),KR(n,`DELTA${e}`,a))}}function Y$(n,t,e,i,r,o){if(No(i))return;const s=n.get(t);void 0!==s&&(i.edgeAttributes[r][o]=_A(s),KR(n,e,s))}function KR(n,t,e){const i=n.get(t);void 0===i?n.set(t,e):function rwe(n,t){let e=0;for(let i=0;it[e]&&(r++,e++,e!==t.length););if(r>0&&(n.splice(i,0,...t.slice(e-r,e)),e===t.length))return}n.push(...t.slice(e))}(i,e)}function YR(n,t,e,i){const r=n.get(t);void 0===r?n.set(t,[i]):No(e)&&function iwe(n,t){let e=0,i=n.length-1,r=0;if(i<0||n[i]<=t)n.push(t);else if(n[0]>=t)n.unshift(t);else for(;e<=i;)if(r=Math.floor((e+i)/2),n[r]{switch(t.type){case"flatten":return{path:t.path,type:"hide"};case"exclude":return{path:t.path,type:t.type}}})}}function awe(n,t,e){const i=function Wbe(n){const t=n.content;return{fileMeta:{fileName:n.fileName,fileChecksum:t.fileChecksum,projectName:t.projectName,apiVersion:t.apiVersion,exportedFileSize:n.fileSize,repoCreationDate:t.repoCreationDate||""},settings:{fileSettings:{edges:t.edges||[],attributeTypes:$be(t.attributeTypes),attributeDescriptors:jbe(t.attributeDescriptors),blacklist:Xbe(t.blacklist||[]),markedPackages:t.markedPackages||[]}},map:lu(t.nodes[0])}}(e);XR.decorateMapWithPathAttribute(i);const r=i.fileMeta.fileChecksum;let o=i.fileMeta.fileName;const s=new Map(n.map(c=>[c.file.fileMeta.fileName,c.file.fileMeta.fileChecksum])),a=new Map(n.map((c,d)=>[c.file.fileMeta.fileChecksum,d])),l=a.has(r);if(s.has(o)&&(o=function lwe(n,t,e){if(t.get(n)===e)return n;let i=!1,r=1,o=n;for(;!i;){const s=n.indexOf(".");o=s>=0?[n.slice(0,s),"_",r,n.slice(s)].join(""):`${n}_${r}`,(t.get(o)===e||!t.has(o))&&(i=!0),r++}return o}(o,s,r),i.fileMeta.fileName=o),l)return n[a.get(r)].file.fileMeta.fileName=o,t[0]=o,void t.push(o);n.push({file:i,selectedAs:er.None}),t.push(o)}const J$=Kt(xh,n=>n.find(t=>t.selectedAs===er.Reference)?.file),mu={rootName:"root",rootPath:"/root",updateRoot(n){this.rootName=n,this.rootPath=`/${n}`}},ZR="File(s) could not be loaded";let f_=(()=>{class n{static{this.CC_FILE_EXTENSION=".cc.json"}constructor(e,i,r){this.store=e,this.state=i,this.dialog=r,this.referenceFileSubscription=this.store.select(J$).pipe(Dr(o=>{o&&mu.updateRoot(o.map.name)})).subscribe()}ngOnDestroy(){this.referenceFileSubscription.unsubscribe()}loadFiles(e){const i=lu(this.state.getValue().files),r=[],o=[];if(function swe(n,t,e,i){for(const r of e){const o={fileName:r?.fileName,errors:[],warnings:[]};o.errors.push(...q1e(r?.content)),0===o.errors.length&&(o.warnings.push(...z1e(r?.content)),awe(n,t,r)),(o.errors.length>0||o.warnings.length>0)&&i.push(o)}}(i,r,e,o),o.length>0&&this.dialog.open(AA,{data:O1e(o)}),0===r.length)throw new Error(ZR);this.store.dispatch(B1({value:i}));const s=r[0],a=this.state.getValue().files.find(l=>l.file.fileMeta.fileName===s).file.map.name;this.store.dispatch(sR({fileNames:r})),mu.updateRoot(a)}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Ns))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const JR=Ri(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function ej(n,t){const e="object"==typeof t;return new Promise((i,r)=>{const o=new Ss({next:s=>{i(s),o.unsubscribe()},error:r,complete:()=>{e?i(t.defaultValue):r(new JR)}});n.subscribe(o)})}function m_(n){let t=n.length;for(;--t>=0;)n[t]=0}const r4=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),q2=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Awe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),lj=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kh=new Array(576);m_(kh);const ew=new Array(60);m_(ew);const tw=new Array(512);m_(tw);const nw=new Array(256);m_(nw);const o4=new Array(29);m_(o4);const G2=new Array(30);function s4(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}let cj,dj,uj;function a4(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}m_(G2);const hj=n=>n<256?tw[n]:tw[256+(n>>>7)],iw=(n,t)=>{n.pending_buf[n.pending++]=255&t,n.pending_buf[n.pending++]=t>>>8&255},ml=(n,t,e)=>{n.bi_valid>16-e?(n.bi_buf|=t<>16-n.bi_valid,n.bi_valid+=e-16):(n.bi_buf|=t<{ml(n,e[2*t],e[2*t+1])},fj=(n,t)=>{let e=0;do{e|=1&n,n>>>=1,e<<=1}while(--t>0);return e>>>1},mj=(n,t,e)=>{const i=new Array(16);let o,s,r=0;for(o=1;o<=15;o++)r=r+e[o-1]<<1,i[o]=r;for(s=0;s<=t;s++){let a=n[2*s+1];0!==a&&(n[2*s]=fj(i[a]++,a))}},pj=n=>{let t;for(t=0;t<286;t++)n.dyn_ltree[2*t]=0;for(t=0;t<30;t++)n.dyn_dtree[2*t]=0;for(t=0;t<19;t++)n.bl_tree[2*t]=0;n.dyn_ltree[512]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},Aj=n=>{n.bi_valid>8?iw(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},gj=(n,t,e,i)=>{const r=2*t,o=2*e;return n[r]{const i=n.heap[e];let r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s,a,o=0;if(0!==n.sym_next)do{i=255&n.pending_buf[n.sym_buf+o++],i+=(255&n.pending_buf[n.sym_buf+o++])<<8,r=n.pending_buf[n.sym_buf+o++],0===i?pu(n,r,t):(s=nw[r],pu(n,s+256+1,t),a=r4[s],0!==a&&(r-=o4[s],ml(n,r,a)),i--,s=hj(i),pu(n,s,e),a=q2[s],0!==a&&(i-=G2[s],ml(n,i,a)))}while(o{const e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let s,a,c,l=-1;for(n.heap_len=0,n.heap_max=573,s=0;s>1;s>=1;s--)l4(n,e,s);c=o;do{s=n.heap[1],n.heap[1]=n.heap[n.heap_len--],l4(n,e,1),a=n.heap[1],n.heap[--n.heap_max]=s,n.heap[--n.heap_max]=a,e[2*c]=e[2*s]+e[2*a],n.depth[c]=(n.depth[s]>=n.depth[a]?n.depth[s]:n.depth[a])+1,e[2*s+1]=e[2*a+1]=c,n.heap[1]=c++,l4(n,e,1)}while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],((n,t)=>{const e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,d,u,h,f,A,y=0;for(h=0;h<=15;h++)n.bl_count[h]=0;for(e[2*n.heap[n.heap_max]+1]=0,c=n.heap_max+1;c<573;c++)d=n.heap[c],h=e[2*e[2*d+1]+1]+1,h>l&&(h=l,y++),e[2*d+1]=h,!(d>i)&&(n.bl_count[h]++,f=0,d>=a&&(f=s[d-a]),A=e[2*d],n.opt_len+=A*(h+f),o&&(n.static_len+=A*(r[2*d+1]+f)));if(0!==y){do{for(h=l-1;0===n.bl_count[h];)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,y-=2}while(y>0);for(h=l;0!==h;h--)for(d=n.bl_count[h];0!==d;)u=n.heap[--c],!(u>i)&&(e[2*u+1]!==h&&(n.opt_len+=(h-e[2*u+1])*e[2*u],e[2*u+1]=h),d--)}})(n,t),mj(e,l,n.bl_count)},bj=(n,t,e)=>{let i,o,r=-1,s=t[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),t[2*(e+1)+1]=65535,i=0;i<=e;i++)o=s,s=t[2*(i+1)+1],!(++a{let i,o,r=-1,s=t[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),i=0;i<=e;i++)if(o=s,s=t[2*(i+1)+1],!(++a{ml(n,0+(i?1:0),3),Aj(n),iw(n,e),iw(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e};var Bwe={_tr_init:n=>{yj||((()=>{let n,t,e,i,r;const o=new Array(16);for(e=0,i=0;i<28;i++)for(o4[i]=e,n=0;n<1<>=7;i<30;i++)for(G2[i]=r<<7,n=0;n<1<{let r,o,s=0;n.level>0?(2===n.strm.data_type&&(n.strm.data_type=(n=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==n.dyn_ltree[2*e])return 0;if(0!==n.dyn_ltree[18]||0!==n.dyn_ltree[20]||0!==n.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==n.dyn_ltree[2*e])return 1;return 0})(n)),c4(n,n.l_desc),c4(n,n.d_desc),s=(n=>{let t;for(bj(n,n.dyn_ltree,n.l_desc.max_code),bj(n,n.dyn_dtree,n.d_desc.max_code),c4(n,n.bl_desc),t=18;t>=3&&0===n.bl_tree[2*lj[t]+1];t--);return n.opt_len+=3*(t+1)+5+5+4,t})(n),r=n.opt_len+3+7>>>3,o=n.static_len+3+7>>>3,o<=r&&(r=o)):r=o=e+5,e+4<=r&&-1!==t?wj(n,t,e,i):4===n.strategy||o===r?(ml(n,2+(i?1:0),3),_j(n,kh,ew)):(ml(n,4+(i?1:0),3),((n,t,e,i)=>{let r;for(ml(n,t-257,5),ml(n,e-1,5),ml(n,i-4,4),r=0;r(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,0===t?n.dyn_ltree[2*e]++:(n.matches++,t--,n.dyn_ltree[2*(nw[e]+256+1)]++,n.dyn_dtree[2*hj(t)]++),n.sym_next===n.sym_end),_tr_align:n=>{ml(n,2,3),pu(n,256,kh),(n=>{16===n.bi_valid?(iw(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=255&n.bi_buf,n.bi_buf>>=8,n.bi_valid-=8)})(n)}},rw=(n,t,e,i)=>{let r=65535&n,o=n>>>16&65535,s=0;for(;0!==e;){s=e>2e3?2e3:e,e-=s;do{r=r+t[i++]|0,o=o+r|0}while(--s);r%=65521,o%=65521}return r|o<<16};const Rwe=new Uint32Array((()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=1&n?3988292384^n>>>1:n>>>1;t[e]=n}return t})());var Ks=(n,t,e,i)=>{const r=Rwe,o=i+e;n^=-1;for(let s=i;s>>8^r[255&(n^t[s])];return~n},vA={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},yA={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Owe,_tr_stored_block:d4,_tr_flush_block:Lwe,_tr_tally:fm,_tr_align:Nwe}=Bwe,{Z_NO_FLUSH:mm,Z_PARTIAL_FLUSH:Uwe,Z_FULL_FLUSH:Hwe,Z_FINISH:Bc,Z_BLOCK:xj,Z_OK:aa,Z_STREAM_END:Cj,Z_STREAM_ERROR:Au,Z_DATA_ERROR:Vwe,Z_BUF_ERROR:u4,Z_DEFAULT_COMPRESSION:Qwe,Z_FILTERED:zwe,Z_HUFFMAN_ONLY:W2,Z_RLE:qwe,Z_FIXED:Gwe,Z_DEFAULT_STRATEGY:Wwe,Z_UNKNOWN:$we,Z_DEFLATED:$2}=yA,gu=262,CA=(n,t)=>(n.msg=vA[t],t),Mj=n=>2*n-(n>4?9:0),Am=n=>{let t=n.length;for(;--t>=0;)n[t]=0},ixe=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do{e=n.head[--i],n.head[i]=e>=r?e-r:0}while(--t);t=r,i=t;do{e=n.prev[--i],n.prev[i]=e>=r?e-r:0}while(--t)};let gm=(n,t,e)=>(t<{const t=n.state;let e=t.pending;e>n.avail_out&&(e=n.avail_out),0!==e&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,0===t.pending&&(t.pending_out=0))},nc=(n,t)=>{Lwe(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,tc(n.strm)},kr=(n,t)=>{n.pending_buf[n.pending++]=t},sw=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=255&t},_4=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),0===r?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),1===n.state.wrap?n.adler=rw(n.adler,t,r,e):2===n.state.wrap&&(n.adler=Ks(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},Ej=(n,t)=>{let r,o,e=n.max_chain_length,i=n.strstart,s=n.prev_length,a=n.nice_match;const l=n.strstart>n.w_size-gu?n.strstart-(n.w_size-gu):0,c=n.window,d=n.w_mask,u=n.prev,h=n.strstart+258;let f=c[i+s-1],A=c[i+s];n.prev_length>=n.good_match&&(e>>=2),a>n.lookahead&&(a=n.lookahead);do{if(r=t,c[r+s]===A&&c[r+s-1]===f&&c[r]===c[i]&&c[++r]===c[i+1]){i+=2,r++;do{}while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&is){if(n.match_start=t,s=o,o>=a)break;f=c[i+s-1],A=c[i+s]}}}while((t=u[t&d])>l&&0!=--e);return s<=n.lookahead?s:n.lookahead},b_=n=>{const t=n.w_size;let e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-gu)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),ixe(n),i+=t),0===n.strm.avail_in)break;if(e=_4(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=3)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=gm(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=gm(n,n.ins_h,n.window[r+3-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert<3)););}while(n.lookahead{let i,r,o,e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,s=0,a=n.strm.avail_in;do{if(i=65535,o=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>o&&(i=o),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,tc(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(_4(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(0===s);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_watero&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,o+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),o>n.strm.avail_in&&(o=n.strm.avail_in),o&&(_4(n.strm,n.window,n.strstart,o),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.high_water>3,o=n.pending_buf_size-o>65535?65535:n.pending_buf_size-o,e=o>n.w_size?n.w_size:o,r=n.strstart-n.block_start,(r>=e||(r||t===Bc)&&t!==mm&&0===n.strm.avail_in&&r<=o)&&(i=r>o?o:r,s=t===Bc&&0===n.strm.avail_in&&i===r?1:0,d4(n,n.block_start,i,s),n.block_start+=i,tc(n.strm)),s?3:1)},b4=(n,t)=>{let e,i;for(;;){if(n.lookahead=3&&(n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),0!==e&&n.strstart-e<=n.w_size-gu&&(n.match_length=Ej(n,e)),n.match_length>=3)if(i=fm(n,n.strstart-n.match_start,n.match_length-3),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=3){n.match_length--;do{n.strstart++,n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart}while(0!=--n.match_length);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=gm(n,n.ins_h,n.window[n.strstart+1]);else i=fm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(nc(n,!1),0===n.strm.avail_out))return 1}return n.insert=n.strstart<2?n.strstart:2,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2},v_=(n,t)=>{let e,i,r;for(;;){if(n.lookahead=3&&(n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=2,0!==e&&n.prev_length4096)&&(n.match_length=2)),n.prev_length>=3&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-3,i=fm(n,n.strstart-1-n.prev_match,n.prev_length-3),n.lookahead-=n.prev_length-1,n.prev_length-=2;do{++n.strstart<=r&&(n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart)}while(0!=--n.prev_length);if(n.match_available=0,n.match_length=2,n.strstart++,i&&(nc(n,!1),0===n.strm.avail_out))return 1}else if(n.match_available){if(i=fm(n,0,n.window[n.strstart-1]),i&&nc(n,!1),n.strstart++,n.lookahead--,0===n.strm.avail_out)return 1}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=fm(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<2?n.strstart:2,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2};function _u(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}const aw=[new _u(0,0,0,0,Sj),new _u(4,4,8,4,b4),new _u(4,5,16,8,b4),new _u(4,6,32,32,b4),new _u(4,4,16,16,v_),new _u(8,16,32,32,v_),new _u(8,16,128,128,v_),new _u(8,32,128,256,v_),new _u(32,128,258,1024,v_),new _u(32,258,258,4096,v_)];function axe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Am(this.dyn_ltree),Am(this.dyn_dtree),Am(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Am(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Am(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const lw=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||42!==t.status&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&113!==t.status&&666!==t.status?1:0},Tj=n=>{if(lw(n))return CA(n,Au);n.total_in=n.total_out=0,n.data_type=$we;const t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?42:113,n.adler=2===t.wrap?0:1,t.last_flush=-2,Owe(t),aa},Ij=n=>{const t=Tj(n);return t===aa&&(n=>{n.window_size=2*n.w_size,Am(n.head),n.max_lazy_match=aw[n.level].max_lazy,n.good_match=aw[n.level].good_length,n.nice_match=aw[n.level].nice_length,n.max_chain_length=aw[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0})(n.state),t},Fj=(n,t,e,i,r,o)=>{if(!n)return Au;let s=1;if(t===Qwe&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>9||e!==$2||i<8||i>15||t<0||t>9||o<0||o>Gwe||8===i&&1!==s)return CA(n,Au);8===i&&(i=9);const a=new axe;return n.state=a,a.strm=n,a.status=42,a.wrap=s,a.gzhead=null,a.w_bits=i,a.w_size=1<Fj(n,t,$2,15,8,Wwe),deflateInit2:Fj,deflateReset:Ij,deflateResetKeep:Tj,deflateSetHeader:(n,t)=>lw(n)||2!==n.state.wrap?Au:(n.state.gzhead=t,aa),deflate:(n,t)=>{if(lw(n)||t>xj||t<0)return n?CA(n,Au):Au;const e=n.state;if(!n.output||0!==n.avail_in&&!n.input||666===e.status&&t!==Bc)return CA(n,0===n.avail_out?u4:Au);const i=e.last_flush;if(e.last_flush=t,0!==e.pending){if(tc(n),0===n.avail_out)return e.last_flush=-1,aa}else if(0===n.avail_in&&Mj(t)<=Mj(i)&&t!==Bc)return CA(n,u4);if(666===e.status&&0!==n.avail_in)return CA(n,u4);if(42===e.status&&0===e.wrap&&(e.status=113),42===e.status){let r=$2+(e.w_bits-8<<4)<<8,o=-1;if(o=e.strategy>=W2||e.level<2?0:e.level<6?1:6===e.level?2:3,r|=o<<6,0!==e.strstart&&(r|=32),r+=31-r%31,sw(e,r),0!==e.strstart&&(sw(e,n.adler>>>16),sw(e,65535&n.adler)),n.adler=1,e.status=113,tc(n),0!==e.pending)return e.last_flush=-1,aa}if(57===e.status)if(n.adler=0,kr(e,31),kr(e,139),kr(e,8),e.gzhead)kr(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),kr(e,255&e.gzhead.time),kr(e,e.gzhead.time>>8&255),kr(e,e.gzhead.time>>16&255),kr(e,e.gzhead.time>>24&255),kr(e,9===e.level?2:e.strategy>=W2||e.level<2?4:0),kr(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(kr(e,255&e.gzhead.extra.length),kr(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=Ks(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(kr(e,0),kr(e,0),kr(e,0),kr(e,0),kr(e,0),kr(e,9===e.level?2:e.strategy>=W2||e.level<2?4:0),kr(e,3),e.status=113,tc(n),0!==e.pending)return e.last_flush=-1,aa;if(69===e.status){if(e.gzhead.extra){let r=e.pending,o=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+o>e.pending_buf_size;){let a=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+a),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=a,tc(n),0!==e.pending)return e.last_flush=-1,aa;r=0,o-=a}let s=new Uint8Array(e.gzhead.extra);e.pending_buf.set(s.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending+=o,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),tc(n),0!==e.pending)return e.last_flush=-1,aa;r=0}o=e.gzindexr&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),tc(n),0!==e.pending)return e.last_flush=-1,aa;r=0}o=e.gzindexr&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r))}e.status=103}if(103===e.status){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(tc(n),0!==e.pending))return e.last_flush=-1,aa;kr(e,255&n.adler),kr(e,n.adler>>8&255),n.adler=0}if(e.status=113,tc(n),0!==e.pending)return e.last_flush=-1,aa}if(0!==n.avail_in||0!==e.lookahead||t!==mm&&666!==e.status){let r=0===e.level?Sj(e,t):e.strategy===W2?((n,t)=>{let e;for(;;){if(0===n.lookahead&&(b_(n),0===n.lookahead)){if(t===mm)return 1;break}if(n.match_length=0,e=fm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(nc(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2})(e,t):e.strategy===qwe?((n,t)=>{let e,i,r,o;const s=n.window;for(;;){if(n.lookahead<=258){if(b_(n),n.lookahead<=258&&t===mm)return 1;if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=3&&n.strstart>0&&(r=n.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){o=n.strstart+258;do{}while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=3?(e=fm(n,1,n.match_length-3),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=fm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(nc(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2})(e,t):aw[e.level].func(e,t);if((3===r||4===r)&&(e.status=666),1===r||3===r)return 0===n.avail_out&&(e.last_flush=-1),aa;if(2===r&&(t===Uwe?Nwe(e):t!==xj&&(d4(e,0,0,!1),t===Hwe&&(Am(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),tc(n),0===n.avail_out))return e.last_flush=-1,aa}return t!==Bc?aa:e.wrap<=0?Cj:(2===e.wrap?(kr(e,255&n.adler),kr(e,n.adler>>8&255),kr(e,n.adler>>16&255),kr(e,n.adler>>24&255),kr(e,255&n.total_in),kr(e,n.total_in>>8&255),kr(e,n.total_in>>16&255),kr(e,n.total_in>>24&255)):(sw(e,n.adler>>>16),sw(e,65535&n.adler)),tc(n),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?aa:Cj)},deflateEnd:n=>{if(lw(n))return Au;const t=n.state.status;return n.state=null,113===t?CA(n,Vwe):aa},deflateSetDictionary:(n,t)=>{let e=t.length;if(lw(n))return Au;const i=n.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return Au;if(1===r&&(n.adler=rw(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){0===r&&(Am(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}const o=n.avail_in,s=n.next_in,a=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,b_(i);i.lookahead>=3;){let l=i.strstart,c=i.lookahead-2;do{i.ins_h=gm(i,i.ins_h,i.window[l+3-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++}while(--c);i.strstart=l,i.lookahead=2,b_(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,n.next_in=s,n.input=a,n.avail_in=o,i.wrap=r,aa},deflateInfo:"pako deflate (from Nodeca project)"};const wxe=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var j2={assign:function(n){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const e=t.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(const i in e)wxe(e,i)&&(n[i]=e[i])}}return n},flattenChunks:n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;dw[254]=dw[254]=1;var uw={string2buf:n=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(n);let t,e,i,r,o,s=n.length,a=0;for(r=0;r>>6,t[o++]=128|63&e):e<65536?(t[o++]=224|e>>>12,t[o++]=128|e>>>6&63,t[o++]=128|63&e):(t[o++]=240|e>>>18,t[o++]=128|e>>>12&63,t[o++]=128|e>>>6&63,t[o++]=128|63&e);return t},buf2string:(n,t)=>{const e=t||n.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(n.subarray(0,t));let i,r;const o=new Array(2*e);for(r=0,i=0;i4)o[r++]=65533,i+=a-1;else{for(s&=2===a?31:3===a?15:7;a>1&&i1?o[r++]=65533:s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|1023&s)}}return((n,t)=>{if(t<65534&&n.subarray&&Dj)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{(t=t||n.length)>n.length&&(t=n.length);let e=t-1;for(;e>=0&&128==(192&n[e]);)e--;return e<0||0===e?t:e+dw[n[e]]>t?e:t}},kj=function Ixe(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Bj=Object.prototype.toString,{Z_NO_FLUSH:Fxe,Z_SYNC_FLUSH:Dxe,Z_FULL_FLUSH:kxe,Z_FINISH:Bxe,Z_OK:X2,Z_STREAM_END:Pxe,Z_DEFAULT_COMPRESSION:Rxe,Z_DEFAULT_STRATEGY:Oxe,Z_DEFLATED:Lxe}=yA;function hw(n){this.options=j2.assign({level:Rxe,method:Lxe,chunkSize:16384,windowBits:15,memLevel:8,strategy:Oxe},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new kj,this.strm.avail_out=0;let e=cw.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==X2)throw new Error(vA[e]);if(t.header&&cw.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(i="string"==typeof t.dictionary?uw.string2buf(t.dictionary):"[object ArrayBuffer]"===Bj.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,e=cw.deflateSetDictionary(this.strm,i),e!==X2)throw new Error(vA[e]);this._dict_set=!0}}function v4(n,t){const e=new hw(t);if(e.push(n,!0),e.err)throw e.msg||vA[e.err];return e.result}hw.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Bxe:Fxe,e.input="string"==typeof n?uw.string2buf(n):"[object ArrayBuffer]"===Bj.call(n)?new Uint8Array(n):n,e.next_in=0,e.avail_in=e.input.length;;)if(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(o===Dxe||o===kxe)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(r=cw.deflate(e,o),r===Pxe)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=cw.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===X2;if(0!==e.avail_out){if(o>0&&e.next_out>0)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else if(0===e.avail_in)break}else this.onData(e.output)}return!0},hw.prototype.onData=function(n){this.chunks.push(n)},hw.prototype.onEnd=function(n){n===X2&&(this.result=j2.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var Gxe={Deflate:hw,deflate:v4,deflateRaw:function Nxe(n,t){return(t=t||{}).raw=!0,v4(n,t)},gzip:function Uxe(n,t){return(t=t||{}).gzip=!0,v4(n,t)},constants:yA};const K2=16209;var $xe=function(t,e){let i,r,o,s,a,l,c,d,u,h,f,A,y,_,b,M,C,E,L,N,H,j,R,B;const ee=t.state;i=t.next_in,R=t.input,r=i+(t.avail_in-5),o=t.next_out,B=t.output,s=o-(e-t.avail_out),a=o+(t.avail_out-257),l=ee.dmax,c=ee.wsize,d=ee.whave,u=ee.wnext,h=ee.window,f=ee.hold,A=ee.bits,y=ee.lencode,_=ee.distcode,b=(1<>>24,f>>>=E,A-=E,E=C>>>16&255,0===E)B[o++]=65535&C;else{if(!(16&E)){if(64&E){if(32&E){ee.mode=16191;break e}t.msg="invalid literal/length code",ee.mode=K2;break e}C=y[(65535&C)+(f&(1<>>=E,A-=E),A<15&&(f+=R[i++]<>>24,f>>>=E,A-=E,E=C>>>16&255,16&E){if(N=65535&C,E&=15,Al){t.msg="invalid distance too far back",ee.mode=K2;break e}if(f>>>=E,A-=E,E=o-s,N>E){if(E=N-E,E>d&&ee.sane){t.msg="invalid distance too far back",ee.mode=K2;break e}if(H=0,j=h,0===u){if(H+=c-E,E2;)B[o++]=j[H++],B[o++]=j[H++],B[o++]=j[H++],L-=3;L&&(B[o++]=j[H++],L>1&&(B[o++]=j[H++]))}else{H=o-N;do{B[o++]=B[H++],B[o++]=B[H++],B[o++]=B[H++],L-=3}while(L>2);L&&(B[o++]=B[H++],L>1&&(B[o++]=B[H++]))}break}if(64&E){t.msg="invalid distance code",ee.mode=K2;break e}C=_[(65535&C)+(f&(1<>3,i-=L,A-=L<<3,f&=(1<{const l=a.bits;let C,E,L,N,H,R,c=0,d=0,u=0,h=0,f=0,A=0,y=0,_=0,b=0,M=0,j=null;const B=new Uint16Array(16),ee=new Uint16Array(16);let Ee,ne,Ie,we=null;for(c=0;c<=15;c++)B[c]=0;for(d=0;d=1&&0===B[h];h--);if(f>h&&(f=h),0===h)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(u=1;u0&&(0===n||1!==h))return-1;for(ee[1]=0,c=1;c<15;c++)ee[c+1]=ee[c]+B[c];for(d=0;d852||2===n&&b>592)return 1;for(;;){Ee=c-y,s[d]+1=R?(ne=we[s[d]-R],Ie=j[s[d]-R]):(ne=96,Ie=0),C=1<>y)+E]=Ee<<24|ne<<16|Ie}while(0!==E);for(C=1<>=1;if(0!==C?(M&=C-1,M+=C):M=0,d++,0==--B[c]){if(c===h)break;c=t[e+s[d]]}if(c>f&&(M&N)!==L){for(0===y&&(y=f),H+=u,A=c-y,_=1<852||2===n&&b>592)return 1;L=M&N,r[L]=f<<24|A<<16|H-o}}return 0!==M&&(r[H+M]=c-y<<24|64<<16),a.bits=f,0};const{Z_FINISH:Hj,Z_BLOCK:Jxe,Z_TREES:Y2,Z_OK:MA,Z_STREAM_END:eCe,Z_NEED_DICT:tCe,Z_STREAM_ERROR:Pc,Z_DATA_ERROR:Vj,Z_MEM_ERROR:Qj,Z_BUF_ERROR:nCe,Z_DEFLATED:zj}=yA,Z2=16180,J2=16190,Bh=16191,eS=16199,tS=16200,Fo=16209,fX=n=>(n>>>24&255)+(n>>>8&65280)+((65280&n)<<8)+((255&n)<<24);function sCe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const EA=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.mode16211?1:0},mX=n=>{if(EA(n))return Pc;const t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=1&t.wrap),t.mode=Z2,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,MA},pX=n=>{if(EA(n))return Pc;const t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,mX(n)},AX=(n,t)=>{let e;if(EA(n))return Pc;const i=n.state;return t<0?(e=0,t=-t):(e=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Pc:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,pX(n))},gX=(n,t)=>{if(!n)return Pc;const e=new sCe;n.state=e,e.strm=n,e.window=null,e.mode=Z2;const i=AX(n,t);return i!==MA&&(n.state=null),i};let M4,E4,_X=!0;const lCe=n=>{if(_X){M4=new Int32Array(512),E4=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(fw(1,n.lens,0,288,M4,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;fw(2,n.lens,0,32,E4,0,n.work,{bits:5}),_X=!1}n.lencode=M4,n.lenbits=9,n.distcode=E4,n.distbits=5},bX=(n,t,e,i)=>{let r;const o=n.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(e-o.wsize,e),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(t.subarray(e-i,e-i+r),o.wnext),(i-=r)?(o.window.set(t.subarray(e-i,e),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whavegX(n,15),inflateInit2:gX,inflate:(n,t)=>{let e,i,r,o,s,a,l,c,d,u,h,f,A,y,b,M,C,E,L,N,H,j,_=0;const R=new Uint8Array(4);let B,ee;const we=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(EA(n)||!n.output||!n.input&&0!==n.avail_in)return Pc;e=n.state,e.mode===Bh&&(e.mode=16192),s=n.next_out,r=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=e.hold,d=e.bits,u=a,h=l,j=MA;e:for(;;)switch(e.mode){case Z2:if(0===e.wrap){e.mode=16192;break}for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=Ks(e.check,R,2,0),c=0,d=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&c)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Fo;break}if((15&c)!==zj){n.msg="unknown compression method",e.mode=Fo;break}if(c>>>=4,d-=4,H=8+(15&c),0===e.wbits&&(e.wbits=H),H>15||H>e.wbits){n.msg="invalid window size",e.mode=Fo;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(R[0]=255&c,R[1]=c>>>8&255,e.check=Ks(e.check,R,2,0)),c=0,d=0,e.mode=16182;case 16182:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>8&255,R[2]=c>>>16&255,R[3]=c>>>24&255,e.check=Ks(e.check,R,4,0)),c=0,d=0,e.mode=16183;case 16183:for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>8),512&e.flags&&4&e.wrap&&(R[0]=255&c,R[1]=c>>>8&255,e.check=Ks(e.check,R,2,0)),c=0,d=0,e.mode=16184;case 16184:if(1024&e.flags){for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=Ks(e.check,R,2,0)),c=0,d=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(f=e.length,f>a&&(f=a),f&&(e.head&&(H=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(o,o+f),H)),512&e.flags&&4&e.wrap&&(e.check=Ks(e.check,i,f,o)),a-=f,o+=f,e.length-=f),e.length))break e;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===a)break e;f=0;do{H=i[o+f++],e.head&&H&&e.length<65536&&(e.head.name+=String.fromCharCode(H))}while(H&&f>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=Bh;break;case 16189:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>=7&d,d-=7&d,e.mode=16206;break}for(;d<3;){if(0===a)break e;a--,c+=i[o++]<>>=1,d-=1,3&c){case 0:e.mode=16193;break;case 1:if(lCe(e),e.mode=eS,t===Y2){c>>>=2,d-=2;break e}break;case 2:e.mode=16196;break;case 3:n.msg="invalid block type",e.mode=Fo}c>>>=2,d-=2;break;case 16193:for(c>>>=7&d,d-=7&d;d<32;){if(0===a)break e;a--,c+=i[o++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Fo;break}if(e.length=65535&c,c=0,d=0,e.mode=16194,t===Y2)break e;case 16194:e.mode=16195;case 16195:if(f=e.length,f){if(f>a&&(f=a),f>l&&(f=l),0===f)break e;r.set(i.subarray(o,o+f),s),a-=f,o+=f,l-=f,s+=f,e.length-=f;break}e.mode=Bh;break;case 16196:for(;d<14;){if(0===a)break e;a--,c+=i[o++]<>>=5,d-=5,e.ndist=1+(31&c),c>>>=5,d-=5,e.ncode=4+(15&c),c>>>=4,d-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Fo;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,d-=3}for(;e.have<19;)e.lens[we[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,B={bits:e.lenbits},j=fw(0,e.lens,0,19,e.lencode,0,e.work,B),e.lenbits=B.bits,j){n.msg="invalid code lengths set",e.mode=Fo;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=b,d-=b,e.lens[e.have++]=C;else{if(16===C){for(ee=b+2;d>>=b,d-=b,0===e.have){n.msg="invalid bit length repeat",e.mode=Fo;break}H=e.lens[e.have-1],f=3+(3&c),c>>>=2,d-=2}else if(17===C){for(ee=b+3;d>>=b,d-=b,H=0,f=3+(7&c),c>>>=3,d-=3}else{for(ee=b+7;d>>=b,d-=b,H=0,f=11+(127&c),c>>>=7,d-=7}if(e.have+f>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Fo;break}for(;f--;)e.lens[e.have++]=H}}if(e.mode===Fo)break;if(0===e.lens[256]){n.msg="invalid code -- missing end-of-block",e.mode=Fo;break}if(e.lenbits=9,B={bits:e.lenbits},j=fw(1,e.lens,0,e.nlen,e.lencode,0,e.work,B),e.lenbits=B.bits,j){n.msg="invalid literal/lengths set",e.mode=Fo;break}if(e.distbits=6,e.distcode=e.distdyn,B={bits:e.distbits},j=fw(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,B),e.distbits=B.bits,j){n.msg="invalid distances set",e.mode=Fo;break}if(e.mode=eS,t===Y2)break e;case eS:e.mode=tS;case tS:if(a>=6&&l>=258){n.next_out=s,n.avail_out=l,n.next_in=o,n.avail_in=a,e.hold=c,e.bits=d,$xe(n,h),s=n.next_out,r=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=e.hold,d=e.bits,e.mode===Bh&&(e.back=-1);break}for(e.back=0;_=e.lencode[c&(1<>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>E)],b=_>>>24,M=_>>>16&255,C=65535&_,!(E+b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=E,d-=E,e.back+=E}if(c>>>=b,d-=b,e.back+=b,e.length=C,0===M){e.mode=16205;break}if(32&M){e.back=-1,e.mode=Bh;break}if(64&M){n.msg="invalid literal/length code",e.mode=Fo;break}e.extra=15&M,e.mode=16201;case 16201:if(e.extra){for(ee=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;_=e.distcode[c&(1<>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>E)],b=_>>>24,M=_>>>16&255,C=65535&_,!(E+b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=E,d-=E,e.back+=E}if(c>>>=b,d-=b,e.back+=b,64&M){n.msg="invalid distance code",e.mode=Fo;break}e.offset=C,e.extra=15&M,e.mode=16203;case 16203:if(e.extra){for(ee=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Fo;break}e.mode=16204;case 16204:if(0===l)break e;if(f=h-l,e.offset>f){if(f=e.offset-f,f>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Fo;break}f>e.wnext?(f-=e.wnext,A=e.wsize-f):A=e.wnext-f,f>e.length&&(f=e.length),y=e.window}else y=r,A=s-e.offset,f=e.length;f>l&&(f=l),l-=f,e.length-=f;do{r[s++]=y[A++]}while(--f);0===e.length&&(e.mode=tS);break;case 16205:if(0===l)break e;r[s++]=e.length,l--,e.mode=tS;break;case 16206:if(e.wrap){for(;d<32;){if(0===a)break e;a--,c|=i[o++]<{if(EA(n))return Pc;let t=n.state;return t.window&&(t.window=null),n.state=null,MA},inflateGetHeader:(n,t)=>{if(EA(n))return Pc;const e=n.state;return 2&e.wrap?(e.head=t,t.done=!1,MA):Pc},inflateSetDictionary:(n,t)=>{const e=t.length;let i,r,o;return EA(n)||(i=n.state,0!==i.wrap&&i.mode!==J2)?Pc:i.mode===J2&&(r=1,r=rw(r,t,e,0),r!==i.check)?Vj:(o=bX(n,t,e,e),o?(i.mode=16210,Qj):(i.havedict=1,MA))},inflateInfo:"pako inflate (from Nodeca project)"},CCe=function xCe(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const vX=Object.prototype.toString,{Z_NO_FLUSH:MCe,Z_FINISH:ECe,Z_OK:mw,Z_STREAM_END:S4,Z_NEED_DICT:T4,Z_STREAM_ERROR:SCe,Z_DATA_ERROR:yX,Z_MEM_ERROR:TCe}=yA;function pw(n){this.options=j2.assign({chunkSize:65536,windowBits:15,to:""},n||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new kj,this.strm.avail_out=0;let e=Ph.inflateInit2(this.strm,t.windowBits);if(e!==mw)throw new Error(vA[e]);if(this.header=new CCe,Ph.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=uw.string2buf(t.dictionary):"[object ArrayBuffer]"===vX.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Ph.inflateSetDictionary(this.strm,t.dictionary),e!==mw)))throw new Error(vA[e])}function I4(n,t){const e=new pw(t);if(e.push(n),e.err)throw e.msg||vA[e.err];return e.result}pw.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(s=t===~~t?t:!0===t?ECe:MCe,e.input="[object ArrayBuffer]"===vX.call(n)?new Uint8Array(n):n,e.next_in=0,e.avail_in=e.input.length;;){for(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),o=Ph.inflate(e,s),o===T4&&r&&(o=Ph.inflateSetDictionary(e,r),o===mw?o=Ph.inflate(e,s):o===yX&&(o=T4));e.avail_in>0&&o===S4&&e.state.wrap>0&&0!==n[e.next_in];)Ph.inflateReset(e),o=Ph.inflate(e,s);switch(o){case SCe:case yX:case T4:case TCe:return this.onEnd(o),this.ended=!0,!1}if(a=e.avail_out,e.next_out&&(0===e.avail_out||o===S4))if("string"===this.options.to){let l=uw.utf8border(e.output,e.next_out),c=e.next_out-l,d=uw.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(d)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(o!==mw||0!==a){if(o===S4)return o=Ph.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},pw.prototype.onData=function(n){this.chunks.push(n)},pw.prototype.onEnd=function(n){n===mw&&(this.result="string"===this.options.to?this.chunks.join(""):j2.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var RCe={Inflate:pw,inflate:I4,inflateRaw:function ICe(n,t){return(t=t||{}).raw=!0,I4(n,t)},ungzip:I4,constants:yA};const{ungzip:zCe}=RCe;var F4=zCe;class wX{constructor(t){this.httpClient=t}getParameterByName(t){const e=t.replaceAll(/[[\]]/g,"\\$&"),r=new RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`).exec(window.location.href);return r?r[2]?decodeURIComponent(r[2].replaceAll("+"," ")):"":null}getFileDataFromQueryParam(){var t=this;return k(function*(){const i=new URLSearchParams(window.location.search).getAll("file");if(0===i.length)throw new Error("Filename is missing");return Promise.all(i.map(function(){var r=k(function*(o){return t.getFileDataFromFile(o)});return function(o){return r.apply(this,arguments)}}()))})()}getFileDataFromFile(t){var e=this;return k(function*(){if(!t)throw new Error("Filename is missing");return t.endsWith(".gz")?e.getUnzippedFile(t):e.getFile(t)})()}getUnzippedFile(t){var e=this;return k(function*(){const i=yield ej(e.httpClient.get(t,{responseType:"arraybuffer",observe:"response"}));if(i.status>=200&&i.status<300){const s=rR(F4(i.body,{to:"string"}));return{fileName:e.getFileName(t,s.projectName),fileSize:13,content:s}}throw new Error(`Could not load file "${t}"`)})()}getFile(t){var e=this;return k(function*(){const i=yield ej(e.httpClient.get(t,{observe:"response"}));if(i.status>=200&&i.status<300){const o=rR(i.body);return{fileName:t=e.getFileName(t,o.projectName),fileSize:15,content:o}}throw new Error(`Could not load file "${t}"`)})()}getFileName(t,e){return e?.trim()||t.split("/").pop()}}const nS={fileName:"sample1.cc.json",fileSize:3072,content:fbe},iS={fileName:"sample2.cc.json",fileSize:2048,content:mbe};let D4=(()=>{class n{constructor(e,i,r,o,s){this.store=e,this.state=i,this.dialog=r,this.loadFileService=o,this.httpClient=s,this.urlUtils=new wX(this.httpClient)}loadFilesOrSampleFiles(){var e=this;return k(function*(){yield e.checkFileQueryParameterPresent()?e.loadFilesFromQueryParams():e.loadFilesFromIndexedDB()})()}checkFileQueryParameterPresent(){return!!this.urlUtils.getParameterByName("file")}loadFilesFromQueryParams(){var e=this;return k(function*(){try{const i=yield e.urlUtils.getFileDataFromQueryParam(),r=yield ZP();if(!r)return e.loadFileService.loadFiles(i),void e.setRenderStateFromUrl();const o=r.files,s=o.map(c=>Z$(c.file)),a=i.map(c=>c.content.fileChecksum),l=s.map(c=>c.content.fileChecksum);md(a)===md(l)?e.applySettingsAndFilesFromSavedState(o,r,s):e.applySettingsFromSavedState(r,i),e.setRenderStateFromUrl()}catch(i){yield e.handleErrorLoadFilesFromQueryParams(i)}finally{e.setMetricsFromUrl()}})()}applySettingsAndFilesFromSavedState(e,i,r){const o=[];i.appSettings.resetCameraIfNewFileIsLoaded||this.store.dispatch({type:"StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"});const s=this.applyAppSettings(i.appSettings);o.push(...s),this.loadFileService.loadFiles(r),this.store.dispatch(B1({value:e}));const a=this.applyFileSettings(i.fileSettings);o.push(...a);const l=this.applyDynamicSettings(i.dynamicSettings);o.push(...l),o.length>0&&this.showErrorDialogForMissingProperties(o)}applySettingsFromSavedState(e,i){this.applyAllSettings(e),this.loadFileService.loadFiles(i)}showErrorDialogForMissingProperties(e){const r=this.buildMissingPropertiesMessage(e);this.showErrorDialog("The previous state could not be fully restored after loading the page. The following properties were not restored.",r)}handleErrorLoadFilesFromQueryParams(e){var i=this;return k(function*(){if(e.message!==ZR){const r="File(s) could not be loaded from the given file URL parameter. Loaded sample files instead.",o=i.createTitleUrlErrorDialog(e);i.showErrorDialog(r,o)}yield i.loadSampleFiles()})()}loadFilesFromIndexedDB(){var e=this;return k(function*(){try{const i=yield ZP();if(!i)return void(yield e.loadSampleFiles());const r=i.files,o=r.map(s=>Z$(s.file));e.applySettingsAndFilesFromSavedState(r,i,o)}catch(i){yield e.handleErrorLoadFilesFromIndexedDB(i)}})()}handleErrorLoadFilesFromIndexedDB(e){var i=this;return k(function*(){e.message!==ZR&&i.showErrorDialog("Previously loaded files and settings could not be restored. Loaded sample files instead.",e.message),yield i.loadSampleFiles()})()}applyAllSettings(e){var i=this;return k(function*(){const r=e.fileSettings,o=e.dynamicSettings,s=e.appSettings,a=[];if(r){const l=i.applyFileSettings(r);a.push(...l)}if(o){const l=i.applyDynamicSettings(o);a.push(...l)}if(s){const l=i.applyAppSettings(s);a.push(...l)}a.length>0&&i.showErrorDialogForMissingProperties(a)})()}applyFileSettings(e){const i=this.state.getValue().fileSettings,r=[];for(const[o,s]of Object.entries(i))o in e?md(s)!==md(e[o])&&this.mapFileSettingToAction(o,e[o]):r.push(o);return r}applyDynamicSettings(e){const i=this.state.getValue().dynamicSettings,r=[];for(const[o,s]of Object.entries(i))o in e?md(s)!==md(e[o])&&this.mapDynamicSettingToAction(o,e[o]):r.push(o);return r}applyAppSettings(e){const i=this.state.getValue().appSettings,r=[];for(const[o,s]of Object.entries(i))o in e?md(s)!==md(e[o])&&this.mapAppSettingToAction(o,e[o]):r.push(o);return r}mapFileSettingToAction(e,i){switch(e){case"attributeTypes":this.store.dispatch(OP({value:i}));break;case"attributeDescriptors":this.store.dispatch(RP({value:i}));break;case"blacklist":this.store.dispatch(NP({value:i}));break;case"edges":this.store.dispatch(VP({value:i}));break;case"markedPackages":this.store.dispatch(r2({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapDynamicSettingToAction(e,i){switch(e){case"areaMetric":this.store.dispatch(vh({value:i}));break;case"heightMetric":this.store.dispatch(wh({value:i}));break;case"edgeMetric":this.store.dispatch(yh({value:i}));break;case"colorMetric":this.store.dispatch(pd({value:i}));break;case"colorMode":this.store.dispatch(J0({value:i}));break;case"sortingOption":this.store.dispatch(e2({value:i}));break;case"colorRange":this.store.dispatch(ru({value:i}));break;case"distributionMetric":this.store.dispatch(T1({value:i}));break;case"focusedNodePath":break;case"searchPattern":this.store.dispatch(am({value:i}));break;case"margin":this.store.dispatch(e_({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapAppSettingToAction(e,i){switch(e){case"amountOfTopLabels":case"amountOfEdgePreviews":this.store.dispatch(sm({value:i}));break;case"edgeHeight":this.store.dispatch(Y0({value:i}));break;case"scaling":this.store.dispatch(Z0({value:i}));break;case"hideFlatBuildings":this.store.dispatch(_1({value:i}));break;case"invertHeight":this.store.dispatch(v1({value:i}));break;case"invertArea":this.store.dispatch(b1({value:i}));break;case"isWhiteBackground":this.store.dispatch(y1({value:i}));break;case"mapColors":this.store.dispatch(bh({value:i}));break;case"isPresentationMode":this.store.dispatch(KE({value:i}));break;case"showOnlyBuildingsWithEdges":this.store.dispatch(S1({value:i}));break;case"isEdgeMetricVisible":this.store.dispatch(kP({value:i}));break;case"resetCameraIfNewFileIsLoaded":this.store.dispatch(JE({value:i}));break;case"isLoadingMap":this.store.dispatch(r_({value:i}));break;case"isLoadingFile":this.store.dispatch(cA({value:i}));break;case"sortingOrderAscending":case"isSearchPanelPinned":break;case"showMetricLabelNameValue":this.store.dispatch(M1({value:i}));break;case"showMetricLabelNodeName":this.store.dispatch(E1({value:i}));break;case"layoutAlgorithm":this.store.dispatch(w1({value:i}));break;case"maxTreeMapFiles":this.store.dispatch(x1({value:i}));break;case"sharpnessMode":this.store.dispatch(C1({value:i}));break;case"experimentalFeaturesEnabled":this.store.dispatch(jE({value:i}));break;case"screenshotToClipboardEnabled":this.store.dispatch($E({value:i}));break;case"colorLabels":this.store.dispatch(A1({value:i}));break;case"isColorMetricLinkedToHeightMetric":this.store.dispatch(BP({value:i}));break;case"enableFloorLabels":this.store.dispatch(g1({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}buildMissingPropertiesMessage(e){return`${jR(' ',e)}`}loadSampleFiles(){var e=this;return k(function*(){try{const i=yield ZP();i&&e.applyAllSettings(i),e.loadFileService.loadFiles([nS,iS])}catch{e.loadFileService.loadFiles([nS,iS])}})()}showErrorDialog(e,i){this.dialog.open(AA,{data:{title:e,message:i}})}createTitleUrlErrorDialog(e){let i="Error";return e.message?i+=` (${e.message})`:e.statusText&&e.status&&(i+=` (${e.status}: ${e.statusText})`),i}setMetricsFromUrl(){const e=this.urlUtils.getParameterByName(cu.areaMetric),i=this.urlUtils.getParameterByName(cu.heightMetric),r=this.urlUtils.getParameterByName(cu.colorMetric),o=this.urlUtils.getParameterByName(cu.edgeMetric),s=this.state.getValue(),a=Xs(s).nodeMetricData,l=Xs(s).edgeMetricData;if(!a)return;const c=new Set(a.map(u=>u.name)),d=l.map(u=>u.name);e&&c.has(e)&&this.store.dispatch(vh({value:e})),i&&c.has(i)&&this.store.dispatch(wh({value:i})),r&&c.has(r)&&this.store.dispatch(pd({value:r})),o&&d.includes(o)&&this.store.dispatch(yh({value:o}))}setRenderStateFromUrl(){const e=this.urlUtils.getParameterByName("mode"),i=function Abe(n){return n.map(t=>t.file)}(this.state.getValue().files);"Delta"===e&&i.length>=2&&this.store.dispatch(g2({referenceFile:i[0],comparisonFile:i[1]}))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Ns),ve(f_),ve(Zy))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),ZCe=(()=>{class n{constructor(){this.version=X1.rE}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-logo"]],decls:5,vars:1,consts:[["id","logo"],["href","https://github.com/MaibornWolff/codecharta","target","_blank","rel","noopener noreferrer"],["src","codeCharta/assets/codecharta_logo.svg","alt","CodeCharta","rel","noopener noreferrer"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"a",1),xe(2,"img",2),U(),D(3,"h2"),ye(4),U()()),2&i&&(Q(4),sn("Version ",r.version,""))},styles:["#logo[_ngcontent-%COMP%]{display:flex;flex-direction:column;position:absolute;left:2em;bottom:1em;z-index:1}#logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{object-fit:contain;max-width:100%;height:auto}#logo[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:#5a585a;font-weight:700;font-size:10px;text-align:center;margin:0;z-index:-1}"]})}}return n})();const so=n=>n.appSettings,k4=Kt(so,n=>n.isLoadingFile),xX=Kt(so,n=>n.sharpnessMode),MX=1,tMe=2,Rh=3,oS=0,SMe=1,TMe=2,vm=0,IMe=1,FMe=2,DMe=3,kMe=4,BMe=5,PMe=6,RMe=7,ym=301,TA=302,Aw=306,x_=1e3,_d=1001,la=1003,xs=1006,Nh=1008,Uh=1009,DX=1010,kX=1011,_w=1012,L4=1013,wm=1014,ic=1015,C_=1016,N4=1017,U4=1018,M_=1020,BX=35902,PX=1021,RX=1022,$a=1023,OX=1024,LX=1025,E_=1026,S_=1027,H4=1028,dS=1029,NX=1030,V4=1031,Q4=1033,uS=33776,hS=33777,fS=33778,mS=33779,z4=35840,q4=35841,G4=35842,W4=35843,$4=36196,j4=37492,X4=37496,K4=37808,Y4=37809,Z4=37810,J4=37811,eO=37812,tO=37813,nO=37814,iO=37815,rO=37816,oO=37817,sO=37818,aO=37819,lO=37820,cO=37821,pS=36492,dO=36494,uO=36495,UX=36283,hO=36284,fO=36285,mO=36286,Oc="srgb",Cm="srgb-linear",_O="display-p3",_S="display-p3-linear",bS="linear",wo="srgb",vS="rec709",yS="p3",F_=7680,zX="300 es",Hh=2e3;class Vh{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const i=this._listeners;void 0===i[t]&&(i[t]=[]),-1===i[t].indexOf(e)&&i[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const i=this._listeners;return void 0!==i[t]&&-1!==i[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const r=this._listeners[t];if(void 0!==r){const o=r.indexOf(e);-1!==o&&r.splice(o,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const i=this._listeners[t.type];if(void 0!==i){t.target=this;const r=i.slice(0);for(let o=0,s=r.length;o>8&255]+va[n>>16&255]+va[n>>24&255]+"-"+va[255&t]+va[t>>8&255]+"-"+va[t>>16&15|64]+va[t>>24&255]+"-"+va[63&e|128]+va[e>>8&255]+"-"+va[e>>16&255]+va[e>>24&255]+va[255&i]+va[i>>8&255]+va[i>>16&255]+va[i>>24&255]).toLowerCase()}function Xo(n,t,e){return Math.max(t,Math.min(e,n))}function bw(n,t,e){return(1-e)*n+e*t}function ja(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Ni(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return Math.round(4294967295*n);case Uint16Array:return Math.round(65535*n);case Uint8Array:return Math.round(255*n);case Int32Array:return Math.round(2147483647*n);case Int16Array:return Math.round(32767*n);case Int8Array:return Math.round(127*n);default:throw new Error("Invalid component type.")}}const hEe_DEG2RAD=FA;class nt{constructor(t=0,e=0){nt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,i=this.y,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6],this.y=r[1]*e+r[4]*i+r[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(Xo(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y;return e*e+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const i=Math.cos(e),r=Math.sin(e),o=this.x-t.x,s=this.y-t.y;return this.x=o*i-s*r+t.x,this.y=o*r+s*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class xi{constructor(t,e,i,r,o,s,a,l,c){xi.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,i,r,o,s,a,l,c)}set(t,e,i,r,o,s,a,l,c){const d=this.elements;return d[0]=t,d[1]=r,d[2]=a,d[3]=e,d[4]=o,d[5]=l,d[6]=i,d[7]=s,d[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(t,e,i){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,r=e.elements,o=this.elements,s=i[0],a=i[3],l=i[6],c=i[1],d=i[4],u=i[7],h=i[2],f=i[5],A=i[8],y=r[0],_=r[3],b=r[6],M=r[1],C=r[4],E=r[7],L=r[2],N=r[5],H=r[8];return o[0]=s*y+a*M+l*L,o[3]=s*_+a*C+l*N,o[6]=s*b+a*E+l*H,o[1]=c*y+d*M+u*L,o[4]=c*_+d*C+u*N,o[7]=c*b+d*E+u*H,o[2]=h*y+f*M+A*L,o[5]=h*_+f*C+A*N,o[8]=h*b+f*E+A*H,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8];return e*s*d-e*a*c-i*o*d+i*a*l+r*o*c-r*s*l}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8],u=d*s-a*c,h=a*l-d*o,f=c*o-s*l,A=e*u+i*h+r*f;if(0===A)return this.set(0,0,0,0,0,0,0,0,0);const y=1/A;return t[0]=u*y,t[1]=(r*c-d*i)*y,t[2]=(a*i-r*s)*y,t[3]=h*y,t[4]=(d*e-r*l)*y,t[5]=(r*o-a*e)*y,t[6]=f*y,t[7]=(i*l-c*e)*y,t[8]=(s*e-i*o)*y,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,i,r,o,s,a){const l=Math.cos(o),c=Math.sin(o);return this.set(i*l,i*c,-i*(l*s+c*a)+s+t,-r*c,r*l,-r*(-c*s+l*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(vO.makeScale(t,e)),this}rotate(t){return this.premultiply(vO.makeRotation(-t)),this}translate(t,e){return this.premultiply(vO.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,i=t.elements;for(let r=0;r<9;r++)if(e[r]!==i[r])return!1;return!0}fromArray(t,e=0){for(let i=0;i<9;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const vO=new xi;function GX(n){for(let t=n.length-1;t>=0;--t)if(n[t]>=65535)return!0;return!1}function vw(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function mEe(){const n=vw("canvas");return n.style.display="block",n}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const WX={};function B_(n){n in WX||(WX[n]=!0,console.warn(n))}const $X=(new xi).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),jX=(new xi).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),yw={[Cm]:{transfer:bS,primaries:vS,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n,fromReference:n=>n},[Oc]:{transfer:wo,primaries:vS,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[_S]:{transfer:bS,primaries:yS,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.applyMatrix3(jX),fromReference:n=>n.applyMatrix3($X)},[_O]:{transfer:wo,primaries:yS,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.convertSRGBToLinear().applyMatrix3(jX),fromReference:n=>n.applyMatrix3($X).convertLinearToSRGB()}},AEe=new Set([Cm,_S]),Br={enabled:!0,_workingColorSpace:Cm,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!AEe.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,t,e){return!1!==this.enabled&&t!==e&&t&&e?(0,yw[e].fromReference)((0,yw[t].toReference)(n)):n},fromWorkingColorSpace:function(n,t){return this.convert(n,this._workingColorSpace,t)},toWorkingColorSpace:function(n,t){return this.convert(n,t,this._workingColorSpace)},getPrimaries:function(n){return yw[n].primaries},getTransfer:function(n){return""===n?bS:yw[n].transfer},getLuminanceCoefficients:function(n,t=this._workingColorSpace){return n.fromArray(yw[t].luminanceCoefficients)}};function P_(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function yO(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}let R_;class gEe{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===R_&&(R_=vw("canvas")),R_.width=t.width,R_.height=t.height;const i=R_.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=R_}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=vw("canvas");e.width=t.width,e.height=t.height;const i=e.getContext("2d");i.drawImage(t,0,0,t.width,t.height);const r=i.getImageData(0,0,t.width,t.height),o=r.data;for(let s=0;s{class n extends Vh{constructor(e=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=_d,o=_d,s=xs,a=Nh,l=$a,c=Uh,d=n.DEFAULT_ANISOTROPY,u=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:bEe++}),this.uuid=rc(),this.name="",this.source=new O_(e),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=o,this.magFilter=s,this.minFilter=a,this.anisotropy=d,this.format=l,this.internalFormat=null,this.type=c,this.offset=new nt(0,0),this.repeat=new nt(1,1),this.center=new nt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new xi,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=u,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){const i=void 0===e||"string"==typeof e;if(!i&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];const r={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),i||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(300!==this.mapping)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case x_:e.x=e.x-Math.floor(e.x);break;case _d:e.x=e.x<0?0:1;break;case 1002:e.x=1===Math.abs(Math.floor(e.x)%2)?Math.ceil(e.x)-e.x:e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case x_:e.y=e.y-Math.floor(e.y);break;case _d:e.y=e.y<0?0:1;break;case 1002:e.y=1===Math.abs(Math.floor(e.y)%2)?Math.ceil(e.y)-e.y:e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){!0===e&&this.pmremVersion++}}return n.DEFAULT_IMAGE=null,n.DEFAULT_MAPPING=300,n.DEFAULT_ANISOTROPY=1,n})();class Wr{constructor(t=0,e=0,i=0,r=1){Wr.prototype.isVector4=!0,this.x=t,this.y=e,this.z=i,this.w=r}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,i,r){return this.x=t,this.y=e,this.z=i,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,o=this.w,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*r+s[12]*o,this.y=s[1]*e+s[5]*i+s[9]*r+s[13]*o,this.z=s[2]*e+s[6]*i+s[10]*r+s[14]*o,this.w=s[3]*e+s[7]*i+s[11]*r+s[15]*o,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,i,r,o;const l=t.elements,c=l[0],d=l[4],u=l[8],h=l[1],f=l[5],A=l[9],y=l[2],_=l[6],b=l[10];if(Math.abs(d-h)<.01&&Math.abs(u-y)<.01&&Math.abs(A-_)<.01){if(Math.abs(d+h)<.1&&Math.abs(u+y)<.1&&Math.abs(A+_)<.1&&Math.abs(c+f+b-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const C=(c+1)/2,E=(f+1)/2,L=(b+1)/2,N=(d+h)/4,H=(u+y)/4,j=(A+_)/4;return C>E&&C>L?C<.01?(i=0,r=.707106781,o=.707106781):(i=Math.sqrt(C),r=N/i,o=H/i):E>L?E<.01?(i=.707106781,r=0,o=.707106781):(r=Math.sqrt(E),i=N/r,o=j/r):L<.01?(i=.707106781,r=.707106781,o=0):(o=Math.sqrt(L),i=H/o,r=j/o),this.set(i,r,o,e),this}let M=Math.sqrt((_-A)*(_-A)+(u-y)*(u-y)+(h-d)*(h-d));return Math.abs(M)<.001&&(M=1),this.x=(_-A)/M,this.y=(u-y)/M,this.z=(h-d)/M,this.w=Math.acos((c+f+b-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this.w=t.w+(e.w-t.w)*i,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class vEe extends Vh{constructor(t=1,e=1,i={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Wr(0,0,t,e),this.scissorTest=!1,this.viewport=new Wr(0,0,t,e);const r={width:t,height:e,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xs,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},i);const o=new Xa(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);o.flipY=!1,o.generateMipmaps=i.generateMipmaps,o.internalFormat=i.internalFormat,this.textures=[];const s=i.count;for(let a=0;a=0?1:-1,C=1-b*b;if(C>Number.EPSILON){const L=Math.sqrt(C),N=Math.atan2(L,b*M);_=Math.sin(_*N)/L,a=Math.sin(a*N)/L}const E=a*M;if(l=l*_+h*E,c=c*_+f*E,d=d*_+A*E,u=u*_+y*E,_===1-a){const L=1/Math.sqrt(l*l+c*c+d*d+u*u);l*=L,c*=L,d*=L,u*=L}}t[e]=l,t[e+1]=c,t[e+2]=d,t[e+3]=u}static multiplyQuaternionsFlat(t,e,i,r,o,s){const a=i[r],l=i[r+1],c=i[r+2],d=i[r+3],u=o[s],h=o[s+1],f=o[s+2],A=o[s+3];return t[e]=a*A+d*u+l*f-c*h,t[e+1]=l*A+d*h+c*u-a*f,t[e+2]=c*A+d*f+a*h-l*u,t[e+3]=d*A-a*u-l*h-c*f,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,i,r){return this._x=t,this._y=e,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const i=t._x,r=t._y,o=t._z,s=t._order,a=Math.cos,l=Math.sin,c=a(i/2),d=a(r/2),u=a(o/2),h=l(i/2),f=l(r/2),A=l(o/2);switch(s){case"XYZ":this._x=h*d*u+c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u-h*f*A;break;case"YXZ":this._x=h*d*u+c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u+h*f*A;break;case"ZXY":this._x=h*d*u-c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u-h*f*A;break;case"ZYX":this._x=h*d*u-c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u+h*f*A;break;case"YZX":this._x=h*d*u+c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u-h*f*A;break;case"XZY":this._x=h*d*u-c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u+h*f*A;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!0===e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const i=e/2,r=Math.sin(i);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,i=e[0],r=e[4],o=e[8],s=e[1],a=e[5],l=e[9],c=e[2],d=e[6],u=e[10],h=i+a+u;if(h>0){const f=.5/Math.sqrt(h+1);this._w=.25/f,this._x=(d-l)*f,this._y=(o-c)*f,this._z=(s-r)*f}else if(i>a&&i>u){const f=2*Math.sqrt(1+i-a-u);this._w=(d-l)/f,this._x=.25*f,this._y=(r+s)/f,this._z=(o+c)/f}else if(a>u){const f=2*Math.sqrt(1+a-i-u);this._w=(o-c)/f,this._x=(r+s)/f,this._y=.25*f,this._z=(l+d)/f}else{const f=2*Math.sqrt(1+u-i-a);this._w=(s-r)/f,this._x=(o+c)/f,this._y=(l+d)/f,this._z=.25*f}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let i=t.dot(e)+1;return iMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=i),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Xo(this.dot(t),-1,1)))}rotateTowards(t,e){const i=this.angleTo(t);if(0===i)return this;const r=Math.min(1,e/i);return this.slerp(t,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const i=t._x,r=t._y,o=t._z,s=t._w,a=e._x,l=e._y,c=e._z,d=e._w;return this._x=i*d+s*a+r*c-o*l,this._y=r*d+s*l+o*a-i*c,this._z=o*d+s*c+i*l-r*a,this._w=s*d-i*a-r*l-o*c,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const i=this._x,r=this._y,o=this._z,s=this._w;let a=s*t._w+i*t._x+r*t._y+o*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=i,this._y=r,this._z=o,this;const l=1-a*a;if(l<=Number.EPSILON){const f=1-e;return this._w=f*s+e*this._w,this._x=f*i+e*this._x,this._y=f*r+e*this._y,this._z=f*o+e*this._z,this.normalize(),this}const c=Math.sqrt(l),d=Math.atan2(c,a),u=Math.sin((1-e)*d)/c,h=Math.sin(e*d)/c;return this._w=s*u+this._w*h,this._x=i*u+this._x*h,this._y=r*u+this._y*h,this._z=o*u+this._z*h,this._onChangeCallback(),this}slerpQuaternions(t,e,i){return this.copy(t).slerp(e,i)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),o=Math.sqrt(i);return this.set(r*Math.sin(t),r*Math.cos(t),o*Math.sin(e),o*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class se{constructor(t=0,e=0,i=0){se.prototype.isVector3=!0,this.x=t,this.y=e,this.z=i}set(t,e,i){return void 0===i&&(i=this.z),this.x=t,this.y=e,this.z=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(KX.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(KX.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,i=this.y,r=this.z,o=t.elements;return this.x=o[0]*e+o[3]*i+o[6]*r,this.y=o[1]*e+o[4]*i+o[7]*r,this.z=o[2]*e+o[5]*i+o[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,o=t.elements,s=1/(o[3]*e+o[7]*i+o[11]*r+o[15]);return this.x=(o[0]*e+o[4]*i+o[8]*r+o[12])*s,this.y=(o[1]*e+o[5]*i+o[9]*r+o[13])*s,this.z=(o[2]*e+o[6]*i+o[10]*r+o[14])*s,this}applyQuaternion(t){const e=this.x,i=this.y,r=this.z,o=t.x,s=t.y,a=t.z,l=t.w,c=2*(s*r-a*i),d=2*(a*e-o*r),u=2*(o*i-s*e);return this.x=e+l*c+s*u-a*d,this.y=i+l*d+a*c-o*u,this.z=r+l*u+o*d-s*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,i=this.y,r=this.z,o=t.elements;return this.x=o[0]*e+o[4]*i+o[8]*r,this.y=o[1]*e+o[5]*i+o[9]*r,this.z=o[2]*e+o[6]*i+o[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const i=t.x,r=t.y,o=t.z,s=e.x,a=e.y,l=e.z;return this.x=r*l-o*a,this.y=o*s-i*l,this.z=i*a-r*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const i=t.dot(this)/e;return this.copy(t).multiplyScalar(i)}projectOnPlane(t){return CO.copy(this).projectOnVector(t),this.sub(CO)}reflect(t){return this.sub(CO.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(Xo(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y,r=this.z-t.z;return e*e+i*i+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,i){const r=Math.sin(e)*t;return this.x=r*Math.sin(i),this.y=Math.cos(e)*t,this.z=r*Math.cos(i),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=2*Math.random()-1,i=Math.sqrt(1-e*e);return this.x=i*Math.cos(t),this.y=e,this.z=i*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const CO=new se,KX=new Ka;class Us{constructor(t=new se(1/0,1/0,1/0),e=new se(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,i=t.length;e=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,bd),bd.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ww),MS.subVectors(this.max,ww),L_.subVectors(t.a,ww),N_.subVectors(t.b,ww),U_.subVectors(t.c,ww),Mm.subVectors(N_,L_),Em.subVectors(U_,N_),DA.subVectors(L_,U_);let e=[0,-Mm.z,Mm.y,0,-Em.z,Em.y,0,-DA.z,DA.y,Mm.z,0,-Mm.x,Em.z,0,-Em.x,DA.z,0,-DA.x,-Mm.y,Mm.x,0,-Em.y,Em.x,0,-DA.y,DA.x,0];return!(!MO(e,L_,N_,U_,MS)||(e=[1,0,0,0,1,0,0,0,1],!MO(e,L_,N_,U_,MS)))&&(ES.crossVectors(Mm,Em),e=[ES.x,ES.y,ES.z],MO(e,L_,N_,U_,MS))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,bd).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(bd).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Qh[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Qh[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Qh[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Qh[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Qh[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Qh[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Qh[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Qh[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Qh)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Qh=[new se,new se,new se,new se,new se,new se,new se,new se],bd=new se,CS=new Us,L_=new se,N_=new se,U_=new se,Mm=new se,Em=new se,DA=new se,ww=new se,MS=new se,ES=new se,kA=new se;function MO(n,t,e,i,r){for(let o=0,s=n.length-3;o<=s;o+=3){kA.fromArray(n,o);const a=r.x*Math.abs(kA.x)+r.y*Math.abs(kA.y)+r.z*Math.abs(kA.z),l=t.dot(kA),c=e.dot(kA),d=i.dot(kA);if(Math.max(-Math.max(l,c,d),Math.min(l,c,d))>a)return!1}return!0}const yEe=new Us,xw=new se,EO=new se;class Ys{constructor(t=new se,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const i=this.center;void 0!==e?i.copy(e):yEe.setFromPoints(t).getCenter(i);let r=0;for(let o=0,s=t.length;othis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;xw.subVectors(t,this.center);const e=xw.lengthSq();if(e>this.radius*this.radius){const i=Math.sqrt(e),r=.5*(i-this.radius);this.center.addScaledVector(xw,r/i),this.radius+=r}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(EO.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(xw.copy(t.center).add(EO)),this.expandByPoint(xw.copy(t.center).sub(EO))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const zh=new se,SO=new se,SS=new se,Sm=new se,TO=new se,TS=new se,IO=new se;class BA{constructor(t=new se,e=new se(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,zh)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=zh.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(zh.copy(this.origin).addScaledVector(this.direction,e),zh.distanceToSquared(t))}distanceSqToSegment(t,e,i,r){SO.copy(t).add(e).multiplyScalar(.5),SS.copy(e).sub(t).normalize(),Sm.copy(this.origin).sub(SO);const o=.5*t.distanceTo(e),s=-this.direction.dot(SS),a=Sm.dot(this.direction),l=-Sm.dot(SS),c=Sm.lengthSq(),d=Math.abs(1-s*s);let u,h,f,A;if(d>0)if(u=s*l-a,h=s*a-l,A=o*d,u>=0)if(h>=-A)if(h<=A){const y=1/d;u*=y,h*=y,f=u*(u+s*h+2*a)+h*(s*u+h+2*l)+c}else h=o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;else h=-o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;else h<=-A?(u=Math.max(0,-(-s*o+a)),h=u>0?-o:Math.min(Math.max(-o,-l),o),f=-u*u+h*(h+2*l)+c):h<=A?(u=0,h=Math.min(Math.max(-o,-l),o),f=h*(h+2*l)+c):(u=Math.max(0,-(s*o+a)),h=u>0?o:Math.min(Math.max(-o,-l),o),f=-u*u+h*(h+2*l)+c);else h=s>0?-o:o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,u),r&&r.copy(SO).addScaledVector(SS,h),f}intersectSphere(t,e){zh.subVectors(t.center,this.origin);const i=zh.dot(this.direction),r=zh.dot(zh)-i*i,o=t.radius*t.radius;if(r>o)return null;const s=Math.sqrt(o-r),a=i-s,l=i+s;return l<0?null:this.at(a<0?l:a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null}intersectPlane(t,e){const i=this.distanceToPlane(t);return null===i?null:this.at(i,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let i,r,o,s,a,l;const c=1/this.direction.x,d=1/this.direction.y,u=1/this.direction.z,h=this.origin;return c>=0?(i=(t.min.x-h.x)*c,r=(t.max.x-h.x)*c):(i=(t.max.x-h.x)*c,r=(t.min.x-h.x)*c),d>=0?(o=(t.min.y-h.y)*d,s=(t.max.y-h.y)*d):(o=(t.max.y-h.y)*d,s=(t.min.y-h.y)*d),i>s||o>r||((o>i||isNaN(i))&&(i=o),(s=0?(a=(t.min.z-h.z)*u,l=(t.max.z-h.z)*u):(a=(t.max.z-h.z)*u,l=(t.min.z-h.z)*u),i>l||a>r)||((a>i||i!=i)&&(i=a),(l=0?i:r,e)}intersectsBox(t){return null!==this.intersectBox(t,zh)}intersectTriangle(t,e,i,r,o){TO.subVectors(e,t),TS.subVectors(i,t),IO.crossVectors(TO,TS);let a,s=this.direction.dot(IO);if(s>0){if(r)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}Sm.subVectors(this.origin,t);const l=a*this.direction.dot(TS.crossVectors(Sm,TS));if(l<0)return null;const c=a*this.direction.dot(TO.cross(Sm));if(c<0||l+c>s)return null;const d=-a*Sm.dot(IO);return d<0?null:this.at(d/s,o)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class hi{constructor(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_){hi.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_)}set(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_){const b=this.elements;return b[0]=t,b[4]=e,b[8]=i,b[12]=r,b[1]=o,b[5]=s,b[9]=a,b[13]=l,b[2]=c,b[6]=d,b[10]=u,b[14]=h,b[3]=f,b[7]=A,b[11]=y,b[15]=_,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new hi).fromArray(this.elements)}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(t){const e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,i=t.elements,r=1/H_.setFromMatrixColumn(t,0).length(),o=1/H_.setFromMatrixColumn(t,1).length(),s=1/H_.setFromMatrixColumn(t,2).length();return e[0]=i[0]*r,e[1]=i[1]*r,e[2]=i[2]*r,e[3]=0,e[4]=i[4]*o,e[5]=i[5]*o,e[6]=i[6]*o,e[7]=0,e[8]=i[8]*s,e[9]=i[9]*s,e[10]=i[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,i=t.x,r=t.y,o=t.z,s=Math.cos(i),a=Math.sin(i),l=Math.cos(r),c=Math.sin(r),d=Math.cos(o),u=Math.sin(o);if("XYZ"===t.order){const h=s*d,f=s*u,A=a*d,y=a*u;e[0]=l*d,e[4]=-l*u,e[8]=c,e[1]=f+A*c,e[5]=h-y*c,e[9]=-a*l,e[2]=y-h*c,e[6]=A+f*c,e[10]=s*l}else if("YXZ"===t.order){const h=l*d,f=l*u,A=c*d,y=c*u;e[0]=h+y*a,e[4]=A*a-f,e[8]=s*c,e[1]=s*u,e[5]=s*d,e[9]=-a,e[2]=f*a-A,e[6]=y+h*a,e[10]=s*l}else if("ZXY"===t.order){const h=l*d,f=l*u,A=c*d,y=c*u;e[0]=h-y*a,e[4]=-s*u,e[8]=A+f*a,e[1]=f+A*a,e[5]=s*d,e[9]=y-h*a,e[2]=-s*c,e[6]=a,e[10]=s*l}else if("ZYX"===t.order){const h=s*d,f=s*u,A=a*d,y=a*u;e[0]=l*d,e[4]=A*c-f,e[8]=h*c+y,e[1]=l*u,e[5]=y*c+h,e[9]=f*c-A,e[2]=-c,e[6]=a*l,e[10]=s*l}else if("YZX"===t.order){const h=s*l,f=s*c,A=a*l,y=a*c;e[0]=l*d,e[4]=y-h*u,e[8]=A*u+f,e[1]=u,e[5]=s*d,e[9]=-a*d,e[2]=-c*d,e[6]=f*u+A,e[10]=h-y*u}else if("XZY"===t.order){const h=s*l,f=s*c,A=a*l,y=a*c;e[0]=l*d,e[4]=-u,e[8]=c*d,e[1]=h*u+y,e[5]=s*d,e[9]=f*u-A,e[2]=A*u-f,e[6]=a*d,e[10]=y*u+h}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(wEe,t,xEe)}lookAt(t,e,i){const r=this.elements;return oc.subVectors(t,e),0===oc.lengthSq()&&(oc.z=1),oc.normalize(),Tm.crossVectors(i,oc),0===Tm.lengthSq()&&(1===Math.abs(i.z)?oc.x+=1e-4:oc.z+=1e-4,oc.normalize(),Tm.crossVectors(i,oc)),Tm.normalize(),IS.crossVectors(oc,Tm),r[0]=Tm.x,r[4]=IS.x,r[8]=oc.x,r[1]=Tm.y,r[5]=IS.y,r[9]=oc.y,r[2]=Tm.z,r[6]=IS.z,r[10]=oc.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,r=e.elements,o=this.elements,s=i[0],a=i[4],l=i[8],c=i[12],d=i[1],u=i[5],h=i[9],f=i[13],A=i[2],y=i[6],_=i[10],b=i[14],M=i[3],C=i[7],E=i[11],L=i[15],N=r[0],H=r[4],j=r[8],R=r[12],B=r[1],ee=r[5],we=r[9],Ee=r[13],ne=r[2],Ie=r[6],te=r[10],Ae=r[14],le=r[3],Pe=r[7],it=r[11],_t=r[15];return o[0]=s*N+a*B+l*ne+c*le,o[4]=s*H+a*ee+l*Ie+c*Pe,o[8]=s*j+a*we+l*te+c*it,o[12]=s*R+a*Ee+l*Ae+c*_t,o[1]=d*N+u*B+h*ne+f*le,o[5]=d*H+u*ee+h*Ie+f*Pe,o[9]=d*j+u*we+h*te+f*it,o[13]=d*R+u*Ee+h*Ae+f*_t,o[2]=A*N+y*B+_*ne+b*le,o[6]=A*H+y*ee+_*Ie+b*Pe,o[10]=A*j+y*we+_*te+b*it,o[14]=A*R+y*Ee+_*Ae+b*_t,o[3]=M*N+C*B+E*ne+L*le,o[7]=M*H+C*ee+E*Ie+L*Pe,o[11]=M*j+C*we+E*te+L*it,o[15]=M*R+C*Ee+E*Ae+L*_t,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[4],r=t[8],o=t[12],s=t[1],a=t[5],l=t[9],c=t[13],d=t[2],u=t[6],h=t[10],f=t[14];return t[3]*(+o*l*u-r*c*u-o*a*h+i*c*h+r*a*f-i*l*f)+t[7]*(+e*l*f-e*c*h+o*s*h-r*s*f+r*c*d-o*l*d)+t[11]*(+e*c*u-e*a*f-o*s*u+i*s*f+o*a*d-i*c*d)+t[15]*(-r*a*d-e*l*u+e*a*h+r*s*u-i*s*h+i*l*d)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,i){const r=this.elements;return t.isVector3?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=i),this}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8],u=t[9],h=t[10],f=t[11],A=t[12],y=t[13],_=t[14],b=t[15],M=u*_*c-y*h*c+y*l*f-a*_*f-u*l*b+a*h*b,C=A*h*c-d*_*c-A*l*f+s*_*f+d*l*b-s*h*b,E=d*y*c-A*u*c+A*a*f-s*y*f-d*a*b+s*u*b,L=A*u*l-d*y*l-A*a*h+s*y*h+d*a*_-s*u*_,N=e*M+i*C+r*E+o*L;if(0===N)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const H=1/N;return t[0]=M*H,t[1]=(y*h*o-u*_*o-y*r*f+i*_*f+u*r*b-i*h*b)*H,t[2]=(a*_*o-y*l*o+y*r*c-i*_*c-a*r*b+i*l*b)*H,t[3]=(u*l*o-a*h*o-u*r*c+i*h*c+a*r*f-i*l*f)*H,t[4]=C*H,t[5]=(d*_*o-A*h*o+A*r*f-e*_*f-d*r*b+e*h*b)*H,t[6]=(A*l*o-s*_*o-A*r*c+e*_*c+s*r*b-e*l*b)*H,t[7]=(s*h*o-d*l*o+d*r*c-e*h*c-s*r*f+e*l*f)*H,t[8]=E*H,t[9]=(A*u*o-d*y*o-A*i*f+e*y*f+d*i*b-e*u*b)*H,t[10]=(s*y*o-A*a*o+A*i*c-e*y*c-s*i*b+e*a*b)*H,t[11]=(d*a*o-s*u*o-d*i*c+e*u*c+s*i*f-e*a*f)*H,t[12]=L*H,t[13]=(d*y*r-A*u*r+A*i*h-e*y*h-d*i*_+e*u*_)*H,t[14]=(A*a*r-s*y*r-A*i*l+e*y*l+s*i*_-e*a*_)*H,t[15]=(s*u*r-d*a*r+d*i*l-e*u*l-s*i*h+e*a*h)*H,this}scale(t){const e=this.elements,i=t.x,r=t.y,o=t.z;return e[0]*=i,e[4]*=r,e[8]*=o,e[1]*=i,e[5]*=r,e[9]*=o,e[2]*=i,e[6]*=r,e[10]*=o,e[3]*=i,e[7]*=r,e[11]*=o,this}getMaxScaleOnAxis(){const t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))}makeTranslation(t,e,i){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const i=Math.cos(e),r=Math.sin(e),o=1-i,s=t.x,a=t.y,l=t.z,c=o*s,d=o*a;return this.set(c*s+i,c*a-r*l,c*l+r*a,0,c*a+r*l,d*a+i,d*l-r*s,0,c*l-r*a,d*l+r*s,o*l*l+i,0,0,0,0,1),this}makeScale(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(t,e,i,r,o,s){return this.set(1,i,o,0,t,1,s,0,e,r,1,0,0,0,0,1),this}compose(t,e,i){const r=this.elements,o=e._x,s=e._y,a=e._z,l=e._w,c=o+o,d=s+s,u=a+a,h=o*c,f=o*d,A=o*u,y=s*d,_=s*u,b=a*u,M=l*c,C=l*d,E=l*u,L=i.x,N=i.y,H=i.z;return r[0]=(1-(y+b))*L,r[1]=(f+E)*L,r[2]=(A-C)*L,r[3]=0,r[4]=(f-E)*N,r[5]=(1-(h+b))*N,r[6]=(_+M)*N,r[7]=0,r[8]=(A+C)*H,r[9]=(_-M)*H,r[10]=(1-(h+y))*H,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}decompose(t,e,i){const r=this.elements;let o=H_.set(r[0],r[1],r[2]).length();const s=H_.set(r[4],r[5],r[6]).length(),a=H_.set(r[8],r[9],r[10]).length();this.determinant()<0&&(o=-o),t.x=r[12],t.y=r[13],t.z=r[14],vd.copy(this);const c=1/o,d=1/s,u=1/a;return vd.elements[0]*=c,vd.elements[1]*=c,vd.elements[2]*=c,vd.elements[4]*=d,vd.elements[5]*=d,vd.elements[6]*=d,vd.elements[8]*=u,vd.elements[9]*=u,vd.elements[10]*=u,e.setFromRotationMatrix(vd),i.x=o,i.y=s,i.z=a,this}makePerspective(t,e,i,r,o,s,a=Hh){const l=this.elements,c=2*o/(e-t),d=2*o/(i-r),u=(e+t)/(e-t),h=(i+r)/(i-r);let f,A;if(a===Hh)f=-(s+o)/(s-o),A=-2*s*o/(s-o);else{if(2001!==a)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);f=-s/(s-o),A=-s*o/(s-o)}return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=d,l[9]=h,l[13]=0,l[2]=0,l[6]=0,l[10]=f,l[14]=A,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,i,r,o,s,a=Hh){const l=this.elements,c=1/(e-t),d=1/(i-r),u=1/(s-o),h=(e+t)*c,f=(i+r)*d;let A,y;if(a===Hh)A=(s+o)*u,y=-2*u;else{if(2001!==a)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);A=o*u,y=-1*u}return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-h,l[1]=0,l[5]=2*d,l[9]=0,l[13]=-f,l[2]=0,l[6]=0,l[10]=y,l[14]=-A,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,i=t.elements;for(let r=0;r<16;r++)if(e[r]!==i[r])return!1;return!0}fromArray(t,e=0){for(let i=0;i<16;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}}const H_=new se,vd=new hi,wEe=new se(0,0,0),xEe=new se(1,1,1),Tm=new se,IS=new se,oc=new se,YX=new hi,ZX=new Ka;let qh=(()=>{class n{constructor(e=0,i=0,r=0,o=n.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=i,this._z=r,this._order=o}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,i,r,o=this._order){return this._x=e,this._y=i,this._z=r,this._order=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,i=this._order,r=!0){const o=e.elements,s=o[0],a=o[4],l=o[8],c=o[1],d=o[5],u=o[9],h=o[2],f=o[6],A=o[10];switch(i){case"XYZ":this._y=Math.asin(Xo(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,A),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(f,d),this._z=0);break;case"YXZ":this._x=Math.asin(-Xo(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(l,A),this._z=Math.atan2(c,d)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(Xo(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-h,A),this._z=Math.atan2(-a,d)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Xo(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(f,A),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,d));break;case"YZX":this._z=Math.asin(Xo(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-u,d),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(l,A));break;case"XZY":this._z=Math.asin(-Xo(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(f,d),this._y=Math.atan2(l,s)):(this._x=Math.atan2(-u,A),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+i)}return this._order=i,!0===r&&this._onChangeCallback(),this}setFromQuaternion(e,i,r){return YX.makeRotationFromQuaternion(e),this.setFromRotationMatrix(YX,i,r)}setFromVector3(e,i=this._order){return this.set(e.x,e.y,e.z,i)}reorder(e){return ZX.setFromEuler(this),this.setFromQuaternion(ZX,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],i=0){return e[i]=this._x,e[i+1]=this._y,e[i+2]=this._z,e[i+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}return n.DEFAULT_ORDER="XYZ",n})();class FO{constructor(){this.mask=1}set(t){this.mask=1<>>0}enable(t){this.mask|=1<{class n extends Vh{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:CEe++}),this.uuid=rc(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const e=new se,i=new qh,r=new Ka,o=new se(1,1,1);i._onChange(function s(){r.setFromEuler(i,!1)}),r._onChange(function a(){i.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:r},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new hi},normalMatrix:{value:new xi}}),this.matrix=new hi,this.matrixWorld=new hi,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new FO,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,i){this.quaternion.setFromAxisAngle(e,i)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,i){return V_.setFromAxisAngle(e,i),this.quaternion.multiply(V_),this}rotateOnWorldAxis(e,i){return V_.setFromAxisAngle(e,i),this.quaternion.premultiply(V_),this}rotateX(e){return this.rotateOnAxis(eK,e)}rotateY(e){return this.rotateOnAxis(tK,e)}rotateZ(e){return this.rotateOnAxis(nK,e)}translateOnAxis(e,i){return JX.copy(e).applyQuaternion(this.quaternion),this.position.add(JX.multiplyScalar(i)),this}translateX(e){return this.translateOnAxis(eK,e)}translateY(e){return this.translateOnAxis(tK,e)}translateZ(e){return this.translateOnAxis(nK,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Gh.copy(this.matrixWorld).invert())}lookAt(e,i,r){e.isVector3?FS.copy(e):FS.set(e,i,r);const o=this.parent;this.updateWorldMatrix(!0,!1),Cw.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Gh.lookAt(Cw,FS,this.up):Gh.lookAt(FS,Cw,this.up),this.quaternion.setFromRotationMatrix(Gh),o&&(Gh.extractRotation(o.matrixWorld),V_.setFromRotationMatrix(Gh),this.quaternion.premultiply(V_.invert()))}add(e){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(o.userData=this.userData),o.layers=this.layers.mask,o.matrix=this.matrix.toArray(),o.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(o.matrixAutoUpdate=!1),this.isInstancedMesh&&(o.type="InstancedMesh",o.count=this.count,o.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(o.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(o.type="BatchedMesh",o.perObjectFrustumCulled=this.perObjectFrustumCulled,o.sortObjects=this.sortObjects,o.drawRanges=this._drawRanges,o.reservedRanges=this._reservedRanges,o.visibility=this._visibility,o.active=this._active,o.bounds=this._bounds.map(l=>({boxInitialized:l.boxInitialized,boxMin:l.box.min.toArray(),boxMax:l.box.max.toArray(),sphereInitialized:l.sphereInitialized,sphereRadius:l.sphere.radius,sphereCenter:l.sphere.center.toArray()})),o.maxInstanceCount=this._maxInstanceCount,o.maxVertexCount=this._maxVertexCount,o.maxIndexCount=this._maxIndexCount,o.geometryInitialized=this._geometryInitialized,o.geometryCount=this._geometryCount,o.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(o.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(o.boundingSphere={center:o.boundingSphere.center.toArray(),radius:o.boundingSphere.radius}),null!==this.boundingBox&&(o.boundingBox={min:o.boundingBox.min.toArray(),max:o.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?o.background=this.background.toJSON():this.background.isTexture&&(o.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(o.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){o.geometry=s(e.geometries,this.geometry);const l=this.geometry.parameters;if(void 0!==l&&void 0!==l.shapes){const c=l.shapes;if(Array.isArray(c))for(let d=0,u=c.length;d0){o.children=[];for(let l=0;l0){o.animations=[];for(let l=0;l0&&(r.geometries=l),c.length>0&&(r.materials=c),d.length>0&&(r.textures=d),u.length>0&&(r.images=u),h.length>0&&(r.shapes=h),f.length>0&&(r.skeletons=f),A.length>0&&(r.animations=A),y.length>0&&(r.nodes=y)}return r.object=o,r;function a(l){const c=[];for(const d in l){const u=l[d];delete u.metadata,c.push(u)}return c}}clone(e){return(new this.constructor).copy(this,e)}copy(e,i=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===i)for(let r=0;r0?r.multiplyScalar(1/Math.sqrt(o)):r.set(0,0,0)}static getBarycoord(t,e,i,r,o){yd.subVectors(r,e),Wh.subVectors(i,e),kO.subVectors(t,e);const s=yd.dot(yd),a=yd.dot(Wh),l=yd.dot(kO),c=Wh.dot(Wh),d=Wh.dot(kO),u=s*c-a*a;if(0===u)return o.set(0,0,0),null;const h=1/u,f=(c*l-a*d)*h,A=(s*d-a*l)*h;return o.set(1-f-A,A,f)}static containsPoint(t,e,i,r){return null!==this.getBarycoord(t,e,i,r,$h)&&$h.x>=0&&$h.y>=0&&$h.x+$h.y<=1}static getInterpolation(t,e,i,r,o,s,a,l){return null===this.getBarycoord(t,e,i,r,$h)?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(o,$h.x),l.addScaledVector(s,$h.y),l.addScaledVector(a,$h.z),l)}static isFrontFacing(t,e,i,r){return yd.subVectors(i,e),Wh.subVectors(t,e),yd.cross(Wh).dot(r)<0}set(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(t,e,i,r){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[r]),this}setFromAttributeAndIndices(t,e,i,r){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,i),this.c.fromBufferAttribute(t,r),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return yd.subVectors(this.c,this.b),Wh.subVectors(this.a,this.b),.5*yd.cross(Wh).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Nc.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Nc.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,i,r,o){return Nc.getInterpolation(t,this.a,this.b,this.c,e,i,r,o)}containsPoint(t){return Nc.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Nc.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const i=this.a,r=this.b,o=this.c;let s,a;z_.subVectors(r,i),q_.subVectors(o,i),BO.subVectors(t,i);const l=z_.dot(BO),c=q_.dot(BO);if(l<=0&&c<=0)return e.copy(i);PO.subVectors(t,r);const d=z_.dot(PO),u=q_.dot(PO);if(d>=0&&u<=d)return e.copy(r);const h=l*u-d*c;if(h<=0&&l>=0&&d<=0)return s=l/(l-d),e.copy(i).addScaledVector(z_,s);RO.subVectors(t,o);const f=z_.dot(RO),A=q_.dot(RO);if(A>=0&&f<=A)return e.copy(o);const y=f*c-l*A;if(y<=0&&c>=0&&A<=0)return a=c/(c-A),e.copy(i).addScaledVector(q_,a);const _=d*A-f*u;if(_<=0&&u-d>=0&&f-A>=0)return rK.subVectors(o,r),a=(u-d)/(u-d+(f-A)),e.copy(r).addScaledVector(rK,a);const b=1/(_+y+h);return s=y*b,a=h*b,e.copy(i).addScaledVector(z_,s).addScaledVector(q_,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const oK={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Im={h:0,s:0,l:0},DS={h:0,s:0,l:0};function OO(n,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?n+6*(t-n)*e:e<.5?t:e<2/3?n+6*(t-n)*(2/3-e):n}class tn{constructor(t,e,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,i)}set(t,e,i){if(void 0===e&&void 0===i){const r=t;r&&r.isColor?this.copy(r):"number"==typeof r?this.setHex(r):"string"==typeof r&&this.setStyle(r)}else this.setRGB(t,e,i);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Oc){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,Br.toWorkingColorSpace(this,e),this}setRGB(t,e,i,r=Br.workingColorSpace){return this.r=t,this.g=e,this.b=i,Br.toWorkingColorSpace(this,r),this}setHSL(t,e,i,r=Br.workingColorSpace){if(t=function bO(n,t){return(n%t+t)%t}(t,1),e=Xo(e,0,1),i=Xo(i,0,1),0===e)this.r=this.g=this.b=i;else{const o=i<=.5?i*(1+e):i+e-i*e,s=2*i-o;this.r=OO(s,o,t+1/3),this.g=OO(s,o,t),this.b=OO(s,o,t-1/3)}return Br.toWorkingColorSpace(this,r),this}setStyle(t,e=Oc){function i(o){void 0!==o&&parseFloat(o)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(t)){let o;const a=r[2];switch(r[1]){case"rgb":case"rgba":if(o=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setRGB(Math.min(255,parseInt(o[1],10))/255,Math.min(255,parseInt(o[2],10))/255,Math.min(255,parseInt(o[3],10))/255,e);if(o=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setRGB(Math.min(100,parseInt(o[1],10))/100,Math.min(100,parseInt(o[2],10))/100,Math.min(100,parseInt(o[3],10))/100,e);break;case"hsl":case"hsla":if(o=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setHSL(parseFloat(o[1])/360,parseFloat(o[2])/100,parseFloat(o[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(t)){const o=r[1],s=o.length;if(3===s)return this.setRGB(parseInt(o.charAt(0),16)/15,parseInt(o.charAt(1),16)/15,parseInt(o.charAt(2),16)/15,e);if(6===s)return this.setHex(parseInt(o,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Oc){const i=oK[t.toLowerCase()];return void 0!==i?this.setHex(i,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=P_(t.r),this.g=P_(t.g),this.b=P_(t.b),this}copyLinearToSRGB(t){return this.r=yO(t.r),this.g=yO(t.g),this.b=yO(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Oc){return Br.fromWorkingColorSpace(ya.copy(this),t),65536*Math.round(Xo(255*ya.r,0,255))+256*Math.round(Xo(255*ya.g,0,255))+Math.round(Xo(255*ya.b,0,255))}getHexString(t=Oc){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Br.workingColorSpace){Br.fromWorkingColorSpace(ya.copy(this),e);const i=ya.r,r=ya.g,o=ya.b,s=Math.max(i,r,o),a=Math.min(i,r,o);let l,c;const d=(a+s)/2;if(a===s)l=0,c=0;else{const u=s-a;switch(c=d<=.5?u/(s+a):u/(2-s-a),s){case i:l=(r-o)/u+(r0!=t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const i=t[e];if(void 0===i){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const r=this[e];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[e]=i:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function r(o){const s=[];for(const a in o){const l=o[a];delete l.metadata,s.push(l)}return s}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(i.dispersion=this.dispersion),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(i.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(t).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapRotation&&(i.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(i.blending=this.blending),0!==this.side&&(i.side=this.side),!0===this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=!0),204!==this.blendSrc&&(i.blendSrc=this.blendSrc),205!==this.blendDst&&(i.blendDst=this.blendDst),100!==this.blendEquation&&(i.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(i.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(i.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(i.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(i.depthFunc=this.depthFunc),!1===this.depthTest&&(i.depthTest=this.depthTest),!1===this.depthWrite&&(i.depthWrite=this.depthWrite),!1===this.colorWrite&&(i.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(i.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(i.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(i.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==F_&&(i.stencilFail=this.stencilFail),this.stencilZFail!==F_&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==F_&&(i.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(i.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaHash&&(i.alphaHash=!0),!0===this.alphaToCoverage&&(i.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=!0),!0===this.forceSinglePass&&(i.forceSinglePass=!0),!0===this.wireframe&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=!0),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),e){const o=r(t.textures),s=r(t.images);o.length>0&&(i.textures=o),s.length>0&&(i.images=s)}return i}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let i=null;if(null!==e){const r=e.length;i=new Array(r);for(let o=0;o!==r;++o)i[o]=e[o].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class jh extends Ya{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new tn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new qh,this.combine=oS,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Cs=new se,kS=new nt;class tr{constructor(t,e,i=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=i,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=ic,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return B_("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,i){t*=this.itemSize,i*=e.itemSize;for(let r=0,o=this.itemSize;r0&&(t.userData=this.userData),void 0!==this.parameters){const l=this.parameters;for(const c in l)void 0!==l[c]&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const i=this.attributes;for(const l in i)t.data.attributes[l]=i[l].toJSON(t.data);const r={};let o=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],d=[];for(let u=0,h=c.length;u0&&(r[l]=d,o=!0)}o&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const i=t.index;null!==i&&this.setIndex(i.clone(e));const r=t.attributes;for(const c in r)this.setAttribute(c,r[c].clone(e));const o=t.morphAttributes;for(const c in o){const d=[],u=o[c];for(let h=0,f=u.length;h0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let o=0,s=r.length;o(t.far-t.near)**2))&&(lK.copy(o).invert(),PA.copy(t.ray).applyMatrix4(lK),(null===i.boundingBox||!1!==PA.intersectsBox(i.boundingBox))&&this._computeIntersections(t,e,PA)))}_computeIntersections(t,e,i){let r;const o=this.geometry,s=this.material,a=o.index,l=o.attributes.position,c=o.attributes.uv,d=o.attributes.uv1,u=o.attributes.normal,h=o.groups,f=o.drawRange;if(null!==a)if(Array.isArray(s))for(let A=0,y=h.length;Ae.far?null:{distance:c,point:US.clone(),object:n}}(n,t,e,i,W_,$_,j_,NS);if(d){r&&(RS.fromBufferAttribute(r,a),OS.fromBufferAttribute(r,l),LS.fromBufferAttribute(r,c),d.uv=Nc.getInterpolation(NS,W_,$_,j_,RS,OS,LS,new nt)),o&&(RS.fromBufferAttribute(o,a),OS.fromBufferAttribute(o,l),LS.fromBufferAttribute(o,c),d.uv1=Nc.getInterpolation(NS,W_,$_,j_,RS,OS,LS,new nt)),s&&(dK.fromBufferAttribute(s,a),uK.fromBufferAttribute(s,l),hK.fromBufferAttribute(s,c),d.normal=Nc.getInterpolation(NS,W_,$_,j_,dK,uK,hK,new se),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const u={a,b:l,c,normal:new se,materialIndex:0};Nc.getNormal(W_,$_,j_,u.normal),d.face=u}return d}class ac extends gi{constructor(t=1,e=1,i=1,r=1,o=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:r,heightSegments:o,depthSegments:s};const a=this;r=Math.floor(r),o=Math.floor(o),s=Math.floor(s);const l=[],c=[],d=[],u=[];let h=0,f=0;function A(y,_,b,M,C,E,L,N,H,j,R){const B=E/H,ee=L/j,we=E/2,Ee=L/2,ne=N/2,Ie=H+1,te=j+1;let Ae=0,le=0;const Pe=new se;for(let it=0;it0?1:-1,d.push(Pe.x,Pe.y,Pe.z),u.push(Ht/H),u.push(1-it/j),Ae+=1}for(let it=0;it0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const i={};for(const r in this.extensions)!0===this.extensions[r]&&(i[r]=!0);return Object.keys(i).length>0&&(e.extensions=i),e}}class HO extends xo{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new hi,this.projectionMatrix=new hi,this.projectionMatrixInverse=new hi,this.coordinateSystem=Hh}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const Fm=new se,mK=new nt,pK=new nt;class Hs extends HO{constructor(t=50,e=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*D_*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*FA*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*D_*Math.atan(Math.tan(.5*FA*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,i){Fm.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Fm.x,Fm.y).multiplyScalar(-t/Fm.z),Fm.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Fm.x,Fm.y).multiplyScalar(-t/Fm.z)}getViewSize(t,e){return this.getViewBounds(t,mK,pK),e.subVectors(pK,mK)}setViewOffset(t,e,i,r,o,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=r,this.view.width=o,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*FA*this.fov)/this.zoom,i=2*e,r=this.aspect*i,o=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const l=s.fullWidth,c=s.fullHeight;o+=s.offsetX*r/l,e-=s.offsetY*i/c,r*=s.width/l,i*=s.height/c}const a=this.filmOffset;0!==a&&(o+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(o,o+r,e,e-i,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}class REe extends xo{constructor(t,e,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Hs(-90,1,t,e);r.layers=this.layers,this.add(r);const o=new Hs(-90,1,t,e);o.layers=this.layers,this.add(o);const s=new Hs(-90,1,t,e);s.layers=this.layers,this.add(s);const a=new Hs(-90,1,t,e);a.layers=this.layers,this.add(a);const l=new Hs(-90,1,t,e);l.layers=this.layers,this.add(l);const c=new Hs(-90,1,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[i,r,o,s,a,l]=e;for(const c of e)this.remove(c);if(t===Hh)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),o.up.set(0,0,-1),o.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else{if(2001!==t)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),o.up.set(0,0,1),o.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1)}for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[o,s,a,l,c,d]=this.children,u=t.getRenderTarget(),h=t.getActiveCubeFace(),f=t.getActiveMipmapLevel(),A=t.xr.enabled;t.xr.enabled=!1;const y=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0,r),t.render(e,o),t.setRenderTarget(i,1,r),t.render(e,s),t.setRenderTarget(i,2,r),t.render(e,a),t.setRenderTarget(i,3,r),t.render(e,l),t.setRenderTarget(i,4,r),t.render(e,c),i.texture.generateMipmaps=y,t.setRenderTarget(i,5,r),t.render(e,d),t.setRenderTarget(u,h,f),t.xr.enabled=A,i.texture.needsPMREMUpdate=!0}}class VS extends Xa{constructor(t,e,i,r,o,s,a,l,c,d){super(t=void 0!==t?t:[],e=void 0!==e?e:ym,i,r,o,s,a,l,c,d),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class OEe extends Lc{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const i={width:t,height:t,depth:1};this.texture=new VS([i,i,i,i,i,i],e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:xs}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const i_uniforms={tEquirect:{value:null}},i_vertexShader="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",i_fragmentShader="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",r=new ac(5,5,5),o=new Al({name:"CubemapFromEquirect",uniforms:X_(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});o.uniforms.tEquirect.value=e;const s=new ki(r,o),a=e.minFilter;return e.minFilter===Nh&&(e.minFilter=xs),new REe(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,i,r){const o=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,i,r);t.setRenderTarget(o)}}const VO=new se,LEe=new se,NEe=new xi;class Dm{constructor(t=new se(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,i,r){return this.normal.set(t,e,i),this.constant=r,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,i){const r=VO.subVectors(i,e).cross(LEe.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const i=t.delta(VO),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const o=-(t.start.dot(this.normal)+this.constant)/r;return o<0||o>1?null:e.copy(t.start).addScaledVector(i,o)}intersectsLine(t){const e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const i=e||NEe.getNormalMatrix(t),r=this.coplanarPoint(VO).applyMatrix4(t),o=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(o),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const RA=new Ys,QS=new se;class zS{constructor(t=new Dm,e=new Dm,i=new Dm,r=new Dm,o=new Dm,s=new Dm){this.planes=[t,e,i,r,o,s]}set(t,e,i,r,o,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(i),a[3].copy(r),a[4].copy(o),a[5].copy(s),this}copy(t){const e=this.planes;for(let i=0;i<6;i++)e[i].copy(t.planes[i]);return this}setFromProjectionMatrix(t,e=Hh){const i=this.planes,r=t.elements,o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],d=r[5],u=r[6],h=r[7],f=r[8],A=r[9],y=r[10],_=r[11],b=r[12],M=r[13],C=r[14],E=r[15];if(i[0].setComponents(l-o,h-c,_-f,E-b).normalize(),i[1].setComponents(l+o,h+c,_+f,E+b).normalize(),i[2].setComponents(l+s,h+d,_+A,E+M).normalize(),i[3].setComponents(l-s,h-d,_-A,E-M).normalize(),i[4].setComponents(l-a,h-u,_-y,E-C).normalize(),e===Hh)i[5].setComponents(l+a,h+u,_+y,E+C).normalize();else{if(2001!==e)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);i[5].setComponents(a,u,y,C).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),RA.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),RA.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(RA)}intersectsSprite(t){return RA.center.set(0,0,0),RA.radius=.7071067811865476,RA.applyMatrix4(t.matrixWorld),this.intersectsSphere(RA)}intersectsSphere(t){const e=this.planes,i=t.center,r=-t.radius;for(let o=0;o<6;o++)if(e[o].distanceToPoint(i)0?t.max.x:t.min.x,QS.y=r.normal.y>0?t.max.y:t.min.y,QS.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(QS)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function AK(){let n=null,t=!1,e=null,i=null;function r(o,s){e(o,s),i=n.requestAnimationFrame(r)}return{start:function(){!0!==t&&null!==e&&(i=n.requestAnimationFrame(r),t=!0)},stop:function(){n.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(o){e=o},setContext:function(o){n=o}}}function UEe(n){const t=new WeakMap;return{get:function r(a){return a.isInterleavedBufferAttribute&&(a=a.data),t.get(a)},remove:function o(a){a.isInterleavedBufferAttribute&&(a=a.data);const l=t.get(a);l&&(n.deleteBuffer(l.buffer),t.delete(a))},update:function s(a,l){if(a.isInterleavedBufferAttribute&&(a=a.data),a.isGLBufferAttribute){const d=t.get(a);return void((!d||d.version 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n\tvColor.xyz *= batchingColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif ( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n\tmaterial.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\tfloat dispersion;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t#endif\n\tuniform sampler2DArray morphTargetsTexture;\n\tuniform ivec2 morphTargetsTextureSize;\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t}\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec4( 0., 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec4( 1., 1., 1., 1. );\n\tfloat vuf;\n\tfloat af = modf( v * PackFactors.a, vuf );\n\tfloat bf = modf( vuf * ShiftRight8, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec3( 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec3( 1., 1., 1. );\n\tfloat vuf;\n\tfloat bf = modf( v * PackFactors.b, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec2( 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec2( 1., 1. );\n\tfloat vuf;\n\tfloat gf = modf( v * 256., vuf );\n\treturn vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n\treturn dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 / 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec4 transmittedLight;\n\t\tvec3 transmittance;\n\t\t#ifdef USE_DISPERSION\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\t\trefractionCoords += 1.0;\n\t\t\t\trefractionCoords /= 2.0;\n\t\t\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n\t\t\t}\n\t\t\ttransmittedLight.a /= 3.0;\n\t\t\n\t\t#else\n\t\t\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\trefractionCoords += 1.0;\n\t\t\trefractionCoords /= 2.0;\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\t\n\t\t#endif\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#elif DEPTH_PACKING == 3202\n\t\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n\t#elif DEPTH_PACKING == 3203\n\t\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n\tuniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},pn={common:{diffuse:{value:new tn(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new xi},alphaMap:{value:null},alphaMapTransform:{value:new xi},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new xi}},envmap:{envMap:{value:null},envMapRotation:{value:new xi},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new xi}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new xi}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new xi},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new xi},normalScale:{value:new nt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new xi},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new xi}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new xi}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new xi}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new tn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new tn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new xi},alphaTest:{value:0},uvTransform:{value:new xi}},sprite:{diffuse:{value:new tn(16777215)},opacity:{value:1},center:{value:new nt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new xi},alphaMap:{value:null},alphaMapTransform:{value:new xi},alphaTest:{value:0}}},bu={basic:{uniforms:Za([pn.common,pn.specularmap,pn.envmap,pn.aomap,pn.lightmap,pn.fog]),vertexShader:Gi.meshbasic_vert,fragmentShader:Gi.meshbasic_frag},lambert:{uniforms:Za([pn.common,pn.specularmap,pn.envmap,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.fog,pn.lights,{emissive:{value:new tn(0)}}]),vertexShader:Gi.meshlambert_vert,fragmentShader:Gi.meshlambert_frag},phong:{uniforms:Za([pn.common,pn.specularmap,pn.envmap,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.fog,pn.lights,{emissive:{value:new tn(0)},specular:{value:new tn(1118481)},shininess:{value:30}}]),vertexShader:Gi.meshphong_vert,fragmentShader:Gi.meshphong_frag},standard:{uniforms:Za([pn.common,pn.envmap,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.roughnessmap,pn.metalnessmap,pn.fog,pn.lights,{emissive:{value:new tn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Gi.meshphysical_vert,fragmentShader:Gi.meshphysical_frag},toon:{uniforms:Za([pn.common,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.gradientmap,pn.fog,pn.lights,{emissive:{value:new tn(0)}}]),vertexShader:Gi.meshtoon_vert,fragmentShader:Gi.meshtoon_frag},matcap:{uniforms:Za([pn.common,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.fog,{matcap:{value:null}}]),vertexShader:Gi.meshmatcap_vert,fragmentShader:Gi.meshmatcap_frag},points:{uniforms:Za([pn.points,pn.fog]),vertexShader:Gi.points_vert,fragmentShader:Gi.points_frag},dashed:{uniforms:Za([pn.common,pn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Gi.linedashed_vert,fragmentShader:Gi.linedashed_frag},depth:{uniforms:Za([pn.common,pn.displacementmap]),vertexShader:Gi.depth_vert,fragmentShader:Gi.depth_frag},normal:{uniforms:Za([pn.common,pn.bumpmap,pn.normalmap,pn.displacementmap,{opacity:{value:1}}]),vertexShader:Gi.meshnormal_vert,fragmentShader:Gi.meshnormal_frag},sprite:{uniforms:Za([pn.sprite,pn.fog]),vertexShader:Gi.sprite_vert,fragmentShader:Gi.sprite_frag},background:{uniforms:{uvTransform:{value:new xi},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Gi.background_vert,fragmentShader:Gi.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new xi}},vertexShader:Gi.backgroundCube_vert,fragmentShader:Gi.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Gi.cube_vert,fragmentShader:Gi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Gi.equirect_vert,fragmentShader:Gi.equirect_frag},distanceRGBA:{uniforms:Za([pn.common,pn.displacementmap,{referencePosition:{value:new se},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Gi.distanceRGBA_vert,fragmentShader:Gi.distanceRGBA_frag},shadow:{uniforms:Za([pn.lights,pn.fog,{color:{value:new tn(0)},opacity:{value:1}}]),vertexShader:Gi.shadow_vert,fragmentShader:Gi.shadow_frag}};bu.physical={uniforms:Za([bu.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new xi},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new xi},clearcoatNormalScale:{value:new nt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new xi},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new xi},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new xi},sheen:{value:0},sheenColor:{value:new tn(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new xi},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new xi},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new xi},transmissionSamplerSize:{value:new nt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new xi},attenuationDistance:{value:0},attenuationColor:{value:new tn(0)},specularColor:{value:new tn(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new xi},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new xi},anisotropyVector:{value:new nt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new xi}}]),vertexShader:Gi.meshphysical_vert,fragmentShader:Gi.meshphysical_frag};const qS={r:0,b:0,g:0},OA=new qh,USe=new hi;function HSe(n,t,e,i,r,o,s){const a=new tn(0);let c,d,l=!0===o?0:1,u=null,h=0,f=null;function A(M){let C=!0===M.isScene?M.background:null;return C&&C.isTexture&&(C=(M.backgroundBlurriness>0?e:t).get(C)),C}function b(M,C){M.getRGB(qS,fK(n)),i.buffers.color.setClear(qS.r,qS.g,qS.b,C,s)}return{getClearColor:function(){return a},setClearColor:function(M,C=1){a.set(M),l=C,b(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(M){l=M,b(a,l)},render:function y(M){let C=!1;const E=A(M);null===E?b(a,l):E&&E.isColor&&(b(E,1),C=!0);const L=n.xr.getEnvironmentBlendMode();"additive"===L?i.buffers.color.setClear(0,0,0,1,s):"alpha-blend"===L&&i.buffers.color.setClear(0,0,0,0,s),(n.autoClear||C)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))},addToRenderList:function _(M,C){const E=A(C);E&&(E.isCubeTexture||E.mapping===Aw)?(void 0===d&&(d=new ki(new ac(1,1,1),new Al({name:"BackgroundCubeMaterial",uniforms:X_(bu.backgroundCube.uniforms),vertexShader:bu.backgroundCube.vertexShader,fragmentShader:bu.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),d.geometry.deleteAttribute("normal"),d.geometry.deleteAttribute("uv"),d.onBeforeRender=function(L,N,H){this.matrixWorld.copyPosition(H.matrixWorld)},Object.defineProperty(d.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(d)),OA.copy(C.backgroundRotation),OA.x*=-1,OA.y*=-1,OA.z*=-1,E.isCubeTexture&&!1===E.isRenderTargetTexture&&(OA.y*=-1,OA.z*=-1),d.material.uniforms.envMap.value=E,d.material.uniforms.flipEnvMap.value=E.isCubeTexture&&!1===E.isRenderTargetTexture?-1:1,d.material.uniforms.backgroundBlurriness.value=C.backgroundBlurriness,d.material.uniforms.backgroundIntensity.value=C.backgroundIntensity,d.material.uniforms.backgroundRotation.value.setFromMatrix4(USe.makeRotationFromEuler(OA)),d.material.toneMapped=Br.getTransfer(E.colorSpace)!==wo,(u!==E||h!==E.version||f!==n.toneMapping)&&(d.material.needsUpdate=!0,u=E,h=E.version,f=n.toneMapping),d.layers.enableAll(),M.unshift(d,d.geometry,d.material,0,0,null)):E&&E.isTexture&&(void 0===c&&(c=new ki(new Z_(2,2),new Al({name:"BackgroundMaterial",uniforms:X_(bu.background.uniforms),vertexShader:bu.background.vertexShader,fragmentShader:bu.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=E,c.material.uniforms.backgroundIntensity.value=C.backgroundIntensity,c.material.toneMapped=Br.getTransfer(E.colorSpace)!==wo,!0===E.matrixAutoUpdate&&E.updateMatrix(),c.material.uniforms.uvTransform.value.copy(E.matrix),(u!==E||h!==E.version||f!==n.toneMapping)&&(c.material.needsUpdate=!0,u=E,h=E.version,f=n.toneMapping),c.layers.enableAll(),M.unshift(c,c.geometry,c.material,0,0,null))}}}function VSe(n,t){const e=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=h(null);let o=r,s=!1;function c(B){return n.bindVertexArray(B)}function d(B){return n.deleteVertexArray(B)}function h(B){const ee=[],we=[],Ee=[];for(let ne=0;ne=0){const it=ne[le];let _t=Ie[le];if(void 0===_t&&("instanceMatrix"===le&&B.instanceMatrix&&(_t=B.instanceMatrix),"instanceColor"===le&&B.instanceColor&&(_t=B.instanceColor)),void 0===it||it.attribute!==_t||_t&&it.data!==_t.data)return!0;te++}return o.attributesNum!==te||o.index!==Ee}(B,Ee,we,ne),Ie&&function A(B,ee,we,Ee){const ne={},Ie=ee.attributes;let te=0;const Ae=we.getAttributes();for(const le in Ae)if(Ae[le].location>=0){let it=Ie[le];void 0===it&&("instanceMatrix"===le&&B.instanceMatrix&&(it=B.instanceMatrix),"instanceColor"===le&&B.instanceColor&&(it=B.instanceColor));const _t={};_t.attribute=it,it&&it.data&&(_t.data=it.data),ne[le]=_t,te++}o.attributes=ne,o.attributesNum=te,o.index=Ee}(B,Ee,we,ne),null!==ne&&t.update(ne,n.ELEMENT_ARRAY_BUFFER),(Ie||s)&&(s=!1,function E(B,ee,we,Ee){y();const ne=Ee.attributes,Ie=we.getAttributes(),te=ee.defaultAttributeValues;for(const Ae in Ie){const le=Ie[Ae];if(le.location>=0){let Pe=ne[Ae];if(void 0===Pe&&("instanceMatrix"===Ae&&B.instanceMatrix&&(Pe=B.instanceMatrix),"instanceColor"===Ae&&B.instanceColor&&(Pe=B.instanceColor)),void 0!==Pe){const it=Pe.normalized,_t=Pe.itemSize,Ht=t.get(Pe);if(void 0===Ht)continue;const cn=Ht.buffer,ce=Ht.type,ue=Ht.bytesPerElement,ae=ce===n.INT||ce===n.UNSIGNED_INT||Pe.gpuType===L4;if(Pe.isInterleavedBufferAttribute){const Z=Pe.data,$e=Z.stride,wt=Pe.offset;if(Z.isInstancedInterleavedBuffer){for(let je=0;je0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";N="mediump"}return"mediump"===N&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=void 0!==e.precision?e.precision:"highp";const d=l(c);d!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",d,"instead."),c=d);const u=!0===e.logarithmicDepthBuffer,h=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function o(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const N=t.get("EXT_texture_filter_anisotropic");r=n.getParameter(N.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:l,textureFormatReadable:function s(N){return!(N!==$a&&i.convert(N)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))},textureTypeReadable:function a(N){const H=N===C_&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return!(N!==Uh&&i.convert(N)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE)&&N!==ic&&!H)},precision:c,logarithmicDepthBuffer:u,maxTextures:h,maxVertexTextures:f,maxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),maxCubemapSize:n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:n.getParameter(n.MAX_VERTEX_ATTRIBS),maxVertexUniforms:n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:n.getParameter(n.MAX_VARYING_VECTORS),maxFragmentUniforms:n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:f>0,maxSamples:n.getParameter(n.MAX_SAMPLES)}}function qSe(n){const t=this;let e=null,i=0,r=!1,o=!1;const s=new Dm,a=new xi,l={value:null,needsUpdate:!1};function d(u,h,f,A){const y=null!==u?u.length:0;let _=null;if(0!==y){if(_=l.value,!0!==A||null===_){const b=f+4*y,M=h.matrixWorldInverse;a.getNormalMatrix(M),(null===_||_.length0),t.numPlanes=i,t.numIntersection=0}();else{const M=o?0:i,C=4*M;let E=b.clippingState||null;l.value=E,E=d(A,h,C,f);for(let L=0;L!==C;++L)E[L]=e[L];b.clippingState=E,this.numIntersection=y?this.numPlanes:0,this.numPlanes+=M}}}function GSe(n){let t=new WeakMap;function e(s,a){return 303===a?s.mapping=ym:304===a&&(s.mapping=TA),s}function r(s){const a=s.target;a.removeEventListener("dispose",r);const l=t.get(a);void 0!==l&&(t.delete(a),l.dispose())}return{get:function i(s){if(s&&s.isTexture){const a=s.mapping;if(303===a||304===a){if(t.has(s))return e(t.get(s).texture,s.mapping);{const l=s.image;if(l&&l.height>0){const c=new OEe(l.height);return c.fromEquirectangularTexture(n,s),t.set(s,c),s.addEventListener("dispose",r),e(c.texture,s.mapping)}return null}}}return s},dispose:function o(){t=new WeakMap}}}class GS extends HO{constructor(t=-1,e=1,i=1,r=-1,o=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=i,this.bottom=r,this.near=o,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,i,r,o,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=r,this.view.width=o,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let o=i-t,s=i+t,a=r+e,l=r-e;if(null!==this.view&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;o+=c*this.view.offsetX,s=o+c*this.view.width,a-=d*this.view.offsetY,l=a-d*this.view.height}this.projectionMatrix.makeOrthographic(o,s,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const gK=[.125,.215,.35,.446,.526,.582],QO=new GS,_K=new tn;let zO=null,qO=0,GO=0,WO=!1;const NA=(1+Math.sqrt(5))/2,eb=1/NA,bK=[new se(-NA,eb,0),new se(NA,eb,0),new se(-eb,0,NA),new se(eb,0,NA),new se(0,NA,-eb),new se(0,NA,eb),new se(-1,1,-1),new se(1,1,-1),new se(-1,1,1),new se(1,1,1)];class vK{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,i=.1,r=100){zO=this._renderer.getRenderTarget(),qO=this._renderer.getActiveCubeFace(),GO=this._renderer.getActiveMipmapLevel(),WO=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const o=this._allocateTargets();return o.depthBuffer=!0,this._sceneToCubeUV(t,i,r,o),e>0&&this._blur(o,0,0,e),this._applyPMREM(o),this._cleanup(o),o}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=xK(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=wK(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tn-4?l=gK[s-n+4-1]:0===s&&(l=0),i.push(l);const c=1/(a-2),d=-c,u=1+c,h=[d,d,u,d,u,u,d,d,u,u,d,u],f=6,A=6,y=3,_=2,b=1,M=new Float32Array(y*A*f),C=new Float32Array(_*A*f),E=new Float32Array(b*A*f);for(let N=0;N2?0:-1;M.set([H,j,0,H+2/3,j,0,H+2/3,j+1,0,H,j,0,H+2/3,j+1,0,H,j+1,0],y*A*N),C.set(h,_*A*N),E.set([N,N,N,N,N,N],b*A*N)}const L=new gi;L.setAttribute("position",new tr(M,y)),L.setAttribute("uv",new tr(C,_)),L.setAttribute("faceIndex",new tr(E,b)),t.push(L),r>4&&r--}return{lodPlanes:t,sizeLods:e,sigmas:i}}(o)),this._blurMaterial=function $Se(n,t,e){const i=new Float32Array(20),r=new se(0,1,0);return new Al({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(o,t,e)}return r}_compileMaterial(t){const e=new ki(this._lodPlanes[0],t);this._renderer.compile(e,QO)}_sceneToCubeUV(t,e,i,r){const a=new Hs(90,1,e,i),l=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],d=this._renderer,u=d.autoClear,h=d.toneMapping;d.getClearColor(_K),d.toneMapping=vm,d.autoClear=!1;const f=new jh({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),A=new ki(new ac,f);let y=!1;const _=t.background;_?_.isColor&&(f.color.copy(_),t.background=null,y=!0):(f.color.copy(_K),y=!0);for(let b=0;b<6;b++){const M=b%3;0===M?(a.up.set(0,l[b],0),a.lookAt(c[b],0,0)):1===M?(a.up.set(0,0,l[b]),a.lookAt(0,c[b],0)):(a.up.set(0,l[b],0),a.lookAt(0,0,c[b]));const C=this._cubeSize;WS(r,M*C,b>2?C:0,C,C),d.setRenderTarget(r),y&&d.render(A,a),d.render(t,a)}A.geometry.dispose(),A.material.dispose(),d.toneMapping=h,d.autoClear=u,t.background=_}_textureToCubeUV(t,e){const i=this._renderer,r=t.mapping===ym||t.mapping===TA;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=xK()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=wK());const o=r?this._cubemapMaterial:this._equirectMaterial,s=new ki(this._lodPlanes[0],o);o.uniforms.envMap.value=t;const l=this._cubeSize;WS(e,0,0,3*l,2*l),i.setRenderTarget(e),i.render(s,QO)}_applyPMREM(t){const e=this._renderer,i=e.autoClear;e.autoClear=!1;const r=this._lodPlanes.length;for(let o=1;o20&&console.warn(`sigmaRadians, ${o}, is too large and will clip, as it requested ${_} samples when the maximum is set to 20`);const b=[];let M=0;for(let H=0;H<20;++H){const j=H/y,R=Math.exp(-j*j/2);b.push(R),0===H?M+=R:H<_&&(M+=2*R)}for(let H=0;HC-4?r-C+4:0),4*(this._cubeSize-E),3*E,2*E),l.setRenderTarget(e),l.render(u,QO)}}function yK(n,t,e){const i=new Lc(n,t,e);return i.texture.mapping=Aw,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function WS(n,t,e,i,r){n.viewport.set(t,e,i,r),n.scissor.set(t,e,i,r)}function wK(){return new Al({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function xK(){return new Al({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function jSe(n){let t=new WeakMap,e=null;function o(a){const l=a.target;l.removeEventListener("dispose",o);const c=t.get(l);void 0!==c&&(t.delete(l),c.dispose())}return{get:function i(a){if(a&&a.isTexture){const l=a.mapping,c=303===l||304===l,d=l===ym||l===TA;if(c||d){let u=t.get(a);if(a.isRenderTargetTexture&&a.pmremVersion!==(void 0!==u?u.texture.pmremVersion:0))return null===e&&(e=new vK(n)),u=c?e.fromEquirectangular(a,u):e.fromCubemap(a,u),u.texture.pmremVersion=a.pmremVersion,t.set(a,u),u.texture;if(void 0!==u)return u.texture;{const f=a.image;return c&&f&&f.height>0||d&&f&&function r(a){let l=0;for(let d=0;d<6;d++)void 0!==a[d]&&l++;return 6===l}(f)?(null===e&&(e=new vK(n)),u=c?e.fromEquirectangular(a):e.fromCubemap(a),u.texture.pmremVersion=a.pmremVersion,t.set(a,u),a.addEventListener("dispose",o),u.texture):null}}}return a},dispose:function s(){t=new WeakMap,null!==e&&(e.dispose(),e=null)}}}function XSe(n){const t={};function e(i){if(void 0!==t[i])return t[i];let r;switch(i){case"WEBGL_depth_texture":r=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=n.getExtension(i)}return t[i]=r,r}return{has:function(i){return null!==e(i)},init:function(){e("EXT_color_buffer_float"),e("WEBGL_clip_cull_distance"),e("OES_texture_float_linear"),e("EXT_color_buffer_half_float"),e("WEBGL_multisampled_render_to_texture"),e("WEBGL_render_shared_exponent")},get:function(i){const r=e(i);return null===r&&B_("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function KSe(n,t,e,i){const r={},o=new WeakMap;function s(u){const h=u.target;null!==h.index&&t.remove(h.index);for(const A in h.attributes)t.remove(h.attributes[A]);for(const A in h.morphAttributes){const y=h.morphAttributes[A];for(let _=0,b=y.length;_t.maxTextureSize&&(L=Math.ceil(E/t.maxTextureSize),E=t.maxTextureSize);const N=new Float32Array(E*L*4*u),H=new xO(N,E,L,u);H.type=ic,H.needsUpdate=!0;const j=4*C;for(let B=0;B0)return n;const r=t*e;let o=FK[r];if(void 0===o&&(o=new Float32Array(r),FK[r]=o),0!==t){i.toArray(o,0);for(let s=1,a=0;s!==t;++s)a+=e,n[s].toArray(o,a)}return o}function Vs(n,t){if(n.length!==t.length)return!1;for(let e=0,i=n.length;e":" "} ${a}: ${e[s]}`)}return i.join("\n")}(n.getShaderSource(t),s)}return r}function XTe(n,t){const e=function jTe(n){const t=Br.getPrimaries(Br.workingColorSpace),e=Br.getPrimaries(n);let i;switch(t===e?i="":t===yS&&e===vS?i="LinearDisplayP3ToLinearSRGB":t===vS&&e===yS&&(i="LinearSRGBToLinearDisplayP3"),n){case Cm:case _S:return[i,"LinearTransferOETF"];case Oc:case _O:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}(t);return`vec4 ${n}( vec4 value ) { return ${e[0]}( ${e[1]}( value ) ); }`}function KTe(n,t){let e;switch(t){case IMe:e="Linear";break;case FMe:e="Reinhard";break;case DMe:e="Cineon";break;case kMe:e="ACESFilmic";break;case PMe:e="AgX";break;case RMe:e="Neutral";break;case BMe:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+n+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}const XS=new se;function Sw(n){return""!==n}function NK(n,t){const e=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,e).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function UK(n,t){return n.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const tIe=/^[ \t]*#include +<([\w\d./]+)>/gm;function XO(n){return n.replace(tIe,iIe)}const nIe=new Map;function iIe(n,t){let e=Gi[t];if(void 0===e){const i=nIe.get(t);if(void 0===i)throw new Error("Can not resolve #include <"+t+">");e=Gi[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,i)}return XO(e)}const rIe=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function HK(n){return n.replace(rIe,oIe)}function oIe(n,t,e,i){let r="";for(let o=parseInt(t);o0&&(_+="\n"),b=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A].filter(Sw).join("\n"),b.length>0&&(b+="\n")):(_=[VK(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A,e.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",e.batching?"#define USE_BATCHING":"",e.batchingColor?"#define USE_BATCHING_COLOR":"",e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.instancingMorph?"#define USE_INSTANCING_MORPH":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+d:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&!1===e.flatShading?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&!1===e.flatShading?"#define USE_MORPHNORMALS":"",e.morphColors?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Sw).join("\n"),b=[VK(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+d:"",e.envMap?"#define "+u:"",h?"#define CUBEUV_TEXEL_WIDTH "+h.texelWidth:"",h?"#define CUBEUV_TEXEL_HEIGHT "+h.texelHeight:"",h?"#define CUBEUV_MAX_MIP "+h.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.dispersion?"#define USE_DISPERSION":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&!1===e.flatShading?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor||e.batchingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==vm?"#define TONE_MAPPING":"",e.toneMapping!==vm?Gi.tonemapping_pars_fragment:"",e.toneMapping!==vm?KTe("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Gi.colorspace_pars_fragment,XTe("linearToOutputTexel",e.outputColorSpace),(Br.getLuminanceCoefficients(XS),["float luminance( const in vec3 rgb ) {",`\tconst vec3 weights = vec3( ${XS.x.toFixed(4)}, ${XS.y.toFixed(4)}, ${XS.z.toFixed(4)} );`,"\treturn dot( weights, rgb );","}"].join("\n")),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"","\n"].filter(Sw).join("\n")),s=XO(s),s=NK(s,e),s=UK(s,e),a=XO(a),a=NK(a,e),a=UK(a,e),s=HK(s),a=HK(a),!0!==e.isRawShaderMaterial&&(M="#version 300 es\n",_=[f,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,b=["#define varying in",e.glslVersion===zX?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===zX?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+b);const E=M+b+a,L=OK(r,r.VERTEX_SHADER,M+_+s),N=OK(r,r.FRAGMENT_SHADER,E);function H(ee){if(n.debug.checkShaderErrors){const we=r.getProgramInfoLog(y).trim(),Ee=r.getShaderInfoLog(L).trim(),ne=r.getShaderInfoLog(N).trim();let Ie=!0,te=!0;if(!1===r.getProgramParameter(y,r.LINK_STATUS))if(Ie=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,y,L,N);else{const Ae=LK(r,L,"vertex"),le=LK(r,N,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+ee.name+"\nMaterial Type: "+ee.type+"\n\nProgram Info Log: "+we+"\n"+Ae+"\n"+le)}else""!==we?console.warn("THREE.WebGLProgram: Program Info Log:",we):(""===Ee||""===ne)&&(te=!1);te&&(ee.diagnostics={runnable:Ie,programLog:we,vertexShader:{log:Ee,prefix:_},fragmentShader:{log:ne,prefix:b}})}r.deleteShader(L),r.deleteShader(N),j=new jS(r,y),R=function eIe(n,t){const e={},i=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,ft=R.clearcoat>0,Bt=R.iridescence>0,Vt=R.sheen>0,$n=R.transmission>0,fn=Y&&!!R.anisotropyMap,xn=ft&&!!R.clearcoatMap,Ei=ft&&!!R.clearcoatNormalMap,Zt=ft&&!!R.clearcoatRoughnessMap,Cn=Bt&&!!R.iridescenceMap,cr=Bt&&!!R.iridescenceThicknessMap,Ci=Vt&&!!R.sheenColorMap,Rn=Vt&&!!R.sheenRoughnessMap,Bi=!!R.specularMap,nr=!!R.specularColorMap,Vo=!!R.specularIntensityMap,Ze=$n&&!!R.transmissionMap,nn=$n&&!!R.thicknessMap,Gt=!!R.alphaMap,vr=!!R.extensions;let Ms=vm;R.toneMapped&&(null===Z||!0===Z.isXRRenderTarget)&&(Ms=n.toneMapping);const ha={shaderID:Pe,shaderType:R.type,shaderName:R.name,vertexShader:cn,fragmentShader:ce,defines:R.defines,customVertexShaderID:ue,customFragmentShaderID:ae,isRawShaderMaterial:!0===R.isRawShaderMaterial,glslVersion:R.glslVersion,precision:f,batching:wt,batchingColor:wt&&null!==Ee._colorsTexture,instancing:$e,instancingColor:$e&&null!==Ee.instanceColor,instancingMorph:$e&&null!==Ee.morphTexture,supportsVertexTextures:h,outputColorSpace:null===Z?n.outputColorSpace:!0===Z.isXRRenderTarget?Z.texture.colorSpace:Cm,alphaToCoverage:!!R.alphaToCoverage,map:je,matcap:!!R.matcap,envMap:re,envMapMode:re&&Ae.mapping,envMapCubeUVHeight:le,aoMap:ht,lightMap:Ve,bumpMap:At,normalMap:ot,displacementMap:h&&vt,emissiveMap:Ce,normalMapObjectSpace:ot&&1===R.normalMapType,normalMapTangentSpace:ot&&0===R.normalMapType,metalnessMap:be,roughnessMap:de,anisotropy:Y,anisotropyMap:fn,clearcoat:ft,clearcoatMap:xn,clearcoatNormalMap:Ei,clearcoatRoughnessMap:Zt,dispersion:R.dispersion>0,iridescence:Bt,iridescenceMap:Cn,iridescenceThicknessMap:cr,sheen:Vt,sheenColorMap:Ci,sheenRoughnessMap:Rn,specularMap:Bi,specularColorMap:nr,specularIntensityMap:Vo,transmission:$n,transmissionMap:Ze,thicknessMap:nn,gradientMap:!!R.gradientMap,opaque:!1===R.transparent&&1===R.blending&&!1===R.alphaToCoverage,alphaMap:Gt,alphaTest:R.alphaTest>0,alphaHash:!!R.alphaHash,combine:R.combine,mapUv:je&&y(R.map.channel),aoMapUv:ht&&y(R.aoMap.channel),lightMapUv:Ve&&y(R.lightMap.channel),bumpMapUv:At&&y(R.bumpMap.channel),normalMapUv:ot&&y(R.normalMap.channel),displacementMapUv:vt&&y(R.displacementMap.channel),emissiveMapUv:Ce&&y(R.emissiveMap.channel),metalnessMapUv:be&&y(R.metalnessMap.channel),roughnessMapUv:de&&y(R.roughnessMap.channel),anisotropyMapUv:fn&&y(R.anisotropyMap.channel),clearcoatMapUv:xn&&y(R.clearcoatMap.channel),clearcoatNormalMapUv:Ei&&y(R.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Zt&&y(R.clearcoatRoughnessMap.channel),iridescenceMapUv:Cn&&y(R.iridescenceMap.channel),iridescenceThicknessMapUv:cr&&y(R.iridescenceThicknessMap.channel),sheenColorMapUv:Ci&&y(R.sheenColorMap.channel),sheenRoughnessMapUv:Rn&&y(R.sheenRoughnessMap.channel),specularMapUv:Bi&&y(R.specularMap.channel),specularColorMapUv:nr&&y(R.specularColorMap.channel),specularIntensityMapUv:Vo&&y(R.specularIntensityMap.channel),transmissionMapUv:Ze&&y(R.transmissionMap.channel),thicknessMapUv:nn&&y(R.thicknessMap.channel),alphaMapUv:Gt&&y(R.alphaMap.channel),vertexTangents:!!Ie.attributes.tangent&&(ot||Y),vertexColors:R.vertexColors,vertexAlphas:!0===R.vertexColors&&!!Ie.attributes.color&&4===Ie.attributes.color.itemSize,pointsUvs:!0===Ee.isPoints&&!!Ie.attributes.uv&&(je||Gt),fog:!!ne,useFog:!0===R.fog,fogExp2:!!ne&&ne.isFogExp2,flatShading:!0===R.flatShading,sizeAttenuation:!0===R.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===Ee.isSkinnedMesh,morphTargets:void 0!==Ie.morphAttributes.position,morphNormals:void 0!==Ie.morphAttributes.normal,morphColors:void 0!==Ie.morphAttributes.color,morphTargetsCount:_t,morphTextureStride:Ht,numDirLights:B.directional.length,numPointLights:B.point.length,numSpotLights:B.spot.length,numSpotLightMaps:B.spotLightMap.length,numRectAreaLights:B.rectArea.length,numHemiLights:B.hemi.length,numDirLightShadows:B.directionalShadowMap.length,numPointLightShadows:B.pointShadowMap.length,numSpotLightShadows:B.spotShadowMap.length,numSpotLightShadowsWithMaps:B.numSpotLightShadowsWithMaps,numLightProbes:B.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:R.dithering,shadowMapEnabled:n.shadowMap.enabled&&ee.length>0,shadowMapType:n.shadowMap.type,toneMapping:Ms,decodeVideoTexture:je&&!0===R.map.isVideoTexture&&Br.getTransfer(R.map.colorSpace)===wo,premultipliedAlpha:R.premultipliedAlpha,doubleSided:2===R.side,flipSided:1===R.side,useDepthPacking:R.depthPacking>=0,depthPacking:R.depthPacking||0,index0AttributeName:R.index0AttributeName,extensionClipCullDistance:vr&&!0===R.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(vr&&!0===R.extensions.multiDraw||wt)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:R.customProgramCacheKey()};return ha.vertexUv1s=c.has(1),ha.vertexUv2s=c.has(2),ha.vertexUv3s=c.has(3),c.clear(),ha},getProgramCacheKey:function b(R){const B=[];if(R.shaderID?B.push(R.shaderID):(B.push(R.customVertexShaderID),B.push(R.customFragmentShaderID)),void 0!==R.defines)for(const ee in R.defines)B.push(ee),B.push(R.defines[ee]);return!1===R.isRawShaderMaterial&&(function M(R,B){R.push(B.precision),R.push(B.outputColorSpace),R.push(B.envMapMode),R.push(B.envMapCubeUVHeight),R.push(B.mapUv),R.push(B.alphaMapUv),R.push(B.lightMapUv),R.push(B.aoMapUv),R.push(B.bumpMapUv),R.push(B.normalMapUv),R.push(B.displacementMapUv),R.push(B.emissiveMapUv),R.push(B.metalnessMapUv),R.push(B.roughnessMapUv),R.push(B.anisotropyMapUv),R.push(B.clearcoatMapUv),R.push(B.clearcoatNormalMapUv),R.push(B.clearcoatRoughnessMapUv),R.push(B.iridescenceMapUv),R.push(B.iridescenceThicknessMapUv),R.push(B.sheenColorMapUv),R.push(B.sheenRoughnessMapUv),R.push(B.specularMapUv),R.push(B.specularColorMapUv),R.push(B.specularIntensityMapUv),R.push(B.transmissionMapUv),R.push(B.thicknessMapUv),R.push(B.combine),R.push(B.fogExp2),R.push(B.sizeAttenuation),R.push(B.morphTargetsCount),R.push(B.morphAttributeCount),R.push(B.numDirLights),R.push(B.numPointLights),R.push(B.numSpotLights),R.push(B.numSpotLightMaps),R.push(B.numHemiLights),R.push(B.numRectAreaLights),R.push(B.numDirLightShadows),R.push(B.numPointLightShadows),R.push(B.numSpotLightShadows),R.push(B.numSpotLightShadowsWithMaps),R.push(B.numLightProbes),R.push(B.shadowMapType),R.push(B.toneMapping),R.push(B.numClippingPlanes),R.push(B.numClipIntersection),R.push(B.depthPacking)}(B,R),function C(R,B){a.disableAll(),B.supportsVertexTextures&&a.enable(0),B.instancing&&a.enable(1),B.instancingColor&&a.enable(2),B.instancingMorph&&a.enable(3),B.matcap&&a.enable(4),B.envMap&&a.enable(5),B.normalMapObjectSpace&&a.enable(6),B.normalMapTangentSpace&&a.enable(7),B.clearcoat&&a.enable(8),B.iridescence&&a.enable(9),B.alphaTest&&a.enable(10),B.vertexColors&&a.enable(11),B.vertexAlphas&&a.enable(12),B.vertexUv1s&&a.enable(13),B.vertexUv2s&&a.enable(14),B.vertexUv3s&&a.enable(15),B.vertexTangents&&a.enable(16),B.anisotropy&&a.enable(17),B.alphaHash&&a.enable(18),B.batching&&a.enable(19),B.dispersion&&a.enable(20),B.batchingColor&&a.enable(21),R.push(a.mask),a.disableAll(),B.fog&&a.enable(0),B.useFog&&a.enable(1),B.flatShading&&a.enable(2),B.logarithmicDepthBuffer&&a.enable(3),B.skinning&&a.enable(4),B.morphTargets&&a.enable(5),B.morphNormals&&a.enable(6),B.morphColors&&a.enable(7),B.premultipliedAlpha&&a.enable(8),B.shadowMapEnabled&&a.enable(9),B.doubleSided&&a.enable(10),B.flipSided&&a.enable(11),B.useDepthPacking&&a.enable(12),B.dithering&&a.enable(13),B.transmission&&a.enable(14),B.sheen&&a.enable(15),B.opaque&&a.enable(16),B.pointsUvs&&a.enable(17),B.decodeVideoTexture&&a.enable(18),B.alphaToCoverage&&a.enable(19),R.push(a.mask)}(B,R),B.push(n.outputColorSpace)),B.push(R.customProgramCacheKey),B.join()},getUniforms:function E(R){const B=A[R.type];let ee;return ee=B?UO.clone(bu[B].uniforms):R.uniforms,ee},acquireProgram:function L(R,B){let ee;for(let we=0,Ee=d.length;we0?i.push(b):!0===f.transparent?r.push(b):e.push(b)},unshift:function l(u,h,f,A,y,_){const b=s(u,h,f,A,y,_);f.transmission>0?i.unshift(b):!0===f.transparent?r.unshift(b):e.unshift(b)},finish:function d(){for(let u=t,h=n.length;u1&&e.sort(u||gIe),i.length>1&&i.sort(h||QK),r.length>1&&r.sort(h||QK)}}}function _Ie(){let n=new WeakMap;return{get:function t(i,r){const o=n.get(i);let s;return void 0===o?(s=new zK,n.set(i,[s])):r>=o.length?(s=new zK,o.push(s)):s=o[r],s},dispose:function e(){n=new WeakMap}}}function bIe(){const n={};return{get:function(t){if(void 0!==n[t.id])return n[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new se,color:new tn};break;case"SpotLight":e={position:new se,direction:new se,color:new tn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new se,color:new tn,distance:0,decay:0};break;case"HemisphereLight":e={direction:new se,skyColor:new tn,groundColor:new tn};break;case"RectAreaLight":e={color:new tn,position:new se,halfWidth:new se,halfHeight:new se}}return n[t.id]=e,e}}}let yIe=0;function wIe(n,t){return(t.castShadow?2:0)-(n.castShadow?2:0)+(t.map?1:0)-(n.map?1:0)}function xIe(n){const t=new bIe,e=function vIe(){const n={};return{get:function(t){if(void 0!==n[t.id])return n[t.id];let e;switch(t.type){case"DirectionalLight":case"SpotLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new nt};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new nt,shadowCameraNear:1,shadowCameraFar:1e3}}return n[t.id]=e,e}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)i.probe.push(new se);const r=new se,o=new hi,s=new hi;return{setup:function a(c){let d=0,u=0,h=0;for(let R=0;R<9;R++)i.probe[R].set(0,0,0);let f=0,A=0,y=0,_=0,b=0,M=0,C=0,E=0,L=0,N=0,H=0;c.sort(wIe);for(let R=0,B=c.length;R0&&(!0===n.has("OES_texture_float_linear")?(i.rectAreaLTC1=pn.LTC_FLOAT_1,i.rectAreaLTC2=pn.LTC_FLOAT_2):(i.rectAreaLTC1=pn.LTC_HALF_1,i.rectAreaLTC2=pn.LTC_HALF_2)),i.ambient[0]=d,i.ambient[1]=u,i.ambient[2]=h;const j=i.hash;(j.directionalLength!==f||j.pointLength!==A||j.spotLength!==y||j.rectAreaLength!==_||j.hemiLength!==b||j.numDirectionalShadows!==M||j.numPointShadows!==C||j.numSpotShadows!==E||j.numSpotMaps!==L||j.numLightProbes!==H)&&(i.directional.length=f,i.spot.length=y,i.rectArea.length=_,i.point.length=A,i.hemi.length=b,i.directionalShadow.length=M,i.directionalShadowMap.length=M,i.pointShadow.length=C,i.pointShadowMap.length=C,i.spotShadow.length=E,i.spotShadowMap.length=E,i.directionalShadowMatrix.length=M,i.pointShadowMatrix.length=C,i.spotLightMatrix.length=E+L-N,i.spotLightMap.length=L,i.numSpotLightShadowsWithMaps=N,i.numLightProbes=H,j.directionalLength=f,j.pointLength=A,j.spotLength=y,j.rectAreaLength=_,j.hemiLength=b,j.numDirectionalShadows=M,j.numPointShadows=C,j.numSpotShadows=E,j.numSpotMaps=L,j.numLightProbes=H,i.version=yIe++)},setupView:function l(c,d){let u=0,h=0,f=0,A=0,y=0;const _=d.matrixWorldInverse;for(let b=0,M=c.length;b=s.length?(a=new qK(n),s.push(a)):a=s[o],a},dispose:function i(){t=new WeakMap}}}class GK extends Ya{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class WK extends Ya{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function SIe(n,t,e){let i=new zS;const r=new nt,o=new nt,s=new Wr,a=new GK({depthPacking:3201}),l=new WK,c={},d=e.maxTextureSize,u={0:1,1:0,2:2},h=new Al({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new nt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),f=h.clone();f.defines.HORIZONTAL_PASS=1;const A=new gi;A.setAttribute("position",new tr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new ki(A,h),_=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=MX;let b=this.type;function M(N,H){const j=t.update(y);h.defines.VSM_SAMPLES!==N.blurSamples&&(h.defines.VSM_SAMPLES=N.blurSamples,f.defines.VSM_SAMPLES=N.blurSamples,h.needsUpdate=!0,f.needsUpdate=!0),null===N.mapPass&&(N.mapPass=new Lc(r.x,r.y)),h.uniforms.shadow_pass.value=N.map.texture,h.uniforms.resolution.value=N.mapSize,h.uniforms.radius.value=N.radius,n.setRenderTarget(N.mapPass),n.clear(),n.renderBufferDirect(H,null,j,h,y,null),f.uniforms.shadow_pass.value=N.mapPass.texture,f.uniforms.resolution.value=N.mapSize,f.uniforms.radius.value=N.radius,n.setRenderTarget(N.map),n.clear(),n.renderBufferDirect(H,null,j,f,y,null)}function C(N,H,j,R){let B=null;const ee=!0===j.isPointLight?N.customDistanceMaterial:N.customDepthMaterial;if(void 0!==ee)B=ee;else if(B=!0===j.isPointLight?l:a,n.localClippingEnabled&&!0===H.clipShadows&&Array.isArray(H.clippingPlanes)&&0!==H.clippingPlanes.length||H.displacementMap&&0!==H.displacementScale||H.alphaMap&&H.alphaTest>0||H.map&&H.alphaTest>0){const we=B.uuid,Ee=H.uuid;let ne=c[we];void 0===ne&&(ne={},c[we]=ne);let Ie=ne[Ee];void 0===Ie&&(Ie=B.clone(),ne[Ee]=Ie,H.addEventListener("dispose",L)),B=Ie}return B.visible=H.visible,B.wireframe=H.wireframe,B.side=R===Rh?null!==H.shadowSide?H.shadowSide:H.side:null!==H.shadowSide?H.shadowSide:u[H.side],B.alphaMap=H.alphaMap,B.alphaTest=H.alphaTest,B.map=H.map,B.clipShadows=H.clipShadows,B.clippingPlanes=H.clippingPlanes,B.clipIntersection=H.clipIntersection,B.displacementMap=H.displacementMap,B.displacementScale=H.displacementScale,B.displacementBias=H.displacementBias,B.wireframeLinewidth=H.wireframeLinewidth,B.linewidth=H.linewidth,!0===j.isPointLight&&!0===B.isMeshDistanceMaterial&&(n.properties.get(B).light=j),B}function E(N,H,j,R,B){if(!1===N.visible)return;if(N.layers.test(H.layers)&&(N.isMesh||N.isLine||N.isPoints)&&(N.castShadow||N.receiveShadow&&B===Rh)&&(!N.frustumCulled||i.intersectsObject(N))){N.modelViewMatrix.multiplyMatrices(j.matrixWorldInverse,N.matrixWorld);const Ee=t.update(N),ne=N.material;if(Array.isArray(ne)){const Ie=Ee.groups;for(let te=0,Ae=Ie.length;ted||r.y>d)&&(r.x>d&&(o.x=Math.floor(d/Pe.x),r.x=o.x*Pe.x,le.mapSize.x=o.x),r.y>d&&(o.y=Math.floor(d/Pe.y),r.y=o.y*Pe.y,le.mapSize.y=o.y)),null===le.map||!0===Ee||!0===ne){const _t=this.type!==Rh?{minFilter:la,magFilter:la}:{};null!==le.map&&le.map.dispose(),le.map=new Lc(r.x,r.y,_t),le.map.texture.name=Ae.name+".shadowMap",le.camera.updateProjectionMatrix()}n.setRenderTarget(le.map),n.clear();const it=le.getViewportCount();for(let _t=0;_t=1):-1!==Ae.indexOf("OpenGL ES")&&(te=parseFloat(/^OpenGL ES (\d)/.exec(Ae)[1]),Ie=te>=2);let le=null,Pe={};const it=n.getParameter(n.SCISSOR_BOX),_t=n.getParameter(n.VIEWPORT),Ht=(new Wr).fromArray(it),cn=(new Wr).fromArray(_t);function ce(Ze,nn,zt,Gt){const un=new Uint8Array(4),Mi=n.createTexture();n.bindTexture(Ze,Mi),n.texParameteri(Ze,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(Ze,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let vr=0;vr"u")&&/OculusBrowser/g.test(navigator.userAgent),c=new nt,d=new WeakMap;let u;const h=new WeakMap;let f=!1;try{f=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function A(de,Y){return f?new OffscreenCanvas(de,Y):vw("canvas")}function y(de,Y,ft){let Ut=1;const Bt=be(de);if((Bt.width>ft||Bt.height>ft)&&(Ut=ft/Math.max(Bt.width,Bt.height)),Ut<1){if(typeof HTMLImageElement<"u"&&de instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&de instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&de instanceof ImageBitmap||typeof VideoFrame<"u"&&de instanceof VideoFrame){const Vt=Math.floor(Ut*Bt.width),$n=Math.floor(Ut*Bt.height);void 0===u&&(u=A(Vt,$n));const fn=Y?A(Vt,$n):u;return fn.width=Vt,fn.height=$n,fn.getContext("2d").drawImage(de,0,0,Vt,$n),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Bt.width+"x"+Bt.height+") to ("+Vt+"x"+$n+")."),fn}return"data"in de&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Bt.width+"x"+Bt.height+")."),de}return de}function _(de){return de.generateMipmaps&&de.minFilter!==la&&de.minFilter!==xs}function b(de){n.generateMipmap(de)}function M(de,Y,ft,Ut,Bt=!1){if(null!==de){if(void 0!==n[de])return n[de];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+de+"'")}let Vt=Y;if(Y===n.RED&&(ft===n.FLOAT&&(Vt=n.R32F),ft===n.HALF_FLOAT&&(Vt=n.R16F),ft===n.UNSIGNED_BYTE&&(Vt=n.R8)),Y===n.RED_INTEGER&&(ft===n.UNSIGNED_BYTE&&(Vt=n.R8UI),ft===n.UNSIGNED_SHORT&&(Vt=n.R16UI),ft===n.UNSIGNED_INT&&(Vt=n.R32UI),ft===n.BYTE&&(Vt=n.R8I),ft===n.SHORT&&(Vt=n.R16I),ft===n.INT&&(Vt=n.R32I)),Y===n.RG&&(ft===n.FLOAT&&(Vt=n.RG32F),ft===n.HALF_FLOAT&&(Vt=n.RG16F),ft===n.UNSIGNED_BYTE&&(Vt=n.RG8)),Y===n.RG_INTEGER&&(ft===n.UNSIGNED_BYTE&&(Vt=n.RG8UI),ft===n.UNSIGNED_SHORT&&(Vt=n.RG16UI),ft===n.UNSIGNED_INT&&(Vt=n.RG32UI),ft===n.BYTE&&(Vt=n.RG8I),ft===n.SHORT&&(Vt=n.RG16I),ft===n.INT&&(Vt=n.RG32I)),Y===n.RGB&&ft===n.UNSIGNED_INT_5_9_9_9_REV&&(Vt=n.RGB9_E5),Y===n.RGBA){const $n=Bt?bS:Br.getTransfer(Ut);ft===n.FLOAT&&(Vt=n.RGBA32F),ft===n.HALF_FLOAT&&(Vt=n.RGBA16F),ft===n.UNSIGNED_BYTE&&(Vt=$n===wo?n.SRGB8_ALPHA8:n.RGBA8),ft===n.UNSIGNED_SHORT_4_4_4_4&&(Vt=n.RGBA4),ft===n.UNSIGNED_SHORT_5_5_5_1&&(Vt=n.RGB5_A1)}return(Vt===n.R16F||Vt===n.R32F||Vt===n.RG16F||Vt===n.RG32F||Vt===n.RGBA16F||Vt===n.RGBA32F)&&t.get("EXT_color_buffer_float"),Vt}function C(de,Y){let ft;return de?null===Y||Y===wm||Y===M_?ft=n.DEPTH24_STENCIL8:Y===ic?ft=n.DEPTH32F_STENCIL8:Y===_w&&(ft=n.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===Y||Y===wm||Y===M_?ft=n.DEPTH_COMPONENT24:Y===ic?ft=n.DEPTH_COMPONENT32F:Y===_w&&(ft=n.DEPTH_COMPONENT16),ft}function E(de,Y){return!0===_(de)||de.isFramebufferTexture&&de.minFilter!==la&&de.minFilter!==xs?Math.log2(Math.max(Y.width,Y.height))+1:void 0!==de.mipmaps&&de.mipmaps.length>0?de.mipmaps.length:de.isCompressedTexture&&Array.isArray(de.image)?Y.mipmaps.length:1}function L(de){const Y=de.target;Y.removeEventListener("dispose",L),function H(de){const Y=i.get(de);if(void 0===Y.__webglInit)return;const ft=de.source,Ut=h.get(ft);if(Ut){const Bt=Ut[Y.__cacheKey];Bt.usedTimes--,0===Bt.usedTimes&&j(de),0===Object.keys(Ut).length&&h.delete(ft)}i.remove(de)}(Y),Y.isVideoTexture&&d.delete(Y)}function N(de){const Y=de.target;Y.removeEventListener("dispose",N),function R(de){const Y=i.get(de);if(de.depthTexture&&de.depthTexture.dispose(),de.isWebGLCubeRenderTarget)for(let Ut=0;Ut<6;Ut++){if(Array.isArray(Y.__webglFramebuffer[Ut]))for(let Bt=0;Bt0&&ft.__version!==de.version){const Ut=de.image;if(null===Ut)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==Ut.complete)return void cn(ft,de,Y);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}e.bindTexture(n.TEXTURE_2D,ft.__webglTexture,n.TEXTURE0+Y)}const le={[x_]:n.REPEAT,[_d]:n.CLAMP_TO_EDGE,1002:n.MIRRORED_REPEAT},Pe={[la]:n.NEAREST,1004:n.NEAREST_MIPMAP_NEAREST,1005:n.NEAREST_MIPMAP_LINEAR,[xs]:n.LINEAR,1007:n.LINEAR_MIPMAP_NEAREST,[Nh]:n.LINEAR_MIPMAP_LINEAR},it={512:n.NEVER,519:n.ALWAYS,513:n.LESS,515:n.LEQUAL,514:n.EQUAL,518:n.GEQUAL,516:n.GREATER,517:n.NOTEQUAL};function _t(de,Y){if(Y.type===ic&&!1===t.has("OES_texture_float_linear")&&(Y.magFilter===xs||1007===Y.magFilter||1005===Y.magFilter||Y.magFilter===Nh||Y.minFilter===xs||1007===Y.minFilter||1005===Y.minFilter||Y.minFilter===Nh)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(de,n.TEXTURE_WRAP_S,le[Y.wrapS]),n.texParameteri(de,n.TEXTURE_WRAP_T,le[Y.wrapT]),(de===n.TEXTURE_3D||de===n.TEXTURE_2D_ARRAY)&&n.texParameteri(de,n.TEXTURE_WRAP_R,le[Y.wrapR]),n.texParameteri(de,n.TEXTURE_MAG_FILTER,Pe[Y.magFilter]),n.texParameteri(de,n.TEXTURE_MIN_FILTER,Pe[Y.minFilter]),Y.compareFunction&&(n.texParameteri(de,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(de,n.TEXTURE_COMPARE_FUNC,it[Y.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){if(Y.magFilter===la||1005!==Y.minFilter&&Y.minFilter!==Nh||Y.type===ic&&!1===t.has("OES_texture_float_linear"))return;if(Y.anisotropy>1||i.get(Y).__currentAnisotropy){const ft=t.get("EXT_texture_filter_anisotropic");n.texParameterf(de,ft.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Y.anisotropy,r.getMaxAnisotropy())),i.get(Y).__currentAnisotropy=Y.anisotropy}}}function Ht(de,Y){let ft=!1;void 0===de.__webglInit&&(de.__webglInit=!0,Y.addEventListener("dispose",L));const Ut=Y.source;let Bt=h.get(Ut);void 0===Bt&&(Bt={},h.set(Ut,Bt));const Vt=function Ee(de){const Y=[];return Y.push(de.wrapS),Y.push(de.wrapT),Y.push(de.wrapR||0),Y.push(de.magFilter),Y.push(de.minFilter),Y.push(de.anisotropy),Y.push(de.internalFormat),Y.push(de.format),Y.push(de.type),Y.push(de.generateMipmaps),Y.push(de.premultiplyAlpha),Y.push(de.flipY),Y.push(de.unpackAlignment),Y.push(de.colorSpace),Y.join()}(Y);if(Vt!==de.__cacheKey){void 0===Bt[Vt]&&(Bt[Vt]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,ft=!0),Bt[Vt].usedTimes++;const $n=Bt[de.__cacheKey];void 0!==$n&&(Bt[de.__cacheKey].usedTimes--,0===$n.usedTimes&&j(Y)),de.__cacheKey=Vt,de.__webglTexture=Bt[Vt].texture}return ft}function cn(de,Y,ft){let Ut=n.TEXTURE_2D;(Y.isDataArrayTexture||Y.isCompressedArrayTexture)&&(Ut=n.TEXTURE_2D_ARRAY),Y.isData3DTexture&&(Ut=n.TEXTURE_3D);const Bt=Ht(de,Y),Vt=Y.source;e.bindTexture(Ut,de.__webglTexture,n.TEXTURE0+ft);const $n=i.get(Vt);if(Vt.version!==$n.__version||!0===Bt){e.activeTexture(n.TEXTURE0+ft);const fn=Br.getPrimaries(Br.workingColorSpace),xn=""===Y.colorSpace?null:Br.getPrimaries(Y.colorSpace),Ei=""===Y.colorSpace||fn===xn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,Y.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Y.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,Y.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ei);let Zt=y(Y.image,!1,r.maxTextureSize);Zt=Ce(Y,Zt);const Cn=o.convert(Y.format,Y.colorSpace),cr=o.convert(Y.type);let Rn,Ci=M(Y.internalFormat,Cn,cr,Y.colorSpace,Y.isVideoTexture);_t(Ut,Y);const Bi=Y.mipmaps,nr=!0!==Y.isVideoTexture,Vo=void 0===$n.__version||!0===Bt,Ze=Vt.dataReady,nn=E(Y,Zt);if(Y.isDepthTexture)Ci=C(Y.format===S_,Y.type),Vo&&(nr?e.texStorage2D(n.TEXTURE_2D,1,Ci,Zt.width,Zt.height):e.texImage2D(n.TEXTURE_2D,0,Ci,Zt.width,Zt.height,0,Cn,cr,null));else if(Y.isDataTexture)if(Bi.length>0){nr&&Vo&&e.texStorage2D(n.TEXTURE_2D,nn,Ci,Bi[0].width,Bi[0].height);for(let zt=0,Gt=Bi.length;zt0){const un=KO(Rn.width,Rn.height,Y.format,Y.type);for(const Mi of Y.layerUpdates){const vr=Rn.data.subarray(Mi*un/Rn.data.BYTES_PER_ELEMENT,(Mi+1)*un/Rn.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,zt,0,0,Mi,Rn.width,Rn.height,1,Cn,vr,0,0)}Y.clearLayerUpdates()}else e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,zt,0,0,0,Rn.width,Rn.height,Zt.depth,Cn,Rn.data,0,0)}else e.compressedTexImage3D(n.TEXTURE_2D_ARRAY,zt,Ci,Rn.width,Rn.height,Zt.depth,0,Rn.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else nr?Ze&&e.texSubImage3D(n.TEXTURE_2D_ARRAY,zt,0,0,0,Rn.width,Rn.height,Zt.depth,Cn,cr,Rn.data):e.texImage3D(n.TEXTURE_2D_ARRAY,zt,Ci,Rn.width,Rn.height,Zt.depth,0,Cn,cr,Rn.data)}else{nr&&Vo&&e.texStorage2D(n.TEXTURE_2D,nn,Ci,Bi[0].width,Bi[0].height);for(let zt=0,Gt=Bi.length;zt0){const zt=KO(Zt.width,Zt.height,Y.format,Y.type);for(const Gt of Y.layerUpdates){const un=Zt.data.subarray(Gt*zt/Zt.data.BYTES_PER_ELEMENT,(Gt+1)*zt/Zt.data.BYTES_PER_ELEMENT);e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,Gt,Zt.width,Zt.height,1,Cn,cr,un)}Y.clearLayerUpdates()}else e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,Zt.width,Zt.height,Zt.depth,Cn,cr,Zt.data)}else e.texImage3D(n.TEXTURE_2D_ARRAY,0,Ci,Zt.width,Zt.height,Zt.depth,0,Cn,cr,Zt.data);else if(Y.isData3DTexture)nr?(Vo&&e.texStorage3D(n.TEXTURE_3D,nn,Ci,Zt.width,Zt.height,Zt.depth),Ze&&e.texSubImage3D(n.TEXTURE_3D,0,0,0,0,Zt.width,Zt.height,Zt.depth,Cn,cr,Zt.data)):e.texImage3D(n.TEXTURE_3D,0,Ci,Zt.width,Zt.height,Zt.depth,0,Cn,cr,Zt.data);else if(Y.isFramebufferTexture){if(Vo)if(nr)e.texStorage2D(n.TEXTURE_2D,nn,Ci,Zt.width,Zt.height);else{let zt=Zt.width,Gt=Zt.height;for(let un=0;un>=1,Gt>>=1}}else if(Bi.length>0){if(nr&&Vo){const zt=be(Bi[0]);e.texStorage2D(n.TEXTURE_2D,nn,Ci,zt.width,zt.height)}for(let zt=0,Gt=Bi.length;zt>Vt),Cn=Math.max(1,Y.height>>Vt);Bt===n.TEXTURE_3D||Bt===n.TEXTURE_2D_ARRAY?e.texImage3D(Bt,Vt,xn,Zt,Cn,Y.depth,0,$n,fn,null):e.texImage2D(Bt,Vt,xn,Zt,Cn,0,$n,fn,null)}e.bindFramebuffer(n.FRAMEBUFFER,de),ot(Y)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Ut,Bt,i.get(ft).__webglTexture,0,At(Y)):(Bt===n.TEXTURE_2D||Bt>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&Bt<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Ut,Bt,i.get(ft).__webglTexture,Vt),e.bindFramebuffer(n.FRAMEBUFFER,null)}function ae(de,Y,ft){if(n.bindRenderbuffer(n.RENDERBUFFER,de),Y.depthBuffer){const Ut=Y.depthTexture,Vt=C(Y.stencilBuffer,Ut&&Ut.isDepthTexture?Ut.type:null),$n=Y.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,fn=At(Y);ot(Y)?a.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,fn,Vt,Y.width,Y.height):ft?n.renderbufferStorageMultisample(n.RENDERBUFFER,fn,Vt,Y.width,Y.height):n.renderbufferStorage(n.RENDERBUFFER,Vt,Y.width,Y.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,$n,n.RENDERBUFFER,de)}else{const Ut=Y.textures;for(let Bt=0;Bt{delete Y.__boundDepthTexture,delete Y.__depthDisposeCallback,Ut.removeEventListener("dispose",Bt)};Ut.addEventListener("dispose",Bt),Y.__depthDisposeCallback=Bt}Y.__boundDepthTexture=Ut}if(de.depthTexture&&!Y.__autoAllocateDepthBuffer){if(ft)throw new Error("target.depthTexture not supported in Cube render targets");!function Z(de,Y){if(Y&&Y.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(n.FRAMEBUFFER,de),!Y.depthTexture||!Y.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(Y.depthTexture).__webglTexture||Y.depthTexture.image.width!==Y.width||Y.depthTexture.image.height!==Y.height)&&(Y.depthTexture.image.width=Y.width,Y.depthTexture.image.height=Y.height,Y.depthTexture.needsUpdate=!0),ne(Y.depthTexture,0);const Ut=i.get(Y.depthTexture).__webglTexture,Bt=At(Y);if(Y.depthTexture.format===E_)ot(Y)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ut,0,Bt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ut,0);else{if(Y.depthTexture.format!==S_)throw new Error("Unknown depthTexture format");ot(Y)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ut,0,Bt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ut,0)}}(Y.__webglFramebuffer,de)}else if(ft){Y.__webglDepthbuffer=[];for(let Ut=0;Ut<6;Ut++)if(e.bindFramebuffer(n.FRAMEBUFFER,Y.__webglFramebuffer[Ut]),void 0===Y.__webglDepthbuffer[Ut])Y.__webglDepthbuffer[Ut]=n.createRenderbuffer(),ae(Y.__webglDepthbuffer[Ut],de,!1);else{const Bt=de.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Vt=Y.__webglDepthbuffer[Ut];n.bindRenderbuffer(n.RENDERBUFFER,Vt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Bt,n.RENDERBUFFER,Vt)}}else if(e.bindFramebuffer(n.FRAMEBUFFER,Y.__webglFramebuffer),void 0===Y.__webglDepthbuffer)Y.__webglDepthbuffer=n.createRenderbuffer(),ae(Y.__webglDepthbuffer,de,!1);else{const Ut=de.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Bt=Y.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,Bt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ut,n.RENDERBUFFER,Bt)}e.bindFramebuffer(n.FRAMEBUFFER,null)}const re=[],ht=[];function At(de){return Math.min(r.maxSamples,de.samples)}function ot(de){const Y=i.get(de);return de.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==Y.__useRenderToTexture}function Ce(de,Y){const ft=de.colorSpace,Ut=de.format,Bt=de.type;return!0===de.isCompressedTexture||!0===de.isVideoTexture||ft!==Cm&&""!==ft&&(Br.getTransfer(ft)===wo?(Ut!==$a||Bt!==Uh)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ft)),Y}function be(de){return typeof HTMLImageElement<"u"&&de instanceof HTMLImageElement?(c.width=de.naturalWidth||de.width,c.height=de.naturalHeight||de.height):typeof VideoFrame<"u"&&de instanceof VideoFrame?(c.width=de.displayWidth,c.height=de.displayHeight):(c.width=de.width,c.height=de.height),c}this.allocateTextureUnit=function we(){const de=B;return de>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+de+" texture units while this GPU supports only "+r.maxTextures),B+=1,de},this.resetTextureUnits=function ee(){B=0},this.setTexture2D=ne,this.setTexture2DArray=function Ie(de,Y){const ft=i.get(de);de.version>0&&ft.__version!==de.version?cn(ft,de,Y):e.bindTexture(n.TEXTURE_2D_ARRAY,ft.__webglTexture,n.TEXTURE0+Y)},this.setTexture3D=function te(de,Y){const ft=i.get(de);de.version>0&&ft.__version!==de.version?cn(ft,de,Y):e.bindTexture(n.TEXTURE_3D,ft.__webglTexture,n.TEXTURE0+Y)},this.setTextureCube=function Ae(de,Y){const ft=i.get(de);de.version>0&&ft.__version!==de.version?function ce(de,Y,ft){if(6!==Y.image.length)return;const Ut=Ht(de,Y),Bt=Y.source;e.bindTexture(n.TEXTURE_CUBE_MAP,de.__webglTexture,n.TEXTURE0+ft);const Vt=i.get(Bt);if(Bt.version!==Vt.__version||!0===Ut){e.activeTexture(n.TEXTURE0+ft);const $n=Br.getPrimaries(Br.workingColorSpace),fn=""===Y.colorSpace?null:Br.getPrimaries(Y.colorSpace),xn=""===Y.colorSpace||$n===fn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,Y.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Y.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,Y.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,xn);const Ei=Y.isCompressedTexture||Y.image[0].isCompressedTexture,Zt=Y.image[0]&&Y.image[0].isDataTexture,Cn=[];for(let Gt=0;Gt<6;Gt++)Cn[Gt]=Ei||Zt?Zt?Y.image[Gt].image:Y.image[Gt]:y(Y.image[Gt],!0,r.maxCubemapSize),Cn[Gt]=Ce(Y,Cn[Gt]);const cr=Cn[0],Ci=o.convert(Y.format,Y.colorSpace),Rn=o.convert(Y.type),Bi=M(Y.internalFormat,Ci,Rn,Y.colorSpace),nr=!0!==Y.isVideoTexture,Vo=void 0===Vt.__version||!0===Ut,Ze=Bt.dataReady;let zt,nn=E(Y,cr);if(_t(n.TEXTURE_CUBE_MAP,Y),Ei){nr&&Vo&&e.texStorage2D(n.TEXTURE_CUBE_MAP,nn,Bi,cr.width,cr.height);for(let Gt=0;Gt<6;Gt++){zt=Cn[Gt].mipmaps;for(let un=0;un0&&nn++;const Gt=be(Cn[0]);e.texStorage2D(n.TEXTURE_CUBE_MAP,nn,Bi,Gt.width,Gt.height)}for(let Gt=0;Gt<6;Gt++)if(Zt){nr?Ze&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Gt,0,0,0,Cn[Gt].width,Cn[Gt].height,Ci,Rn,Cn[Gt].data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Gt,0,Bi,Cn[Gt].width,Cn[Gt].height,0,Ci,Rn,Cn[Gt].data);for(let un=0;un1;if($n||(void 0===Ut.__webglTexture&&(Ut.__webglTexture=n.createTexture()),Ut.__version=Y.version,s.memory.textures++),Vt){ft.__webglFramebuffer=[];for(let fn=0;fn<6;fn++)if(Y.mipmaps&&Y.mipmaps.length>0){ft.__webglFramebuffer[fn]=[];for(let xn=0;xn0){ft.__webglFramebuffer=[];for(let fn=0;fn0&&!1===ot(de)){ft.__webglMultisampledFramebuffer=n.createFramebuffer(),ft.__webglColorRenderbuffer=[],e.bindFramebuffer(n.FRAMEBUFFER,ft.__webglMultisampledFramebuffer);for(let fn=0;fn0)for(let xn=0;xn0)for(let xn=0;xn0)if(!1===ot(de)){const Y=de.textures,ft=de.width,Ut=de.height;let Bt=n.COLOR_BUFFER_BIT;const Vt=de.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,$n=i.get(de),fn=Y.length>1;if(fn)for(let xn=0;xnf+A?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&h<=f-A&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==l&&t.gripSpace&&(o=e.getPose(t.gripSpace,i),null!==o&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1));null!==a&&(r=e.getPose(t.targetRaySpace,i),null===r&&null!==o&&(r=o),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(OIe)))}return null!==a&&(a.visible=null!==r),null!==l&&(l.visible=null!==o),null!==c&&(c.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const i=new gl;i.matrixAutoUpdate=!1,i.visible=!1,t.joints[e.jointName]=i,t.add(i)}return t.joints[e.jointName]}}class UIe{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,i){if(null===this.texture){const r=new Xa;t.properties.get(r).__webglTexture=e.texture,(e.depthNear!=i.depthNear||e.depthFar!=i.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}getMesh(t){if(null!==this.texture&&null===this.mesh){const e=t.cameras[0].viewport,i=new Al({vertexShader:"\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",fragmentShader:"\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}",uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new ki(new Z_(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class HIe extends Vh{constructor(t,e){super();const i=this;let r=null,o=1,s=null,a="local-floor",l=1,c=null,d=null,u=null,h=null,f=null,A=null;const y=new UIe,_=e.getContextAttributes();let b=null,M=null;const C=[],E=[],L=new nt;let N=null;const H=new Hs;H.layers.enable(1),H.viewport=new Wr;const j=new Hs;j.layers.enable(2),j.viewport=new Wr;const R=[H,j],B=new RIe;B.layers.enable(1),B.layers.enable(2);let ee=null,we=null;function Ee(ce){const ue=E.indexOf(ce.inputSource);if(-1===ue)return;const ae=C[ue];void 0!==ae&&(ae.update(ce.inputSource,ce.frame,c||s),ae.dispatchEvent({type:ce.type,data:ce.inputSource}))}function ne(){r.removeEventListener("select",Ee),r.removeEventListener("selectstart",Ee),r.removeEventListener("selectend",Ee),r.removeEventListener("squeeze",Ee),r.removeEventListener("squeezestart",Ee),r.removeEventListener("squeezeend",Ee),r.removeEventListener("end",ne),r.removeEventListener("inputsourceschange",Ie);for(let ce=0;ce=0&&(E[Z]=null,C[Z].disconnect(ae))}for(let ue=0;ue=E.length){E.push(ae),Z=wt;break}if(null===E[wt]){E[wt]=ae,Z=wt;break}}if(-1===Z)break}const $e=C[Z];$e&&$e.connect(ae)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ce){let ue=C[ce];return void 0===ue&&(ue=new YO,C[ce]=ue),ue.getTargetRaySpace()},this.getControllerGrip=function(ce){let ue=C[ce];return void 0===ue&&(ue=new YO,C[ce]=ue),ue.getGripSpace()},this.getHand=function(ce){let ue=C[ce];return void 0===ue&&(ue=new YO,C[ce]=ue),ue.getHandSpace()},this.setFramebufferScaleFactor=function(ce){o=ce,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(ce){a=ce,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(ce){c=ce},this.getBaseLayer=function(){return null!==h?h:f},this.getBinding=function(){return u},this.getFrame=function(){return A},this.getSession=function(){return r},this.setSession=function(){var ce=k(function*(ue){if(r=ue,null!==r){if(b=t.getRenderTarget(),r.addEventListener("select",Ee),r.addEventListener("selectstart",Ee),r.addEventListener("selectend",Ee),r.addEventListener("squeeze",Ee),r.addEventListener("squeezestart",Ee),r.addEventListener("squeezeend",Ee),r.addEventListener("end",ne),r.addEventListener("inputsourceschange",Ie),!0!==_.xrCompatible&&(yield e.makeXRCompatible()),N=t.getPixelRatio(),t.getSize(L),void 0===r.renderState.layers)f=new XRWebGLLayer(r,e,{antialias:_.antialias,alpha:!0,depth:_.depth,stencil:_.stencil,framebufferScaleFactor:o}),r.updateRenderState({baseLayer:f}),t.setPixelRatio(1),t.setSize(f.framebufferWidth,f.framebufferHeight,!1),M=new Lc(f.framebufferWidth,f.framebufferHeight,{format:$a,type:Uh,colorSpace:t.outputColorSpace,stencilBuffer:_.stencil});else{let ae=null,Z=null,$e=null;_.depth&&($e=_.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,ae=_.stencil?S_:E_,Z=_.stencil?M_:wm);const wt={colorFormat:e.RGBA8,depthFormat:$e,scaleFactor:o};u=new XRWebGLBinding(r,e),h=u.createProjectionLayer(wt),r.updateRenderState({layers:[h]}),t.setPixelRatio(1),t.setSize(h.textureWidth,h.textureHeight,!1),M=new Lc(h.textureWidth,h.textureHeight,{format:$a,type:Uh,depthTexture:new CK(h.textureWidth,h.textureHeight,Z,void 0,void 0,void 0,void 0,void 0,void 0,ae),stencilBuffer:_.stencil,colorSpace:t.outputColorSpace,samples:_.antialias?4:0,resolveDepthBuffer:!1===h.ignoreDepthValues})}M.isXRRenderTarget=!0,this.setFoveation(l),c=null,s=yield r.requestReferenceSpace(a),cn.setContext(r),cn.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(ue){return ce.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode},this.getDepthTexture=function(){return y.getDepthTexture()};const te=new se,Ae=new se;function Pe(ce,ue){null===ue?ce.matrixWorld.copy(ce.matrix):ce.matrixWorld.multiplyMatrices(ue.matrixWorld,ce.matrix),ce.matrixWorldInverse.copy(ce.matrixWorld).invert()}this.updateCamera=function(ce){if(null===r)return;let ue=ce.near,ae=ce.far;null!==y.texture&&(y.depthNear>0&&(ue=y.depthNear),y.depthFar>0&&(ae=y.depthFar)),B.near=j.near=H.near=ue,B.far=j.far=H.far=ae,(ee!==B.near||we!==B.far)&&(r.updateRenderState({depthNear:B.near,depthFar:B.far}),ee=B.near,we=B.far);const Z=ce.parent,$e=B.cameras;Pe(B,Z);for(let wt=0;wt<$e.length;wt++)Pe($e[wt],Z);2===$e.length?function le(ce,ue,ae){te.setFromMatrixPosition(ue.matrixWorld),Ae.setFromMatrixPosition(ae.matrixWorld);const Z=te.distanceTo(Ae),$e=ue.projectionMatrix.elements,wt=ae.projectionMatrix.elements,je=$e[14]/($e[10]-1),Nt=$e[14]/($e[10]+1),re=($e[9]+1)/$e[5],ht=($e[9]-1)/$e[5],Ve=($e[8]-1)/$e[0],At=(wt[8]+1)/wt[0],ot=je*Ve,vt=je*At,Ce=Z/(-Ve+At),be=Ce*-Ve;if(ue.matrixWorld.decompose(ce.position,ce.quaternion,ce.scale),ce.translateX(be),ce.translateZ(Ce),ce.matrixWorld.compose(ce.position,ce.quaternion,ce.scale),ce.matrixWorldInverse.copy(ce.matrixWorld).invert(),-1===$e[10])ce.projectionMatrix.copy(ue.projectionMatrix),ce.projectionMatrixInverse.copy(ue.projectionMatrixInverse);else{const de=je+Ce,Y=Nt+Ce;ce.projectionMatrix.makePerspective(ot-be,vt+(Z-be),re*Nt/Y*de,ht*Nt/Y*de,de,Y),ce.projectionMatrixInverse.copy(ce.projectionMatrix).invert()}}(B,H,j):B.projectionMatrix.copy(H.projectionMatrix),function it(ce,ue,ae){null===ae?ce.matrix.copy(ue.matrixWorld):(ce.matrix.copy(ae.matrixWorld),ce.matrix.invert(),ce.matrix.multiply(ue.matrixWorld)),ce.matrix.decompose(ce.position,ce.quaternion,ce.scale),ce.updateMatrixWorld(!0),ce.projectionMatrix.copy(ue.projectionMatrix),ce.projectionMatrixInverse.copy(ue.projectionMatrixInverse),ce.isPerspectiveCamera&&(ce.fov=2*D_*Math.atan(1/ce.projectionMatrix.elements[5]),ce.zoom=1)}(ce,B,Z)},this.getCamera=function(){return B},this.getFoveation=function(){if(null!==h||null!==f)return l},this.setFoveation=function(ce){l=ce,null!==h&&(h.fixedFoveation=ce),null!==f&&void 0!==f.fixedFoveation&&(f.fixedFoveation=ce)},this.hasDepthSensing=function(){return null!==y.texture},this.getDepthSensingMesh=function(){return y.getMesh(B)};let _t=null;const cn=new AK;cn.setAnimationLoop(function Ht(ce,ue){if(d=ue.getViewerPose(c||s),A=ue,null!==d){const ae=d.views;null!==f&&(t.setRenderTargetFramebuffer(M,f.framebuffer),t.setRenderTarget(M));let Z=!1;ae.length!==B.cameras.length&&(B.cameras.length=0,Z=!0);for(let wt=0;wt0&&(_.alphaTest.value=b.alphaTest);const M=t.get(b),C=M.envMap,E=M.envMapRotation;C&&(_.envMap.value=C,UA.copy(E),UA.x*=-1,UA.y*=-1,UA.z*=-1,C.isCubeTexture&&!1===C.isRenderTargetTexture&&(UA.y*=-1,UA.z*=-1),_.envMapRotation.value.setFromMatrix4(VIe.makeRotationFromEuler(UA)),_.flipEnvMap.value=C.isCubeTexture&&!1===C.isRenderTargetTexture?-1:1,_.reflectivity.value=b.reflectivity,_.ior.value=b.ior,_.refractionRatio.value=b.refractionRatio),b.lightMap&&(_.lightMap.value=b.lightMap,_.lightMapIntensity.value=b.lightMapIntensity,e(b.lightMap,_.lightMapTransform)),b.aoMap&&(_.aoMap.value=b.aoMap,_.aoMapIntensity.value=b.aoMapIntensity,e(b.aoMap,_.aoMapTransform))}return{refreshFogUniforms:function i(_,b){b.color.getRGB(_.fogColor.value,fK(n)),b.isFog?(_.fogNear.value=b.near,_.fogFar.value=b.far):b.isFogExp2&&(_.fogDensity.value=b.density)},refreshMaterialUniforms:function r(_,b,M,C,E){b.isMeshBasicMaterial||b.isMeshLambertMaterial?o(_,b):b.isMeshToonMaterial?(o(_,b),function u(_,b){b.gradientMap&&(_.gradientMap.value=b.gradientMap)}(_,b)):b.isMeshPhongMaterial?(o(_,b),function d(_,b){_.specular.value.copy(b.specular),_.shininess.value=Math.max(b.shininess,1e-4)}(_,b)):b.isMeshStandardMaterial?(o(_,b),function h(_,b){_.metalness.value=b.metalness,b.metalnessMap&&(_.metalnessMap.value=b.metalnessMap,e(b.metalnessMap,_.metalnessMapTransform)),_.roughness.value=b.roughness,b.roughnessMap&&(_.roughnessMap.value=b.roughnessMap,e(b.roughnessMap,_.roughnessMapTransform)),b.envMap&&(_.envMapIntensity.value=b.envMapIntensity)}(_,b),b.isMeshPhysicalMaterial&&function f(_,b,M){_.ior.value=b.ior,b.sheen>0&&(_.sheenColor.value.copy(b.sheenColor).multiplyScalar(b.sheen),_.sheenRoughness.value=b.sheenRoughness,b.sheenColorMap&&(_.sheenColorMap.value=b.sheenColorMap,e(b.sheenColorMap,_.sheenColorMapTransform)),b.sheenRoughnessMap&&(_.sheenRoughnessMap.value=b.sheenRoughnessMap,e(b.sheenRoughnessMap,_.sheenRoughnessMapTransform))),b.clearcoat>0&&(_.clearcoat.value=b.clearcoat,_.clearcoatRoughness.value=b.clearcoatRoughness,b.clearcoatMap&&(_.clearcoatMap.value=b.clearcoatMap,e(b.clearcoatMap,_.clearcoatMapTransform)),b.clearcoatRoughnessMap&&(_.clearcoatRoughnessMap.value=b.clearcoatRoughnessMap,e(b.clearcoatRoughnessMap,_.clearcoatRoughnessMapTransform)),b.clearcoatNormalMap&&(_.clearcoatNormalMap.value=b.clearcoatNormalMap,e(b.clearcoatNormalMap,_.clearcoatNormalMapTransform),_.clearcoatNormalScale.value.copy(b.clearcoatNormalScale),1===b.side&&_.clearcoatNormalScale.value.negate())),b.dispersion>0&&(_.dispersion.value=b.dispersion),b.iridescence>0&&(_.iridescence.value=b.iridescence,_.iridescenceIOR.value=b.iridescenceIOR,_.iridescenceThicknessMinimum.value=b.iridescenceThicknessRange[0],_.iridescenceThicknessMaximum.value=b.iridescenceThicknessRange[1],b.iridescenceMap&&(_.iridescenceMap.value=b.iridescenceMap,e(b.iridescenceMap,_.iridescenceMapTransform)),b.iridescenceThicknessMap&&(_.iridescenceThicknessMap.value=b.iridescenceThicknessMap,e(b.iridescenceThicknessMap,_.iridescenceThicknessMapTransform))),b.transmission>0&&(_.transmission.value=b.transmission,_.transmissionSamplerMap.value=M.texture,_.transmissionSamplerSize.value.set(M.width,M.height),b.transmissionMap&&(_.transmissionMap.value=b.transmissionMap,e(b.transmissionMap,_.transmissionMapTransform)),_.thickness.value=b.thickness,b.thicknessMap&&(_.thicknessMap.value=b.thicknessMap,e(b.thicknessMap,_.thicknessMapTransform)),_.attenuationDistance.value=b.attenuationDistance,_.attenuationColor.value.copy(b.attenuationColor)),b.anisotropy>0&&(_.anisotropyVector.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation)),b.anisotropyMap&&(_.anisotropyMap.value=b.anisotropyMap,e(b.anisotropyMap,_.anisotropyMapTransform))),_.specularIntensity.value=b.specularIntensity,_.specularColor.value.copy(b.specularColor),b.specularColorMap&&(_.specularColorMap.value=b.specularColorMap,e(b.specularColorMap,_.specularColorMapTransform)),b.specularIntensityMap&&(_.specularIntensityMap.value=b.specularIntensityMap,e(b.specularIntensityMap,_.specularIntensityMapTransform))}(_,b,E)):b.isMeshMatcapMaterial?(o(_,b),function A(_,b){b.matcap&&(_.matcap.value=b.matcap)}(_,b)):b.isMeshDepthMaterial?o(_,b):b.isMeshDistanceMaterial?(o(_,b),function y(_,b){const M=t.get(b).light;_.referencePosition.value.setFromMatrixPosition(M.matrixWorld),_.nearDistance.value=M.shadow.camera.near,_.farDistance.value=M.shadow.camera.far}(_,b)):b.isMeshNormalMaterial?o(_,b):b.isLineBasicMaterial?(function s(_,b){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,b.map&&(_.map.value=b.map,e(b.map,_.mapTransform))}(_,b),b.isLineDashedMaterial&&function a(_,b){_.dashSize.value=b.dashSize,_.totalSize.value=b.dashSize+b.gapSize,_.scale.value=b.scale}(_,b)):b.isPointsMaterial?function l(_,b,M,C){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,_.size.value=b.size*M,_.scale.value=.5*C,b.map&&(_.map.value=b.map,e(b.map,_.uvTransform)),b.alphaMap&&(_.alphaMap.value=b.alphaMap,e(b.alphaMap,_.alphaMapTransform)),b.alphaTest>0&&(_.alphaTest.value=b.alphaTest)}(_,b,M,C):b.isSpriteMaterial?function c(_,b){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,_.rotation.value=b.rotation,b.map&&(_.map.value=b.map,e(b.map,_.mapTransform)),b.alphaMap&&(_.alphaMap.value=b.alphaMap,e(b.alphaMap,_.alphaMapTransform)),b.alphaTest>0&&(_.alphaTest.value=b.alphaTest)}(_,b):b.isShadowMaterial?(_.color.value.copy(b.color),_.opacity.value=b.opacity):b.isShaderMaterial&&(b.uniformsNeedUpdate=!1)}}}function zIe(n,t,e,i){let r={},o={},s=[];const a=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function f(M,C,E,L){const N=M.value,H=C+"_"+E;if(void 0===L[H])return L[H]="number"==typeof N||"boolean"==typeof N?N:N.clone(),!0;{const j=L[H];if("number"==typeof N||"boolean"==typeof N){if(j!==N)return L[H]=N,!0}else if(!1===j.equals(N))return j.copy(N),!0}return!1}function y(M){const C={boundary:0,storage:0};return"number"==typeof M||"boolean"==typeof M?(C.boundary=4,C.storage=4):M.isVector2?(C.boundary=8,C.storage=8):M.isVector3||M.isColor?(C.boundary=16,C.storage=12):M.isVector4?(C.boundary=16,C.storage=16):M.isMatrix3?(C.boundary=48,C.storage=48):M.isMatrix4?(C.boundary=64,C.storage=64):M.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",M),C}function _(M){const C=M.target;C.removeEventListener("dispose",_);const E=s.indexOf(C.__bindingPointIndex);s.splice(E,1),n.deleteBuffer(r[C.id]),delete r[C.id],delete o[C.id]}return{bind:function l(M,C){i.uniformBlockBinding(M,C.program)},update:function c(M,C){let E=r[M.id];void 0===E&&(function A(M){const C=M.uniforms;let E=0;for(let H=0,j=C.length;H0&&(E+=16-N),M.__size=E,M.__cache={}}(M),E=function d(M){const C=function u(){for(let M=0;M0),Yn=!!xt.morphAttributes.position,Pr=!!xt.morphAttributes.normal,Eo=!!xt.morphAttributes.color;let Yo=vm;Mt.toneMapped&&(null===H||!0===H.isXRRenderTarget)&&(Yo=C.toneMapping);const mc=xt.morphAttributes.position||xt.morphAttributes.normal||xt.morphAttributes.color,Hr=void 0!==mc?mc.length:0,Zn=Ce.get(Mt),fa=_.state.lights;!0!==ce||!0!==ue&&he===R||Ei.setState(Mt,he,he===R&&Mt.id===j);let Vr=!1;Mt.version===Zn.__version?(Zn.needsLights&&Zn.lightsStateVersion!==fa.state.version||Zn.outputColorSpace!==zn||at.isBatchedMesh&&!1===Zn.batching||!at.isBatchedMesh&&!0===Zn.batching||at.isBatchedMesh&&!0===Zn.batchingColor&&null===at.colorTexture||at.isBatchedMesh&&!1===Zn.batchingColor&&null!==at.colorTexture||at.isInstancedMesh&&!1===Zn.instancing||!at.isInstancedMesh&&!0===Zn.instancing||at.isSkinnedMesh&&!1===Zn.skinning||!at.isSkinnedMesh&&!0===Zn.skinning||at.isInstancedMesh&&!0===Zn.instancingColor&&null===at.instanceColor||at.isInstancedMesh&&!1===Zn.instancingColor&&null!==at.instanceColor||at.isInstancedMesh&&!0===Zn.instancingMorph&&null===at.morphTexture||at.isInstancedMesh&&!1===Zn.instancingMorph&&null!==at.morphTexture||Zn.envMap!==Qn||!0===Mt.fog&&Zn.fog!==rn||void 0!==Zn.numClippingPlanes&&(Zn.numClippingPlanes!==Ei.numPlanes||Zn.numIntersection!==Ei.numIntersection)||Zn.vertexAlphas!==mi||Zn.vertexTangents!==Si||Zn.morphTargets!==Yn||Zn.morphNormals!==Pr||Zn.morphColors!==Eo||Zn.toneMapping!==Yo||Zn.morphTargetsCount!==Hr)&&(Vr=!0):(Vr=!0,Zn.__version=Mt.version);let kd=Zn.currentProgram;!0===Vr&&(kd=DF(Mt,Ke,at));let $b=!1,pc=!1,C8=!1;const Es=kd.getUniforms(),rp=Zn.uniforms;if(ot.useProgram(kd.program)&&($b=!0,pc=!0,C8=!0),Mt.id!==j&&(j=Mt.id,pc=!0),$b||R!==he){Es.setValue(re,"projectionMatrix",he.projectionMatrix),Es.setValue(re,"viewMatrix",he.matrixWorldInverse);const qc=Es.map.cameraPosition;void 0!==qc&&qc.setValue(re,Z.setFromMatrixPosition(he.matrixWorld)),At.logarithmicDepthBuffer&&Es.setValue(re,"logDepthBufFC",2/(Math.log(he.far+1)/Math.LN2)),(Mt.isMeshPhongMaterial||Mt.isMeshToonMaterial||Mt.isMeshLambertMaterial||Mt.isMeshBasicMaterial||Mt.isMeshStandardMaterial||Mt.isShaderMaterial)&&Es.setValue(re,"isOrthographic",!0===he.isOrthographicCamera),R!==he&&(R=he,pc=!0,C8=!0)}if(at.isSkinnedMesh){Es.setOptional(re,at,"bindMatrix"),Es.setOptional(re,at,"bindMatrixInverse");const qc=at.skeleton;qc&&(null===qc.boneTexture&&qc.computeBoneTexture(),Es.setValue(re,"boneTexture",qc.boneTexture,be))}at.isBatchedMesh&&(Es.setOptional(re,at,"batchingTexture"),Es.setValue(re,"batchingTexture",at._matricesTexture,be),Es.setOptional(re,at,"batchingIdTexture"),Es.setValue(re,"batchingIdTexture",at._indirectTexture,be),Es.setOptional(re,at,"batchingColorTexture"),null!==at._colorsTexture&&Es.setValue(re,"batchingColorTexture",at._colorsTexture,be));const M8=xt.morphAttributes;if((void 0!==M8.position||void 0!==M8.normal||void 0!==M8.color)&&cr.update(at,xt,kd),(pc||Zn.receiveShadow!==at.receiveShadow)&&(Zn.receiveShadow=at.receiveShadow,Es.setValue(re,"receiveShadow",at.receiveShadow)),Mt.isMeshGouraudMaterial&&null!==Mt.envMap&&(rp.envMap.value=Qn,rp.flipEnvMap.value=Qn.isCubeTexture&&!1===Qn.isRenderTargetTexture?-1:1),Mt.isMeshStandardMaterial&&null===Mt.envMap&&null!==Ke.environment&&(rp.envMapIntensity.value=Ke.environmentIntensity),pc&&(Es.setValue(re,"toneMappingExposure",C.toneMappingExposure),Zn.needsLights&&function Gje(he,Ke){he.ambientLightColor.needsUpdate=Ke,he.lightProbe.needsUpdate=Ke,he.directionalLights.needsUpdate=Ke,he.directionalLightShadows.needsUpdate=Ke,he.pointLights.needsUpdate=Ke,he.pointLightShadows.needsUpdate=Ke,he.spotLights.needsUpdate=Ke,he.spotLightShadows.needsUpdate=Ke,he.rectAreaLights.needsUpdate=Ke,he.hemisphereLights.needsUpdate=Ke}(rp,C8),rn&&!0===Mt.fog&&$n.refreshFogUniforms(rp,rn),$n.refreshMaterialUniforms(rp,Mt,Ae,te,_.state.transmissionRenderTarget[he.id]),jS.upload(re,$re(Zn),rp,be)),Mt.isShaderMaterial&&!0===Mt.uniformsNeedUpdate&&(jS.upload(re,$re(Zn),rp,be),Mt.uniformsNeedUpdate=!1),Mt.isSpriteMaterial&&Es.setValue(re,"center",at.center),Es.setValue(re,"modelViewMatrix",at.modelViewMatrix),Es.setValue(re,"normalMatrix",at.normalMatrix),Es.setValue(re,"modelMatrix",at.matrixWorld),Mt.isShaderMaterial||Mt.isRawShaderMaterial){const qc=Mt.uniformsGroups;for(let E8=0,$je=qc.length;E8<$je;E8++){const Xre=qc[E8];Vo.update(Xre,kd),Vo.bind(Xre,kd)}}return kd}(he,Ke,xt,Mt,at);ot.setMaterial(Mt,Mn);let Qn=xt.index,mi=1;if(!0===Mt.wireframe){if(Qn=Ut.getWireframeAttribute(xt),void 0===Qn)return;mi=2}const Si=xt.drawRange,Yn=xt.attributes.position;let Pr=Si.start*mi,Eo=(Si.start+Si.count)*mi;null!==rn&&(Pr=Math.max(Pr,rn.start*mi),Eo=Math.min(Eo,(rn.start+rn.count)*mi)),null!==Qn?(Pr=Math.max(Pr,0),Eo=Math.min(Eo,Qn.count)):null!=Yn&&(Pr=Math.max(Pr,0),Eo=Math.min(Eo,Yn.count));const Yo=Eo-Pr;if(Yo<0||Yo===1/0)return;nr.setup(at,Mt,zn,xt,Qn);let mc,Hr=Ci;if(null!==Qn&&(mc=ft.get(Qn),Hr=Rn,Hr.setIndex(mc)),at.isMesh)!0===Mt.wireframe?(ot.setLineWidth(Mt.wireframeLinewidth*Nt()),Hr.setMode(re.LINES)):Hr.setMode(re.TRIANGLES);else if(at.isLine){let Zn=Mt.linewidth;void 0===Zn&&(Zn=1),ot.setLineWidth(Zn*Nt()),Hr.setMode(at.isLineSegments?re.LINES:at.isLineLoop?re.LINE_LOOP:re.LINE_STRIP)}else at.isPoints?Hr.setMode(re.POINTS):at.isSprite&&Hr.setMode(re.TRIANGLES);if(at.isBatchedMesh)if(null!==at._multiDrawInstances)Hr.renderMultiDrawInstances(at._multiDrawStarts,at._multiDrawCounts,at._multiDrawCount,at._multiDrawInstances);else if(Ve.get("WEBGL_multi_draw"))Hr.renderMultiDraw(at._multiDrawStarts,at._multiDrawCounts,at._multiDrawCount);else{const Zn=at._multiDrawStarts,fa=at._multiDrawCounts,Vr=at._multiDrawCount,kd=Qn?ft.get(Qn).bytesPerElement:1,$b=Ce.get(Mt).currentProgram.getUniforms();for(let pc=0;pc{function rn(){Mt.forEach(function(Mn){Ce.get(Mn).currentProgram.isReady()&&Mt.delete(Mn)}),0!==Mt.size?setTimeout(rn,10):at(he)}null!==Ve.get("KHR_parallel_shader_compile")?rn():setTimeout(rn,10)})};let Ur=null;function Ru(){pg.stop()}function zre(){pg.start()}const pg=new AK;function x8(he,Ke,xt,Mt){if(!1===he.visible)return;if(he.layers.test(Ke.layers))if(he.isGroup)xt=he.renderOrder;else if(he.isLOD)!0===he.autoUpdate&&he.update(Ke);else if(he.isLight)_.pushLight(he),he.castShadow&&_.pushShadow(he);else if(he.isSprite){if(!he.frustumCulled||cn.intersectsSprite(he)){Mt&&$e.setFromMatrixPosition(he.matrixWorld).applyMatrix4(ae);const Mn=Bt.update(he),zn=he.material;zn.visible&&y.push(he,Mn,zn,xt,$e.z,null)}}else if((he.isMesh||he.isLine||he.isPoints)&&(!he.frustumCulled||cn.intersectsObject(he))){const Mn=Bt.update(he),zn=he.material;if(Mt&&(void 0!==he.boundingSphere?(null===he.boundingSphere&&he.computeBoundingSphere(),$e.copy(he.boundingSphere.center)):(null===Mn.boundingSphere&&Mn.computeBoundingSphere(),$e.copy(Mn.boundingSphere.center)),$e.applyMatrix4(he.matrixWorld).applyMatrix4(ae)),Array.isArray(zn)){const Qn=Mn.groups;for(let mi=0,Si=Qn.length;mi0&&FF(at,Ke,xt),rn.length>0&&FF(rn,Ke,xt),Mn.length>0&&FF(Mn,Ke,xt),ot.buffers.depth.setTest(!0),ot.buffers.depth.setMask(!0),ot.buffers.color.setMask(!0),ot.setPolygonOffset(!1)}function Gre(he,Ke,xt,Mt){if(null!==(!0===xt.isScene?xt.overrideMaterial:null))return;void 0===_.state.transmissionRenderTarget[Mt.id]&&(_.state.transmissionRenderTarget[Mt.id]=new Lc(1,1,{generateMipmaps:!0,type:Ve.has("EXT_color_buffer_half_float")||Ve.has("EXT_color_buffer_float")?C_:Uh,minFilter:Nh,samples:4,stencilBuffer:o,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Br.workingColorSpace}));const rn=_.state.transmissionRenderTarget[Mt.id],Mn=Mt.viewport||B;rn.setSize(Mn.z,Mn.w);const zn=C.getRenderTarget();C.setRenderTarget(rn),C.getClearColor(Ee),ne=C.getClearAlpha(),ne<1&&C.setClearColor(16777215,.5),C.clear(),je&&Cn.render(xt);const Qn=C.toneMapping;C.toneMapping=vm;const mi=Mt.viewport;if(void 0!==Mt.viewport&&(Mt.viewport=void 0),_.setupLightsView(Mt),!0===ce&&Ei.setGlobalState(C.clippingPlanes,Mt),FF(he,xt,Mt),be.updateMultisampleRenderTarget(rn),be.updateRenderTargetMipmap(rn),!1===Ve.has("WEBGL_multisampled_render_to_texture")){let Si=!1;for(let Yn=0,Pr=Ke.length;Yn0)for(let Mn=0,zn=rn.length;Mn0&&Gre(Mt,at,he,Ke),je&&Cn.render(he),qre(y,he,Ke);null!==H&&(be.updateMultisampleRenderTarget(H),be.updateRenderTargetMipmap(H)),!0===he.isScene&&he.onAfterRender(C,he,Ke),nr.resetDefaultState(),j=-1,R=null,M.pop(),M.length>0?(_=M[M.length-1],!0===ce&&Ei.setGlobalState(C.clippingPlanes,_.state.camera)):_=null,b.pop(),y=b.length>0?b[b.length-1]:null},this.getActiveCubeFace=function(){return L},this.getActiveMipmapLevel=function(){return N},this.getRenderTarget=function(){return H},this.setRenderTargetTextures=function(he,Ke,xt){Ce.get(he.texture).__webglTexture=Ke,Ce.get(he.depthTexture).__webglTexture=xt;const Mt=Ce.get(he);Mt.__hasExternalTextures=!0,Mt.__autoAllocateDepthBuffer=void 0===xt,Mt.__autoAllocateDepthBuffer||!0===Ve.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Mt.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(he,Ke){const xt=Ce.get(he);xt.__webglFramebuffer=Ke,xt.__useDefaultFramebuffer=void 0===Ke},this.setRenderTarget=function(he,Ke=0,xt=0){H=he,L=Ke,N=xt;let Mt=!0,at=null,rn=!1,Mn=!1;if(he){const Qn=Ce.get(he);if(void 0!==Qn.__useDefaultFramebuffer)ot.bindFramebuffer(re.FRAMEBUFFER,null),Mt=!1;else if(void 0===Qn.__webglFramebuffer)be.setupRenderTarget(he);else if(Qn.__hasExternalTextures)be.rebindTextures(he,Ce.get(he.texture).__webglTexture,Ce.get(he.depthTexture).__webglTexture);else if(he.depthBuffer){const Yn=he.depthTexture;if(Qn.__boundDepthTexture!==Yn){if(null!==Yn&&Ce.has(Yn)&&(he.width!==Yn.image.width||he.height!==Yn.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");be.setupDepthRenderbuffer(he)}}const mi=he.texture;(mi.isData3DTexture||mi.isDataArrayTexture||mi.isCompressedArrayTexture)&&(Mn=!0);const Si=Ce.get(he).__webglFramebuffer;he.isWebGLCubeRenderTarget?(at=Array.isArray(Si[Ke])?Si[Ke][xt]:Si[Ke],rn=!0):at=he.samples>0&&!1===be.useMultisampledRTT(he)?Ce.get(he).__webglMultisampledFramebuffer:Array.isArray(Si)?Si[xt]:Si,B.copy(he.viewport),ee.copy(he.scissor),we=he.scissorTest}else B.copy(it).multiplyScalar(Ae).floor(),ee.copy(_t).multiplyScalar(Ae).floor(),we=Ht;if(ot.bindFramebuffer(re.FRAMEBUFFER,at)&&Mt&&ot.drawBuffers(he,at),ot.viewport(B),ot.scissor(ee),ot.setScissorTest(we),rn){const Qn=Ce.get(he.texture);re.framebufferTexture2D(re.FRAMEBUFFER,re.COLOR_ATTACHMENT0,re.TEXTURE_CUBE_MAP_POSITIVE_X+Ke,Qn.__webglTexture,xt)}else if(Mn){const Qn=Ce.get(he.texture);re.framebufferTextureLayer(re.FRAMEBUFFER,re.COLOR_ATTACHMENT0,Qn.__webglTexture,xt||0,Ke||0)}j=-1},this.readRenderTargetPixels=function(he,Ke,xt,Mt,at,rn,Mn){if(!he||!he.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let zn=Ce.get(he).__webglFramebuffer;if(he.isWebGLCubeRenderTarget&&void 0!==Mn&&(zn=zn[Mn]),zn){ot.bindFramebuffer(re.FRAMEBUFFER,zn);try{const Qn=he.texture,mi=Qn.format,Si=Qn.type;if(!At.textureFormatReadable(mi))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!At.textureTypeReadable(Si))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");Ke>=0&&Ke<=he.width-Mt&&xt>=0&&xt<=he.height-at&&re.readPixels(Ke,xt,Mt,at,Bi.convert(mi),Bi.convert(Si),rn)}finally{const Qn=null!==H?Ce.get(H).__webglFramebuffer:null;ot.bindFramebuffer(re.FRAMEBUFFER,Qn)}}},this.readRenderTargetPixelsAsync=function(){var he=k(function*(Ke,xt,Mt,at,rn,Mn,zn){if(!Ke||!Ke.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Qn=Ce.get(Ke).__webglFramebuffer;if(Ke.isWebGLCubeRenderTarget&&void 0!==zn&&(Qn=Qn[zn]),Qn){ot.bindFramebuffer(re.FRAMEBUFFER,Qn);try{const mi=Ke.texture,Si=mi.format,Yn=mi.type;if(!At.textureFormatReadable(Si))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!At.textureTypeReadable(Yn))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(xt>=0&&xt<=Ke.width-at&&Mt>=0&&Mt<=Ke.height-rn){const Pr=re.createBuffer();re.bindBuffer(re.PIXEL_PACK_BUFFER,Pr),re.bufferData(re.PIXEL_PACK_BUFFER,Mn.byteLength,re.STREAM_READ),re.readPixels(xt,Mt,at,rn,Bi.convert(Si),Bi.convert(Yn),0),re.flush();const Eo=re.fenceSync(re.SYNC_GPU_COMMANDS_COMPLETE,0);yield function pEe(n,t,e){return new Promise(function(i,r){setTimeout(function o(){switch(n.clientWaitSync(t,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(o,e);break;default:i()}},e)})}(re,Eo,4);try{re.bindBuffer(re.PIXEL_PACK_BUFFER,Pr),re.getBufferSubData(re.PIXEL_PACK_BUFFER,0,Mn)}finally{re.deleteBuffer(Pr),re.deleteSync(Eo)}return Mn}}finally{const mi=null!==H?Ce.get(H).__webglFramebuffer:null;ot.bindFramebuffer(re.FRAMEBUFFER,mi)}}});return function(Ke,xt,Mt,at,rn,Mn,zn){return he.apply(this,arguments)}}(),this.copyFramebufferToTexture=function(he,Ke=null,xt=0){!0!==he.isTexture&&(B_("WebGLRenderer: copyFramebufferToTexture function signature has changed."),Ke=arguments[0]||null,he=arguments[1]);const Mt=Math.pow(2,-xt),at=Math.floor(he.image.width*Mt),rn=Math.floor(he.image.height*Mt),Mn=null!==Ke?Ke.x:0,zn=null!==Ke?Ke.y:0;be.setTexture2D(he,0),re.copyTexSubImage2D(re.TEXTURE_2D,xt,0,0,Mn,zn,at,rn),ot.unbindTexture()},this.copyTextureToTexture=function(he,Ke,xt=null,Mt=null,at=0){let rn,Mn,zn,Qn,mi,Si;!0!==he.isTexture&&(B_("WebGLRenderer: copyTextureToTexture function signature has changed."),Mt=arguments[0]||null,he=arguments[1],Ke=arguments[2],at=arguments[3]||0,xt=null),null!==xt?(rn=xt.max.x-xt.min.x,Mn=xt.max.y-xt.min.y,zn=xt.min.x,Qn=xt.min.y):(rn=he.image.width,Mn=he.image.height,zn=0,Qn=0),null!==Mt?(mi=Mt.x,Si=Mt.y):(mi=0,Si=0);const Yn=Bi.convert(Ke.format),Pr=Bi.convert(Ke.type);be.setTexture2D(Ke,0),re.pixelStorei(re.UNPACK_FLIP_Y_WEBGL,Ke.flipY),re.pixelStorei(re.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ke.premultiplyAlpha),re.pixelStorei(re.UNPACK_ALIGNMENT,Ke.unpackAlignment);const Eo=re.getParameter(re.UNPACK_ROW_LENGTH),Yo=re.getParameter(re.UNPACK_IMAGE_HEIGHT),mc=re.getParameter(re.UNPACK_SKIP_PIXELS),Hr=re.getParameter(re.UNPACK_SKIP_ROWS),Zn=re.getParameter(re.UNPACK_SKIP_IMAGES),fa=he.isCompressedTexture?he.mipmaps[at]:he.image;re.pixelStorei(re.UNPACK_ROW_LENGTH,fa.width),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,fa.height),re.pixelStorei(re.UNPACK_SKIP_PIXELS,zn),re.pixelStorei(re.UNPACK_SKIP_ROWS,Qn),he.isDataTexture?re.texSubImage2D(re.TEXTURE_2D,at,mi,Si,rn,Mn,Yn,Pr,fa.data):he.isCompressedTexture?re.compressedTexSubImage2D(re.TEXTURE_2D,at,mi,Si,fa.width,fa.height,Yn,fa.data):re.texSubImage2D(re.TEXTURE_2D,at,mi,Si,rn,Mn,Yn,Pr,fa),re.pixelStorei(re.UNPACK_ROW_LENGTH,Eo),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Yo),re.pixelStorei(re.UNPACK_SKIP_PIXELS,mc),re.pixelStorei(re.UNPACK_SKIP_ROWS,Hr),re.pixelStorei(re.UNPACK_SKIP_IMAGES,Zn),0===at&&Ke.generateMipmaps&&re.generateMipmap(re.TEXTURE_2D),ot.unbindTexture()},this.copyTextureToTexture3D=function(he,Ke,xt=null,Mt=null,at=0){let rn,Mn,zn,Qn,mi,Si,Yn,Pr,Eo;!0!==he.isTexture&&(B_("WebGLRenderer: copyTextureToTexture3D function signature has changed."),xt=arguments[0]||null,Mt=arguments[1]||null,he=arguments[2],Ke=arguments[3],at=arguments[4]||0);const Yo=he.isCompressedTexture?he.mipmaps[at]:he.image;null!==xt?(rn=xt.max.x-xt.min.x,Mn=xt.max.y-xt.min.y,zn=xt.max.z-xt.min.z,Qn=xt.min.x,mi=xt.min.y,Si=xt.min.z):(rn=Yo.width,Mn=Yo.height,zn=Yo.depth,Qn=0,mi=0,Si=0),null!==Mt?(Yn=Mt.x,Pr=Mt.y,Eo=Mt.z):(Yn=0,Pr=0,Eo=0);const mc=Bi.convert(Ke.format),Hr=Bi.convert(Ke.type);let Zn;if(Ke.isData3DTexture)be.setTexture3D(Ke,0),Zn=re.TEXTURE_3D;else{if(!Ke.isDataArrayTexture&&!Ke.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");be.setTexture2DArray(Ke,0),Zn=re.TEXTURE_2D_ARRAY}re.pixelStorei(re.UNPACK_FLIP_Y_WEBGL,Ke.flipY),re.pixelStorei(re.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ke.premultiplyAlpha),re.pixelStorei(re.UNPACK_ALIGNMENT,Ke.unpackAlignment);const fa=re.getParameter(re.UNPACK_ROW_LENGTH),Vr=re.getParameter(re.UNPACK_IMAGE_HEIGHT),kd=re.getParameter(re.UNPACK_SKIP_PIXELS),$b=re.getParameter(re.UNPACK_SKIP_ROWS),pc=re.getParameter(re.UNPACK_SKIP_IMAGES);re.pixelStorei(re.UNPACK_ROW_LENGTH,Yo.width),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Yo.height),re.pixelStorei(re.UNPACK_SKIP_PIXELS,Qn),re.pixelStorei(re.UNPACK_SKIP_ROWS,mi),re.pixelStorei(re.UNPACK_SKIP_IMAGES,Si),he.isDataTexture||he.isData3DTexture?re.texSubImage3D(Zn,at,Yn,Pr,Eo,rn,Mn,zn,mc,Hr,Yo.data):Ke.isCompressedArrayTexture?re.compressedTexSubImage3D(Zn,at,Yn,Pr,Eo,rn,Mn,zn,mc,Yo.data):re.texSubImage3D(Zn,at,Yn,Pr,Eo,rn,Mn,zn,mc,Hr,Yo),re.pixelStorei(re.UNPACK_ROW_LENGTH,fa),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Vr),re.pixelStorei(re.UNPACK_SKIP_PIXELS,kd),re.pixelStorei(re.UNPACK_SKIP_ROWS,$b),re.pixelStorei(re.UNPACK_SKIP_IMAGES,pc),0===at&&Ke.generateMipmaps&&re.generateMipmap(Zn),ot.unbindTexture()},this.initRenderTarget=function(he){void 0===Ce.get(he).__webglFramebuffer&&be.setupRenderTarget(he)},this.initTexture=function(he){he.isCubeTexture?be.setTextureCube(he,0):he.isData3DTexture?be.setTexture3D(he,0):he.isDataArrayTexture||he.isCompressedArrayTexture?be.setTexture2DArray(he,0):be.setTexture2D(he,0),ot.unbindTexture()},this.resetState=function(){L=0,N=0,H=null,ot.reset(),nr.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Hh}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===_O?"display-p3":"srgb",e.unpackColorSpace=Br.workingColorSpace===_S?"display-p3":"srgb"}}class KS extends xo{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new qh,this.environmentIntensity=1,this.environmentRotation=new qh,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class tL{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=rc()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return B_("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,i){t*=this.stride,i*=e.stride;for(let r=0,o=this.stride;rt.far||e.push({distance:l,point:Tw.clone(),uv:Nc.getInterpolation(Tw,YS,Fw,ZS,jK,iL,XK,new nt),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function JS(n,t,e,i,r,o){sb.subVectors(n,e).addScalar(.5).multiply(i),void 0!==r?(Iw.x=o*sb.x-r*sb.y,Iw.y=r*sb.x+o*sb.y):Iw.copy(sb),n.copy(t),n.x+=Iw.x,n.y+=Iw.y,n.applyMatrix4($K)}class xa extends Ya{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new tn(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const oT=new se,sT=new se,lY=new hi,Rw=new BA,aT=new Ys,uL=new se,cY=new se;class wd extends xo{constructor(t=new gi,e=new xa){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,i=[0];for(let r=1,o=e.count;r0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let o=0,s=r.length;oi)return;uL.applyMatrix4(n.matrixWorld);const l=t.ray.origin.distanceTo(uL);return lt.far?void 0:{distance:l,point:cY.clone().applyMatrix4(n.matrixWorld),index:r,face:null,faceIndex:null,object:n}}const dY=new se,uY=new se;class Yh extends wd{constructor(t,e){super(t,e),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,i=[];for(let r=0,o=e.count;r0)){l=r;break}l=r-1}if(r=l,i[r]===s)return r/(o-1);const d=i[r];return(r+(s-d)/(i[r+1]-d))/(o-1)}getTangent(t,e){let r=t-1e-4,o=t+1e-4;r<0&&(r=0),o>1&&(o=1);const s=this.getPoint(r),a=this.getPoint(o),l=e||(s.isVector2?new nt:new se);return l.copy(a).sub(s).normalize(),l}getTangentAt(t,e){const i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){const i=new se,r=[],o=[],s=[],a=new se,l=new hi;for(let f=0;f<=t;f++)r[f]=this.getTangentAt(f/t,new se);o[0]=new se,s[0]=new se;let c=Number.MAX_VALUE;const d=Math.abs(r[0].x),u=Math.abs(r[0].y),h=Math.abs(r[0].z);d<=c&&(c=d,i.set(1,0,0)),u<=c&&(c=u,i.set(0,1,0)),h<=c&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),o[0].crossVectors(r[0],a),s[0].crossVectors(r[0],o[0]);for(let f=1;f<=t;f++){if(o[f]=o[f-1].clone(),s[f]=s[f-1].clone(),a.crossVectors(r[f-1],r[f]),a.length()>Number.EPSILON){a.normalize();const A=Math.acos(Xo(r[f-1].dot(r[f]),-1,1));o[f].applyMatrix4(l.makeRotationAxis(a,A))}s[f].crossVectors(r[f],o[f])}if(!0===e){let f=Math.acos(Xo(o[0].dot(o[t]),-1,1));f/=t,r[0].dot(a.crossVectors(o[0],o[t]))>0&&(f=-f);for(let A=1;A<=t;A++)o[A].applyMatrix4(l.makeRotationAxis(r[A],f*A)),s[A].crossVectors(r[A],o[A])}return{tangents:r,normals:o,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class mL extends vu{constructor(t=0,e=0,i=1,r=1,o=0,s=2*Math.PI,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=r,this.aStartAngle=o,this.aEndAngle=s,this.aClockwise=a,this.aRotation=l}getPoint(t,e=new nt){const i=e,r=2*Math.PI;let o=this.aEndAngle-this.aStartAngle;const s=Math.abs(o)r;)o-=r;or.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return i.set(pY(a,l.x,c.x,d.x,u.x),pY(a,l.y,c.y,d.y,u.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e0?0:(Math.floor(Math.abs(a)/o)+1)*o:0===l&&a===o-1&&(a=o-2,l=1),this.closed||a>0?c=r[(a-1)%o]:(uT.subVectors(r[0],r[1]).add(r[0]),c=uT);const u=r[a%o],h=r[(a+1)%o];if(this.closed||a+2=i){const s=r[o]-i,a=this.curves[o],l=a.getLength();return a.getPointAt(0===l?0:1-s/l,e)}o++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let i=0,r=this.curves.length;i1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,i=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const d=c.getPoint(1);return this.currentPoint.copy(d),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Nw extends gi{constructor(t=1,e=1,i=1,r=32,o=1,s=!1,a=0,l=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:r,heightSegments:o,openEnded:s,thetaStart:a,thetaLength:l};const c=this;r=Math.floor(r),o=Math.floor(o);const d=[],u=[],h=[],f=[];let A=0;const y=[],_=i/2;let b=0;function C(E){const L=A,N=new nt,H=new se;let j=0;const R=!0===E?t:e,B=!0===E?1:-1;for(let we=1;we<=r;we++)u.push(0,_*B,0),h.push(0,B,0),f.push(.5,.5),A++;const ee=A;for(let we=0;we<=r;we++){const ne=we/r*l+a,Ie=Math.cos(ne),te=Math.sin(ne);H.x=R*te,H.y=_*B,H.z=R*Ie,u.push(H.x,H.y,H.z),h.push(0,B,0),N.x=.5*Ie+.5,N.y=.5*te*B+.5,f.push(N.x,N.y),A++}for(let we=0;we0&&C(!0),e>0&&C(!1)),this.setIndex(d),this.setAttribute("position",new Bn(u,3)),this.setAttribute("normal",new Bn(h,3)),this.setAttribute("uv",new Bn(f,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Nw(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Bm extends VA{constructor(t){super(t),this.uuid=rc(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let i=0,r=this.holes.length;i0)for(o=t;o=t;o-=i)s=MY(o,n[o],n[o+1],s);return s&&gT(s,s.next)&&(Vw(s),s=s.next),s}function zA(n,t){if(!n)return n;t||(t=n);let i,e=n;do{if(i=!1,e.steiner||!gT(e,e.next)&&0!==Uo(e.prev,e,e.next))e=e.next;else{if(Vw(e),e=t=e.prev,e===e.next)break;i=!0}}while(i||e!==t);return t}function Uw(n,t,e,i,r,o,s){if(!n)return;!s&&o&&function IFe(n,t,e,i){let r=n;do{0===r.z&&(r.z=CL(r.x,r.y,t,e,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,function FFe(n){let t,e,i,r,o,s,a,l,c=1;do{for(e=n,n=null,o=null,s=0;e;){for(s++,i=e,a=0,t=0;t0||l>0&&i;)0!==a&&(0===l||!i||e.z<=i.z)?(r=e,e=e.nextZ,a--):(r=i,i=i.nextZ,l--),o?o.nextZ=r:n=r,r.prevZ=o,o=r;e=i}o.nextZ=null,c*=2}while(s>1)}(r)}(n,i,r,o);let l,c,a=n;for(;n.prev!==n.next;)if(l=n.prev,c=n.next,o?yFe(n,i,r,o):vFe(n))t.push(l.i/e|0),t.push(n.i/e|0),t.push(c.i/e|0),Vw(n),n=c.next,a=c.next;else if((n=c)===a){s?1===s?Uw(n=wFe(zA(n),t,e),t,e,i,r,o,2):2===s&&xFe(n,t,e,i,r,o):Uw(zA(n),t,e,i,r,o,1);break}}function vFe(n){const t=n.prev,e=n,i=n.next;if(Uo(t,e,i)>=0)return!1;const r=t.x,o=e.x,s=i.x,a=t.y,l=e.y,c=i.y,d=ro?r>s?r:s:o>s?o:s,f=a>l?a>c?a:c:l>c?l:c;let A=i.next;for(;A!==t;){if(A.x>=d&&A.x<=h&&A.y>=u&&A.y<=f&&lb(r,a,o,l,s,c,A.x,A.y)&&Uo(A.prev,A,A.next)>=0)return!1;A=A.next}return!0}function yFe(n,t,e,i){const r=n.prev,o=n,s=n.next;if(Uo(r,o,s)>=0)return!1;const a=r.x,l=o.x,c=s.x,d=r.y,u=o.y,h=s.y,f=al?a>c?a:c:l>c?l:c,_=d>u?d>h?d:h:u>h?u:h,b=CL(f,A,t,e,i),M=CL(y,_,t,e,i);let C=n.prevZ,E=n.nextZ;for(;C&&C.z>=b&&E&&E.z<=M;){if(C.x>=f&&C.x<=y&&C.y>=A&&C.y<=_&&C!==r&&C!==s&&lb(a,d,l,u,c,h,C.x,C.y)&&Uo(C.prev,C,C.next)>=0||(C=C.prevZ,E.x>=f&&E.x<=y&&E.y>=A&&E.y<=_&&E!==r&&E!==s&&lb(a,d,l,u,c,h,E.x,E.y)&&Uo(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;C&&C.z>=b;){if(C.x>=f&&C.x<=y&&C.y>=A&&C.y<=_&&C!==r&&C!==s&&lb(a,d,l,u,c,h,C.x,C.y)&&Uo(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;E&&E.z<=M;){if(E.x>=f&&E.x<=y&&E.y>=A&&E.y<=_&&E!==r&&E!==s&&lb(a,d,l,u,c,h,E.x,E.y)&&Uo(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function wFe(n,t,e){let i=n;do{const r=i.prev,o=i.next.next;!gT(r,o)&&xY(r,i,i.next,o)&&Hw(r,o)&&Hw(o,r)&&(t.push(r.i/e|0),t.push(i.i/e|0),t.push(o.i/e|0),Vw(i),Vw(i.next),i=n=o),i=i.next}while(i!==n);return zA(i)}function xFe(n,t,e,i,r,o){let s=n;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&kFe(s,a)){let l=CY(s,a);return s=zA(s,s.next),l=zA(l,l.next),Uw(s,t,e,i,r,o,0),void Uw(l,t,e,i,r,o,0)}a=a.next}s=s.next}while(s!==n)}function MFe(n,t){return n.x-t.x}function EFe(n,t){const e=function SFe(n,t){let r,e=t,i=-1/0;const o=n.x,s=n.y;do{if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){const h=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(h<=o&&h>i&&(i=h,r=e.x=e.x&&e.x>=l&&o!==e.x&&lb(sr.x||e.x===r.x&&TFe(r,e)))&&(r=e,d=u)),e=e.next}while(e!==a);return r}(n,t);if(!e)return t;const i=CY(e,n);return zA(i,i.next),zA(e,e.next)}function TFe(n,t){return Uo(n.prev,n,t.prev)<0&&Uo(t.next,n,n.next)<0}function CL(n,t,e,i,r){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-e)*r|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function DFe(n){let t=n,e=n;do{(t.x=(n-s)*(o-a)&&(n-s)*(i-a)>=(e-s)*(t-a)&&(e-s)*(o-a)>=(r-s)*(i-a)}function kFe(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function BFe(n,t){let e=n;do{if(e.i!==n.i&&e.next.i!==n.i&&e.i!==t.i&&e.next.i!==t.i&&xY(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}(n,t)&&(Hw(n,t)&&Hw(t,n)&&function PFe(n,t){let e=n,i=!1;const r=(n.x+t.x)/2,o=(n.y+t.y)/2;do{e.y>o!=e.next.y>o&&e.next.y!==e.y&&r<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next}while(e!==n);return i}(n,t)&&(Uo(n.prev,n,t.prev)||Uo(n,t.prev,t))||gT(n,t)&&Uo(n.prev,n,n.next)>0&&Uo(t.prev,t,t.next)>0)}function Uo(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function gT(n,t){return n.x===t.x&&n.y===t.y}function xY(n,t,e,i){const r=bT(Uo(n,t,e)),o=bT(Uo(n,t,i)),s=bT(Uo(e,i,n)),a=bT(Uo(e,i,t));return!!(r!==o&&s!==a||0===r&&_T(n,e,t)||0===o&&_T(n,i,t)||0===s&&_T(e,n,i)||0===a&&_T(e,t,i))}function _T(n,t,e){return t.x<=Math.max(n.x,e.x)&&t.x>=Math.min(n.x,e.x)&&t.y<=Math.max(n.y,e.y)&&t.y>=Math.min(n.y,e.y)}function bT(n){return n>0?1:n<0?-1:0}function Hw(n,t){return Uo(n.prev,n,n.next)<0?Uo(n,t,n.next)>=0&&Uo(n,n.prev,t)>=0:Uo(n,t,n.prev)<0||Uo(n,n.next,t)<0}function CY(n,t){const e=new ML(n.i,n.x,n.y),i=new ML(t.i,t.x,t.y),r=n.next,o=t.prev;return n.next=t,t.prev=n,e.next=r,r.prev=e,i.next=e,e.prev=i,o.next=i,i.prev=o,i}function MY(n,t,e,i){const r=new ML(n,t,e);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Vw(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function ML(n,t,e){this.i=n,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class yu{static area(t){const e=t.length;let i=0;for(let r=e-1,o=0;o80*e){a=c=n[0],l=d=n[1];for(let A=e;Ac&&(c=u),h>d&&(d=h);f=Math.max(c-a,d-l),f=0!==f?32767/f:0}return Uw(o,s,e,a,l,f,0),s}(i,r);for(let l=0;l2&&n[t-1].equals(n[0])&&n.pop()}function SY(n,t){for(let e=0;eNumber.EPSILON){const Bt=Math.sqrt(ft),Vt=Math.sqrt(de*de+Y*Y),$n=ht.x-be/Bt,fn=ht.y+Ce/Bt,Zt=((Ve.x-Y/Vt-$n)*Y-(Ve.y+de/Vt-fn)*de)/(Ce*Y-be*de);At=$n+Ce*Zt-re.x,ot=fn+be*Zt-re.y;const Cn=At*At+ot*ot;if(Cn<=2)return new nt(At,ot);vt=Math.sqrt(Cn/2)}else{let Bt=!1;Ce>Number.EPSILON?de>Number.EPSILON&&(Bt=!0):Ce<-Number.EPSILON?de<-Number.EPSILON&&(Bt=!0):Math.sign(be)===Math.sign(Y)&&(Bt=!0),Bt?(At=-be,ot=Ce,vt=Math.sqrt(ft)):(At=Ce,ot=be,vt=Math.sqrt(ft/2))}return new nt(At/vt,ot/vt)}const Pe=[];for(let re=0,ht=ne.length,Ve=ht-1,At=re+1;re=0;re--){const ht=re/_,Ve=f*Math.cos(ht*Math.PI/2),At=A*Math.sin(ht*Math.PI/2)+y;for(let ot=0,vt=ne.length;ot=0;){const At=Ve;let ot=Ve-1;ot<0&&(ot=re.length-1);for(let vt=0,Ce=d+2*_;vt=o)break e;{const a=e[1];t=o)break t}s=i,i=0}}for(;i>>1;te;)--s;if(++s,0!==o||s!==r){o>=s&&(s=Math.max(s,1),o=s-1);const a=this.getValueSize();this.times=i.slice(o,s),this.values=this.values.slice(o*a,s*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const i=this.times,r=this.values,o=i.length;0===o&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==o;a++){const l=i[a];if("number"==typeof l&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(null!==s&&s>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,s),t=!1;break}s=l}if(void 0!==r&&function kY(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),r=2302===this.getInterpolation(),o=t.length-1;let s=1;for(let a=1;a0){t[s]=t[o];for(let a=o*i,l=s*i,c=0;c!==i;++c)e[l+c]=e[a+c];++s}return s!==t.length?(this.times=t.slice(0,s),this.values=e.slice(0,s*i)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),r=new(0,this.constructor)(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}wu.prototype.TimeBufferType=Float32Array,wu.prototype.ValueBufferType=Float32Array,wu.prototype.DefaultInterpolation=2301;class db extends wu{constructor(t,e,i){super(t,e,i)}}db.prototype.ValueTypeName="bool",db.prototype.ValueBufferType=Array,db.prototype.DefaultInterpolation=2300,db.prototype.InterpolantFactoryMethodLinear=void 0,db.prototype.InterpolantFactoryMethodSmooth=void 0;(class RY extends wu{}).prototype.ValueTypeName="color";(class CT extends wu{}).prototype.ValueTypeName="number";class YFe extends xT{constructor(t,e,i,r){super(t,e,i,r)}interpolate_(t,e,i,r){const o=this.resultBuffer,s=this.sampleValues,a=this.valueSize,l=(i-e)/(r-e);let c=t*a;for(let d=c+a;c!==d;c+=4)Ka.slerpFlat(o,0,s,c-a,s,c,l);return o}}class MT extends wu{InterpolantFactoryMethodLinear(t){return new YFe(this.times,this.values,this.getValueSize(),t)}}MT.prototype.ValueTypeName="quaternion",MT.prototype.InterpolantFactoryMethodSmooth=void 0;class ub extends wu{constructor(t,e,i){super(t,e,i)}}ub.prototype.ValueTypeName="string",ub.prototype.ValueBufferType=Array,ub.prototype.DefaultInterpolation=2300,ub.prototype.InterpolantFactoryMethodLinear=void 0,ub.prototype.InterpolantFactoryMethodSmooth=void 0;(class ET extends wu{}).prototype.ValueTypeName="vector";const Pm={enabled:!1,files:{},add:function(n,t){!1!==this.enabled&&(this.files[n]=t)},get:function(n){if(!1!==this.enabled)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}};class OY{constructor(t,e,i){const r=this;let l,o=!1,s=0,a=0;const c=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(d){a++,!1===o&&void 0!==r.onStart&&r.onStart(d,s,a),o=!0},this.itemEnd=function(d){s++,void 0!==r.onProgress&&r.onProgress(d,s,a),s===a&&(o=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(d){void 0!==r.onError&&r.onError(d)},this.resolveURL=function(d){return l?l(d):d},this.setURLModifier=function(d){return l=d,this},this.addHandler=function(d,u){return c.push(d,u),this},this.removeHandler=function(d){const u=c.indexOf(d);return-1!==u&&c.splice(u,2),this},this.getHandler=function(d){for(let u=0,h=c.length;u{class n{constructor(e){this.manager=void 0!==e?e:eDe,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,i){const r=this;return new Promise(function(o,s){r.load(e,o,i,s)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}return n.DEFAULT_MATERIAL_NAME="__DEFAULT",n})();const Zh={};class tDe extends Error{constructor(t,e){super(t),this.response=e}}class xu extends _l{constructor(t){super(t)}load(t,e,i,r){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const o=Pm.get(t);if(void 0!==o)return this.manager.itemStart(t),setTimeout(()=>{e&&e(o),this.manager.itemEnd(t)},0),o;if(void 0!==Zh[t])return void Zh[t].push({onLoad:e,onProgress:i,onError:r});Zh[t]=[],Zh[t].push({onLoad:e,onProgress:i,onError:r});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(s).then(c=>{if(200===c.status||0===c.status){if(0===c.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===c.body||void 0===c.body.getReader)return c;const d=Zh[t],u=c.body.getReader(),h=c.headers.get("X-File-Size")||c.headers.get("Content-Length"),f=h?parseInt(h):0,A=0!==f;let y=0;const _=new ReadableStream({start(b){!function M(){u.read().then(({done:C,value:E})=>{if(C)b.close();else{y+=E.byteLength;const L=new ProgressEvent("progress",{lengthComputable:A,loaded:y,total:f});for(let N=0,H=d.length;N{b.error(C)})}()}});return new Response(_)}throw new tDe(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(d=>(new DOMParser).parseFromString(d,a));case"json":return c.json();default:if(void 0===a)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),h=u&&u[1]?u[1].toLowerCase():void 0,f=new TextDecoder(h);return c.arrayBuffer().then(A=>f.decode(A))}}}).then(c=>{Pm.add(t,c);const d=Zh[t];delete Zh[t];for(let u=0,h=d.length;u{const d=Zh[t];if(void 0===d)throw this.manager.itemError(t),c;delete Zh[t];for(let u=0,h=d.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class GA extends xo{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new tn(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),void 0!==this.target&&(e.object.target=this.target.uuid),e}}const RL=new hi,LY=new se,NY=new se;class OL{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new nt(512,512),this.map=null,this.mapPass=null,this.matrix=new hi,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new zS,this._frameExtents=new nt(1,1),this._viewportCount=1,this._viewports=[new Wr(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,i=this.matrix;LY.setFromMatrixPosition(t.matrixWorld),e.position.copy(LY),NY.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(NY),e.updateMatrixWorld(),RL.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(RL),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(RL)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.intensity=t.intensity,this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 1!==this.intensity&&(t.intensity=this.intensity),0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class aDe extends OL{constructor(){super(new GS(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class zw extends GA{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(xo.DEFAULT_UP),this.updateMatrix(),this.target=new xo,this.shadow=new aDe}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class NL extends GA{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class WY{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=$Y(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=$Y();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function $Y(){return(typeof performance>"u"?Date:performance).now()}const HL="\\[\\]\\.:\\/",_De=new RegExp("["+HL+"]","g"),VL="[^"+HL+"]",bDe="[^"+HL.replace("\\.","")+"]",CDe=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",VL)+/(WCOD+)?/.source.replace("WCOD",bDe)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",VL)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",VL)+"$"),MDe=["material","materials","bones","map"];class EDe{constructor(t,e,i){const r=i||Co.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(t,e)}setValue(t,e){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,o=i.length;r!==o;++r)i[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}let Co=(()=>{class n{constructor(e,i,r){this.path=i,this.parsedPath=r||n.parseTrackName(i),this.node=n.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,i,r){return e&&e.isAnimationObjectGroup?new n.Composite(e,i,r):new n(e,i,r)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(_De,"")}static parseTrackName(e){const i=CDe.exec(e);if(null===i)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const r={nodeName:i[2],objectName:i[3],objectIndex:i[4],propertyName:i[5],propertyIndex:i[6]},o=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==o&&-1!==o){const s=r.nodeName.substring(o+1);-1!==MDe.indexOf(s)&&(r.nodeName=r.nodeName.substring(0,o),r.objectName=s)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return r}static findNode(e,i){if(void 0===i||""===i||"."===i||-1===i||i===e.name||i===e.uuid)return e;if(e.skeleton){const r=e.skeleton.getBoneByName(i);if(void 0!==r)return r}if(e.children){const r=function(s){for(let a=0;a=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,nZ).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const PT=new Us;class kDe extends Yh{constructor(t,e=16776960){const i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),o=new gi;o.setIndex(new tr(i,1)),o.setAttribute("position",new tr(r,3)),super(o,new xa({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&PT.setFromObject(this.object),PT.isEmpty())return;const e=PT.min,i=PT.max,r=this.geometry.attributes.position,o=r.array;o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=e.x,o[4]=i.y,o[5]=i.z,o[6]=e.x,o[7]=e.y,o[8]=i.z,o[9]=i.x,o[10]=e.y,o[11]=i.z,o[12]=i.x,o[13]=i.y,o[14]=e.z,o[15]=e.x,o[16]=i.y,o[17]=e.z,o[18]=e.x,o[19]=e.y,o[20]=e.z,o[21]=i.x,o[22]=e.y,o[23]=e.z,r.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}}const dZ=new se;let RT,qL;class BDe extends xo{constructor(t=new se(0,0,1),e=new se(0,0,0),i=1,r=16776960,o=.2*i,s=.2*o){super(),this.type="ArrowHelper",void 0===RT&&(RT=new gi,RT.setAttribute("position",new Bn([0,0,0,0,1,0],3)),qL=new Nw(0,.5,1,5,1),qL.translate(0,-.5,0)),this.position.copy(e),this.line=new wd(RT,new xa({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new ki(qL,new jh({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,o,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{dZ.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(dZ,e)}}setLength(t,e=.2*t,i=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class PDe extends Yh{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],r=new gi;r.setAttribute("position",new Bn(e,3)),r.setAttribute("color",new Bn([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(r,new xa({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,i){const r=new tn,o=this.geometry.attributes.color.array;return r.set(t),r.toArray(o,0),r.toArray(o,3),r.set(e),r.toArray(o,6),r.toArray(o,9),r.set(i),r.toArray(o,12),r.toArray(o,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Om{constructor(){this.type="ShapePath",this.color=new tn,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new VA,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,i,r){return this.currentPath.quadraticCurveTo(t,e,i,r),this}bezierCurveTo(t,e,i,r,o,s){return this.currentPath.bezierCurveTo(t,e,i,r,o,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function i(b,M){const C=M.length;let E=!1;for(let L=C-1,N=0;NNumber.EPSILON){if(B<0&&(H=M[N],R=-R,j=M[L],B=-B),b.yj.y)continue;if(b.y===H.y){if(b.x===H.x)return!0}else{const ee=B*(b.x-H.x)-R*(b.y-H.y);if(0===ee)return!0;if(ee<0)continue;E=!E}}else{if(b.y!==H.y)continue;if(j.x<=b.x&&b.x<=H.x||H.x<=b.x&&b.x<=j.x)return!0}}return E}const r=yu.isClockWise,o=this.subPaths;if(0===o.length)return[];let s,a,l;const c=[];if(1===o.length)return a=o[0],l=new Bm,l.curves=a.curves,c.push(l),c;let d=!r(o[0].getPoints());d=t?!d:d;const u=[],h=[];let y,_,f=[],A=0;h[A]=void 0,f[A]=[];for(let b=0,M=o.length;b1){let b=!1,M=0;for(let C=0,E=h.length;C0&&!1===b&&(f=u)}for(let b=0,M=h.length;be+Math.round(i).toString(16).padStart(2,"0"),"#")}static hexToHSL(t){const e=uZ().hex.hsl(t);return new hZ(...e)}static colorToVector3(t){const e=lr.convertHexToNumber(t);return new se((e>>16&255)/255,(e>>8&255)/255,(255&e)/255)}static colorToVector3Array(t){const e=lr.convertHexToNumber(t);return[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255]}static vector3ToRGB(t){const e=Math.floor(255*t.x),i=Math.floor(255*t.y),r=Math.floor(255*t.z);return new tn(e,i,r)}static gradient(t,e,i){const r=this.convertHexToColorObject(t),s=this.convertHexToColorObject(e).sub(r),a=[];for(let l=0;l<=i;l++){const c=s.clone().multiplyScalar(1/i*l),d=r.clone().add(c);a[l]=this.convertColorToHex(d)}return a}static getImageDataUri(t){const e=this.encodeHex(t),i=this.encodeRGB(e[0],e[1],e[2]);return this.generatePixel(i)}static encodeHex(t){let e=t.slice(1);return 3===e.length&&(e=`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`),[Number.parseInt(`${e[0]}${e[1]}`,16),Number.parseInt(`${e[2]}${e[3]}`,16),Number.parseInt(`${e[4]}${e[5]}`,16)]}static encodeRGB(t,e,i){return this.encodeTriplet(0,t,e)+this.encodeTriplet(i,255,255)}static encodeTriplet(t,e,i){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s=(3&t)<<4|e>>4,a=(15&e)<<2|i>>6,l=63&i;return r.charAt(t>>2)+r.charAt(s)+r.charAt(a)+r.charAt(l)}static generatePixel(t){return`data:image/gif;base64,R0lGODlhAQABAPAA${t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`}}function LDe(n){n.x0=Math.round(n.x0),n.y0=Math.round(n.y0),n.x1=Math.round(n.x1),n.y1=Math.round(n.y1)}function NDe(n,t,e,i,r){for(var s,o=n.children,a=-1,l=o.length,c=n.value&&(i-t)/n.value;++aM&&(M=c),N=_*_*L,(C=Math.max(M/N,N/b))>E){_-=c;break}E=C}s.push(l={value:_,dice:f1?i:1)},e}((1+Math.sqrt(5))/2);function qw(){return 0}function Gw(n){return function(){return n}}function zDe(){var n=QDe,t=!1,e=1,i=1,r=[0],o=qw,s=qw,a=qw,l=qw,c=qw;function d(h){return h.x0=h.y0=0,h.x1=e,h.y1=i,h.eachBefore(u),r=[0],t&&h.eachBefore(LDe),h}function u(h){var f=r[h.depth],A=h.x0+f,y=h.y0+f,_=h.x1-f,b=h.y1-f;_n.dynamicSettings,hb=Kt(lc,n=>n.searchPattern),GDe=/_\d{4}(?:-\d{1,2}){2}_\d{1,2}-\d{1,2}\./;let Lm=(()=>{class n{static{this.JSON_EXTENSION=".json"}static getNewFileName(e,i){return`${this.getFileNameWithoutTimestamp(e,i)}_${this.getNewTimestamp()}`}static getNewTimestamp(){return n.getFormattedTimestamp(new Date)}static getFormattedTimestamp(e){return e.toISOString().slice(0,16).replace("T","_").replace(":","-")}static getFileNameWithoutTimestamp(e,i){if(!i){const r=GDe.exec(e);if(r)return e.slice(0,r.index);if(e.endsWith(f_.CC_FILE_EXTENSION))return e.slice(0,-f_.CC_FILE_EXTENSION.length);if(e.endsWith(n.JSON_EXTENSION))return e.slice(0,-n.JSON_EXTENSION.length)}return e}static withoutCCExtension(e){return e.replace(/(\.cc)?(\.json)?(\.gz)?$/,"")}}return n})();function mZ(n,t){return function WDe(n){return n.startsWith(`${mu.rootPath}/`)}(t)?Ww(n,t):t}function Ww(n,t){const e=mu.rootPath.length+1,i=t.length<=e?"":`/${t.slice(e)}`;return`${mu.rootPath}/${n}${i}`}function GL(n,t){do{t=t.slice(0,t.lastIndexOf("/"));const e=n.get(t);if(e)return e}while(t!==mu.rootPath&&t.length>0)}let pZ=(()=>{class n{static{this.projectNameArray=[]}static{this.fileNameArray=[]}static{this.fileChecksumArray=[]}static{this.fileSizesSum=0}static calculateAggregationFile(e){const i=lu(e.map(r=>r.file));if(1===i.length)return i[0];this.resetVariables();for(const r of i)this.projectNameArray.push(r.fileMeta.projectName.replace(" ","_")),this.fileNameArray.push(Lm.withoutCCExtension(r.fileMeta.fileName).replace(" ","_")),this.fileChecksumArray.push(r.fileMeta.fileChecksum),this.fileSizesSum+=r.fileMeta.exportedFileSize;return this.getNewAggregatedMap(i)}static getNewAggregatedMap(e){const i={fileMeta:{projectName:`project_aggregation_of_${this.projectNameArray.join("_and_")}`,fileName:`file_aggregation_of_${this.fileNameArray.join("_and_")}`,fileChecksum:this.fileChecksumArray.join(";"),apiVersion:X1.f4.X,exportedFileSize:this.fileSizesSum},map:{name:mu.rootName,type:qa.FOLDER,children:[],attributes:{},path:mu.rootPath},settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}};for(const r of e)i.map.children.push(this.extractNodeFromMap(r));return this.aggregateRootAttributes(i),i}static aggregateRootAttributes(e){for(const{attributes:i}of e.map.children)for(const r of Object.keys(i))void 0===e.map.attributes[r]&&(e.map.attributes[r]=0),e.map.attributes[r]+=i[r]}static extractNodeFromMap(e){const i={name:e.fileMeta.fileName,children:e.map.children,type:e.map.type};e.map.path&&(i.path=Ww(e.fileMeta.fileName,e.map.path));for(const r of Object.keys(e.map))"name"!==r&&"path"!==r&&"children"!==r&&(i[r]=e.map[r]);return this.updatePathOfAllChildren(e.fileMeta.fileName,i.children),i}static updatePathOfAllChildren(e,i){for(const r of i)r.path&&(r.path=Ww(e,r.path)),r.children&&this.updatePathOfAllChildren(e,r.children)}static resetVariables(){this.projectNameArray=[],this.fileNameArray=[],this.fileChecksumArray=[],this.fileSizesSum=0}}return n})();const $De=Kt(Xs,n=>n.edgeMetricData.map(t=>t.name));class jDe{static createCodeMapFromHashMap(t){let e;for(const[i,r]of t)i===mu.rootPath?e=r:GL(t,i).children.push(r);return e}static getDeltaFile(t,e){const i=this.getDeltaNodesByPath(t.map,e.map),r=this.createCodeMapFromHashMap(i),o=this.getFileMetaData(t,e);return this.getNewCCFileWithDeltas(r,o)}static getDeltaNodesByPath(t,e){const i=new Map,r=this.getReferenceNodesByPath(t);return this.addExistingAndNewNodesToDeltaMap(r,e,i),this.addDeletedNodesToDeltaMap(r,i),i}static getReferenceNodesByPath(t){const e=new Map;for(const{data:i}of yo(t))e.set(i.path,i);return e}static addExistingAndNewNodesToDeltaMap(t,e,i){for(const{data:r}of yo(e)){const o=t.get(r.path);if(o){(o.children||r.children)&&(o.children=[]);const{deltaList:a,differenceExists:l}=this.compareAttributeValues(o.attributes,r.attributes);o.deltas=a;const c=l?1:0;o.attributes=r.attributes,o.fileCount={added:0,removed:0,changed:c}}else r.children&&(r.children=[]),r.deltas={...r.attributes},r.fileCount={added:r.type===qa.FILE?1:0,removed:0,changed:0};const s=o??r;i.set(s.path,s),t.delete(s.path)}}static addDeletedNodesToDeltaMap(t,e){for(const i of t.values()){i.children&&(i.children=[]),i.deltas={},i.fileCount={added:0,removed:i.type===qa.FILE?1:0,changed:0};for(const[r,o]of Object.entries(i.attributes))i.deltas[r]=-o,i.attributes[r]=0;e.set(i.path,i)}}static compareAttributeValues(t,e){const i={};let r=!1;const o=new Set(Object.keys(t));for(const s of Object.keys(e))o.add(s);for(const s of o){const a=t[s]??0,l=e[s]??0;a!==l&&(r=!0),i[s]=l-a}return{deltaList:i,differenceExists:r}}static getFileMetaData(t,e){return{fileName:`delta_between_${Lm.withoutCCExtension(t.fileMeta.fileName)}_and_${Lm.withoutCCExtension(e.fileMeta.fileName)}`,fileChecksum:`${t.fileMeta.fileChecksum};${e.fileMeta.fileChecksum}`,apiVersion:X1.f4.X,projectName:`delta_between_${t.fileMeta.projectName}_and_${e.fileMeta.projectName}`,exportedFileSize:t.fileMeta.exportedFileSize+e.fileMeta.exportedFileSize}}static getNewCCFileWithDeltas(t,e){return{map:t,fileMeta:e,settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}}}}const KDe=(n,t,e)=>{const i=new Map;for(const r of e){const o=n.get(r);o&&i.set(r,o.get(t.data.path))}return i},WL=Kt(k1,n=>n.attributeTypes),AZ=Object.freeze({unifiedMapNode:void 0,unifiedFileMeta:void 0}),Hc=Kt(Xs,au,WL,su,$De,(n,t,e,i,r)=>{if(!xW(t)||!n.nodeMetricData)return AZ;const o=ZDe(lu(t));return o?.map?(XR.decorateMap(o.map,n,i),((n,t,e)=>{if(0!==e.length)for(const i of yo(t))if(No(i)){const r=KDe(n,i,e);for(const[o,s]of r)i.data.edgeAttributes[o]=s}})(n.nodeEdgeMetricsMap,o.map,r),XR.decorateParentNodesWithAggregatedAttributes(o.map,ou(t),e),{unifiedMapNode:o.map,unifiedFileMeta:o.fileMeta}):AZ}),ZDe=n=>{if(CW(n))return pZ.calculateAggregationFile(n);if(ou(n)){const[t,e]=n;return e&&t.file.map.name!==e.file.map.name?pZ.calculateAggregationFile(n):(n=>{if(2===n.length){let[t,e]=n;if(t.selectedAs!==er.Reference){const i=e;e=t,t=i}return jDe.getDeltaFile(t.file,e.file)}return n[0].file})(n)}},gZ=Kt(Hc,hb,(n,t)=>function qDe(n,t){if(0===(t=t.trimStart()).length||!n)return[];const e=TW(t),i=[];for(const{data:r}of yo(n))e.ignoredNodePaths.ignores(i_(r.path))===e.condition&&i.push(r);return i}(n.unifiedMapNode,t)),$L=Kt(gZ,n=>new Set(n.map(t=>t.path))),jL={getColorByTrueGradient(n,t,e,i){const r=(t.from+t.to)/2,o=lr.convertHexToColorObject(n.neutral);if(i<=r){const l=i/r,c=lr.convertHexToColorObject(n.positive);return lr.convertColorToHex((new tn).lerpColors(c,o,l))}const s=(i-r)/(e.maxValue-r),a=lr.convertHexToColorObject(n.negative);return lr.convertColorToHex((new tn).lerpColors(o,a,s))},getColorByFocusedGradient(n,t,e,i){const r=(t.from+t.to)/2,o=lr.convertHexToColorObject(n.neutral);if(i=t.to&&t.to!==e.maxValue)return n.negative;if(i===r)return n.neutral;if(in.colorMetric),Jh=Kt(Xs,Nm,(n,t)=>{const e=n.nodeMetricData.find(i=>i.name===t);return{values:e?.values??[],minValue:e?.minValue??0,maxValue:e?.maxValue??0}}),us=250;function yZ(n,t,e,i){const r=p2(n.files);if(i)return 2;let o=t.attributes[n.dynamicSettings.heightMetric]||0;o*=r;const s=n.dynamicSettings.heightMetric;return 1===n.fileSettings.attributeDescriptors[s]?.direction?n.appSettings.invertHeight?o:e-o:n.appSettings.invertHeight?e-o:o}function wZ(n,t,e,i){const r=e.deltas?.[i.dynamicSettings.heightMetric]?0:2;return Math.max(Math.abs(t*n),r)}function KL(n,t,e,i){return!(n.isExcluded||t&&e.appSettings.hideFlatBuildings&&i)&&(!(e.dynamicSettings.focusedNodePath.length>0)||n.path.startsWith(e.dynamicSettings.focusedNodePath[0]))}function LT(n,t,e,i,r){return n>e?new se(i.x-r+n/4,i.y+t,i.z-r+e/2):new se(i.x-r+n/2,i.y+t,i.z-r+e/4)}function xZ(n,t,e,i,r){return n>e?new se(i.x-r+.75*n,i.y+t,i.z-r+e/2):new se(i.x-r+n/2,i.y+t,i.z-r+.75*e)}function NT(n,t){if(n.isFlattened)return!0;const e=$L(t);return e&&t.dynamicSettings.searchPattern?.length>0?0===e.size||function i3e(n,t){return!$L(t).has(n.path)}(n,t):!(!t.appSettings.showOnlyBuildingsWithEdges||!t.fileSettings.edges.some(i=>i.visible))&&function n3e(n,t){return void 0===n.edgeAttributes[t.dynamicSettings.edgeMetric]||!t.fileSettings.edges.some(e=>n.path===e.fromNodeName||n.path===e.toNodeName)}(n,t)}function YL(n,{appSettings:t,dynamicSettings:e},i,r,o){const{mapColors:s}=t;if(r)return s.base;const a=n.attributes[e.colorMetric];if(void 0===a)return s.base;if(o)return s.flat;const{colorRange:l,colorMode:c}=e;return"unary"===e.colorMetric?s.positive:c===hm.absolute?a0)for(const i of n.children)e+=vZ(i,t);return e},buildNodeFrom:function t3e(n,t,e,i,r){const o=p2(i.files),{x0:s,x1:a,y0:l,y1:c,data:d}=n,u=No(n),h=NT(d,i),f=yZ(i,d,e,h),A=d.path.split("/").length-2,y=u?wZ(f,t,d,i)*o:2,_=a-s,b=c-l,M=2*n.depth,C=(d.deltas?.[i.dynamicSettings.heightMetric]??0)*t*o,E=y+(C<0?Math.abs(C):0);return{name:d.name,id:d.id,width:_,height:y,length:b,depth:A,mapNodeDepth:n.depth,x0:s,z0:M,y0:l,isLeaf:u,attributes:d.attributes,edgeAttributes:d.edgeAttributes,deltas:d.deltas,heightDelta:C,visible:KL(d,u,i,h),path:d.path,link:d.link,markingColor:f2(d,i.fileSettings.markedPackages),flat:h,color:YL(d,i,Jh(i),r,h),incomingEdgePoint:LT(_,E,b,new se(s,M,l),us),outgoingEdgePoint:xZ(_,E,b,new se(s,M,l),us)}},isNodeFlat:NT,resolveHeightValue:wZ,getHeightValue:yZ,FOLDER_HEIGHT:2,MIN_BUILDING_HEIGHT:2,HEIGHT_VALUE_WHEN_METRIC_NOT_FOUND:0},CZ=.4,MZ=120,EZ=95,r3e=.035,o3e=.028,ZL=3;function SZ(n,t,e,i,r,o,s,a,l,c,d){const u=[];for(const h of n.children){const f=h.data.fixedPosition,A=IZ(h.data,t,d,l);for(const y of A.treeMap.descendants()){const _=f.width/A.width,b=f.height/A.height;y.x0=(y.x0*_+f.left)*i,y.x1=(y.x1*_+f.left)*i,y.y0=(y.y0*b+f.top)*e,y.y1=(y.y1*b+f.top)*e,y.x0+=r,y.x1+=r,y.y0+=o,y.y1+=o;const M=Ca.buildNodeFrom(y,s,a,t,c);if(u.push(M),TZ(h.data)){Array.prototype.push.apply(u,SZ(h,t,M.length/100,M.width/100,y.x0,y.y0,s,a,l,c,d));break}}}return u}function TZ(n){return!!n.children[0]?.fixedPosition}function IZ(n,t,e,i){const r=yo(n),o=FZ(r),{enableFloorLabels:s}=t.appSettings,{margin:a}=t.dynamicSettings,l=a*CZ*e;let c,d;void 0!==n.fixedPosition?(c=n.fixedPosition.width,d=n.fixedPosition.height):(c=2*us,d=2*us);let u=0;r.eachAfter(_=>{!No(_)&&s&&(0===_.depth&&(u+=MZ),_.depth>0&&_.depth{if(!A&&null===_.parent&&(A=_),A&&s){if(0===_.depth)return Math.max((A.x1-A.x0)*r3e,MZ);if(_.depth>0&&_.depthfunction c3e(n,{dynamicSettings:t,appSettings:e,fileSettings:i},r){if(n.isExcluded)return 0;if(n.deltas&&function l3e(n,t){return 0===n.attributes[t.areaMetric]&&n.deltas[t.heightMetric]<0}(n,t))return Math.abs(n.deltas[t.areaMetric]);if(No(n)&&n.attributes?.[t.areaMetric]){const o=t.areaMetric;return 1===i.attributeDescriptors[o]?.direction?e.invertArea?n.attributes[t.areaMetric]:r-n.attributes[t.areaMetric]:e.invertArea?r-n.attributes[t.areaMetric]:n.attributes[t.areaMetric]}return 0}(_,t,i)*e)),height:f,width:h}}function FZ(n){let t=0,e=0;return n.each(({data:i})=>{(i.isExcluded||i.isFlattened)&&e++,t++}),2*Math.sqrt(t-e)}class $w{static getMapResolutionScaling(t){const{width:e}=document.getElementById("codeMapScene"),i=$w.getScalingThreshold(e);return t>i?i/t:1}static getScalingThreshold(t){return Math.min(4*t,10240)}static isLabelNode(t){return!t.isLeaf&&t.mapNodeDepthe&&(r=e,o=t),i.width=r,i.height=o;const s=i.getContext("2d");return s.fillStyle="white",s.textAlign="center",s.textBaseline="middle",{textCanvas:i,context:s}}writeLabelsOnCanvas(t,e,i){const{width:r,length:o}=this.rootNode;for(const s of e){let a=0===s.depth?Math.max(Math.floor(.03*r),120):Math.max(Math.floor(.023*r),95);a*=i,t.font=`${a}px Arial`;const l=fb.getLabelAndSetContextFont(s,t,i,a);t.fillText(l.labelText,(o-s.y0-s.length/2)*i,(s.x0+s.width)*i-l.fontSize/2)}}drawLevelPlaneGeometry(t,e,i,r,o){const s=new sFe(t);s.wrapS=x_,s.wrapT=x_,s.repeat.x=-1,s.needsUpdate=!0,s.rotation=90*Math.PI/180;const a=new Z_(e,i),l=new jh({side:1,map:s,transparent:!0}),c=new ki(a,l);c.rotateX(90*Math.PI/180),a.translate(e/2,i/2,-this.folderGeometryHeight*this.scaling.y*(r+1)-2),c.scale.set(this.scaling.x/o,this.scaling.z/o,1),c.position.set(-this.mapSize*this.scaling.x,0,-this.mapSize*this.scaling.z),this.floorLabelPlanes.push(c),this.floorLabelPlaneLevel.set(c,r)}static getLabelAndSetContextFont(t,e,i,r){const o=t.name,s=t.length*i;e.font=`${r}px Arial`;const a=e.measureText(o),l=fb.getFontScaleFactor(s,a.width);return l<=.5?(r*=.5,r=Math.floor(Math.min(r,t.width*i)),e.font=`${r}px Arial`,{labelText:fb.getFittingLabelText(e,s,o),fontSize:r}):(r=Math.floor(Math.min(r*l,t.width*i)),e.font=`${r}px Arial`,{labelText:o,fontSize:r})}static getFontScaleFactor(t,e){return e=e&&o>1;)o-=1,s=`${i.slice(0,o)}\u2026`;return s}}const JL=hn("SET_SELECTED_BUILDING_ID",{_as:"props",_p:void 0}),mb=Kt(Hc,n=>{if(!n.unifiedMapNode)return new Map;const t=new Map([[n.unifiedMapNode.id,n.unifiedMapNode]]);for(const{data:e}of yo(n.unifiedMapNode))t.set(e.id,e);return t}),pb=Kt(so,n=>n.mapColors),Xi=n=>(t,e)=>void 0===e.value?n:e.value,UT=n=>(t,e)=>void 0===e.value?n:{...t,...e.value},Cu={positive:"#69AE40",neutral:"#ddcc00",negative:"#820E0E",selected:"#EB8319",positiveDelta:"#64d051",negativeDelta:"#ff0E0E",base:"#666666",flat:"#AAAAAA",markingColors:["#FF1D8E","#1d8eff","#1DFFFF","#8eff1d","#8e1dff"],incomingEdge:"#00ffff",outgoingEdge:"#ff00ff",labelColorAndAlpha:{rgb:"#e0e0e0",alpha:.7}},d3e=wi(Cu,An(bh,UT(Cu)),An(YE,n=>({...n,positive:n.negative,negative:n.positive})),An(ZE,n=>({...n,positiveDelta:n.negativeDelta,negativeDelta:n.positiveDelta})));class eN{constructor(){this.listeners={}}on(t,e){this.listeners[t]??=[],this.listeners[t].push(e)}emit(t,e){if(!this.listeners[t]?.length)return!1;for(const i of this.listeners[t])i(e);return!0}}let jw=(()=>{class n{constructor(){this.idToBuilding=new Map}setIdToBuilding(e){this.idToBuilding=new Map;for(const i of e)this.idToBuilding.set(i.node.id,i)}get(e){return this.idToBuilding.get(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class HT{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const u3e=new GS(-1,1,1,-1,0,1),f3e=new class h3e extends gi{constructor(){super(),this.setAttribute("position",new Bn([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Bn([0,2,0,0,2,0],2))}};class m3e{constructor(t){this._mesh=new ki(f3e,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,u3e)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class p3e extends HT{constructor(t,e,i=null,r=null,o=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=i,this.clearColor=r,this.clearAlpha=o,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new tn}render(t,e,i){const r=t.autoClear;let o,s;t.autoClear=!1,null!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(o=t.getClearAlpha(),t.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:i),!0===this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),null!==this.clearColor&&t.setClearColor(this._oldClearColor),null!==this.clearAlpha&&t.setClearAlpha(o),null!==this.overrideMaterial&&(this.scene.overrideMaterial=s),t.autoClear=r}}const g3e=class A3e{static isWebGL2Available(){try{const t=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!t.getContext("webgl2"))}catch{return!1}}static isColorSpaceAvailable(t){try{const e=document.createElement("canvas"),i=window.WebGL2RenderingContext&&e.getContext("webgl2");return i.drawingBufferColorSpace=t,i.drawingBufferColorSpace===t}catch{return!1}}static getWebGL2ErrorMessage(){return this.getErrorMessage(2)}static getErrorMessage(t){const i={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext};let r='Your $0 does not seem to support $1';const o=document.createElement("div");return o.id="webglmessage",o.style.fontFamily="monospace",o.style.fontSize="13px",o.style.fontWeight="normal",o.style.textAlign="center",o.style.background="#fff",o.style.color="#000",o.style.padding="1.5em",o.style.width="400px",o.style.margin="5em auto 0",r=r.replace("$0",i[t]?"graphics card":"browser"),r=r.replace("$1",{1:"WebGL",2:"WebGL 2"}[t]),o.innerHTML=r,o}static isWebGLAvailable(){console.warn("isWebGLAvailable() has been deprecated and will be removed in r178. Use isWebGL2Available() instead.");try{const t=document.createElement("canvas");return!(!window.WebGLRenderingContext||!t.getContext("webgl")&&!t.getContext("experimental-webgl"))}catch{return!1}}static getWebGLErrorMessage(){return console.warn("getWebGLErrorMessage() has been deprecated and will be removed in r178. Use getWebGL2ErrorMessage() instead."),this.getErrorMessage(1)}};class DZ extends HT{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof Al?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=UO.clone(t.uniforms),this.material=new Al({name:void 0!==t.name?t.name:"unspecified",defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new m3e(this.material)}render(t,e,i){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=i.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class tN extends HT{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,i){const r=t.getContext(),o=t.state;let s,a;o.buffers.color.setMask(!1),o.buffers.depth.setMask(!1),o.buffers.color.setLocked(!0),o.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),o.buffers.stencil.setTest(!0),o.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),o.buffers.stencil.setFunc(r.ALWAYS,s,4294967295),o.buffers.stencil.setClear(a),o.buffers.stencil.setLocked(!0),t.setRenderTarget(i),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),o.buffers.color.setLocked(!1),o.buffers.depth.setLocked(!1),o.buffers.color.setMask(!0),o.buffers.depth.setMask(!0),o.buffers.stencil.setLocked(!1),o.buffers.stencil.setFunc(r.EQUAL,1,4294967295),o.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),o.buffers.stencil.setLocked(!0)}}class kZ extends HT{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}const _3e={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class b3e{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const i=t.getSize(new nt);this._width=i.width,this._height=i.height,(e=new Lc(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:C_})).texture.name="EffectComposer.rt1"}else this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new DZ(_3e),this.copyPass.material.blending=0,this.clock=new WY}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;en.isWhiteBackground);class v3e{constructor(){this.vertexShader=p(889),this.fragmentShader=p(6655),this.uniforms={tDiffuse:{value:null},resolution:{value:new nt(1/1024,1/512)}}}}class Ki{static{this.BACKGROUND_COLOR={white:16777215,normal:16053483}}static{this.CLEAR_COLOR=Ki.BACKGROUND_COLOR.normal}static{this.CLEAR_ALPHA=1}static{this.RENDER_OPTIONS={antialias:!0,preserveDrawingBuffer:!0,alpha:!0}}static{this.enableFXAA=!1}static{this.setPixelRatio=!1}constructor(t,e){this.store=t,this.state=e,this.setBackgroundColorToState=i=>{Ki.CLEAR_COLOR=i?Ki.BACKGROUND_COLOR.white:Ki.BACKGROUND_COLOR.normal,this.renderer?.setClearColor(Ki.CLEAR_COLOR,Ki.CLEAR_ALPHA)},this.initGL=(i,r)=>{if(this.setGLOptions(),this.renderer=new ZO(Ki.RENDER_OPTIONS),Ki.setPixelRatio&&this.renderer.setPixelRatio(window.devicePixelRatio),Ki.enableFXAA)if(g3e.isWebGL2Available){const o=this.renderer.getDrawingBufferSize(new nt),s=new Lc(o.width,o.height,{format:$a});this.composer=new BZ(this.renderer,s)}else this.composer=new BZ(this.renderer);this.renderer.setSize(i,r),this.renderer.domElement.id="codeMapScene",Ki.enableFXAA&&this.initComposer()},this.setGLOptions=()=>{switch(this.state.getValue().appSettings.sharpnessMode){case gA.Standard:Ki.RENDER_OPTIONS.antialias=!0,Ki.enableFXAA=!1,Ki.setPixelRatio=!1;break;case gA.PixelRatioNoAA:Ki.RENDER_OPTIONS.antialias=!1,Ki.enableFXAA=!1,Ki.setPixelRatio=!0;break;case gA.PixelRatioFXAA:Ki.RENDER_OPTIONS.antialias=!1,Ki.enableFXAA=!0,Ki.setPixelRatio=!0;break;case gA.PixelRatioAA:Ki.RENDER_OPTIONS.antialias=!0,Ki.enableFXAA=!1,Ki.setPixelRatio=!0}},this.initComposer=()=>{const i=this.renderer.getPixelRatio();this.composer.setSize(window.innerWidth*i,window.innerHeight*i);const r=new p3e(this.scene,this.camera);this.composer.addPass(r);const o=new DZ(new v3e);o.renderToScreen=!1,o.uniforms.resolution.value.x=1/(window.innerWidth*i),o.uniforms.resolution.value.y=1/(window.innerHeight*i),this.composer.addPass(o)},this.getInfo=()=>Ki.enableFXAA?this.composer.getInfo():this.renderer.info.render,this.getMemoryInfo=()=>Ki.enableFXAA?this.composer.getMemoryInfo():this.renderer.info.memory}init(t,e,i,r){this.scene=i,this.camera=r,this.initGL(t,e),this.store.select(PZ).subscribe(this.setBackgroundColorToState)}render(){const{scene:t,camera:e,composer:i,renderer:r}=this;Ki.enableFXAA?i?.render():r?.render(t,e)}static{this.\u0275fac=function(e){return new(e||Ki)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:Ki,factory:Ki.\u0275fac,providedIn:"root"})}}let Vc=(()=>{class n{constructor(e,i,r,o){this.store=e,this.state=i,this.idToBuilding=r,this.threeRendererService=o,this.eventEmitter=new eN,this.selected=null,this.highlighted=[],this.constantHighlight=new Map,this.folderLabelColorHighlighted=lr.convertHexToNumber("#FFFFFF"),this.folderLabelColorNotHighlighted=lr.convertHexToNumber("#7A7777"),this.rayPoint=new se(0,0,0),this.normedTransformVector=new se(0,0,0),this.highlightedLabel=null,this.highlightedLineIndex=-1,this.highlightedLine=null,this.subscription=this.store.select(pb).subscribe(s=>{this.folderLabelColorSelected=s.selected,this.numberSelectionColor=lr.convertHexToNumber(this.folderLabelColorSelected)}),this.scene=new KS,this.mapGeometry=new gl,this.lights=new gl,this.labels=new gl,this.floorLabelPlanes=new gl,this.edgeArrows=new gl,this.initLights(),this.scene.add(this.mapGeometry),this.scene.add(this.edgeArrows),this.scene.add(this.labels),this.scene.add(this.lights),this.scene.add(this.floorLabelPlanes)}ngOnDestroy(){this.subscription.unsubscribe()}initFloorLabels(e){this.floorLabelPlanes.clear();const{layoutAlgorithm:i,enableFloorLabels:r}=this.state.getValue().appSettings;if(i!==hu.SquarifiedTreeMap||!r)return;const o=this.getRootNode(e);if(!o)return;const s=this.state.getValue().appSettings.scaling,a=this.state.getValue().appSettings.experimentalFeaturesEnabled,l=new se(s.x,s.y,s.z);this.floorLabelDrawer=new fb(this.mapMesh.getNodes(),o,us,l,a);const c=this.floorLabelDrawer.draw(this.state.getValue());c.length>0&&(this.floorLabelPlanes.add(...c),this.scene.add(this.floorLabelPlanes))}getRootNode(e){return e.find(i=>0===i.id)}getConstantHighlight(){return this.constantHighlight}highlightBuildings(){const e=this.state.getValue();this.getMapMesh().highlightBuilding(this.highlighted,this.selected,e,this.constantHighlight),this.mapGeometry.children[0]&&this.highlightMaterial(this.mapGeometry.children[0].material),this.threeRendererService.render()}selectMaterial(e){e.find(({userData:r})=>r.id===this.selected.node.id)?.color.setHex(this.numberSelectionColor)}resetMaterial(e){const i=this.selected?this.selected.node.id:-1;for(const r of e)r.userData.id!==i&&r.color?.setHex(this.folderLabelColorHighlighted)}scaleHeight(){const e=this.state.getValue().appSettings.scaling;this.floorLabelDrawer?.translatePlaneCanvases(e),this.mapGeometry.scale.set(e.x,e.y,e.z),this.mapGeometry.position.set(-us*e.x,0,-us*e.z),this.mapMesh.setScale(e)}highlightMaterial(e){const i=new Set(this.highlighted.map(({node:o})=>o.id)),r=new Set;for(const{node:o}of this.constantHighlight.values())r.add(o.id);for(const o of e){const s=o.userData.id;this.selected&&s===this.selected.node.id?o.color.setHex(this.numberSelectionColor):i.has(s)||r.has(s)?o.color.setHex(this.folderLabelColorHighlighted):o.color?.setHex(this.folderLabelColorNotHighlighted)}}highlightSingleBuilding(e){this.highlighted=[],this.addBuildingToHighlightingList(e),this.highlightBuildings()}addBuildingToHighlightingList(e){this.highlighted.push(e)}clearHoverHighlight(){this.highlighted=[],this.highlightBuildings()}clearHighlight(){this.getMapMesh()&&(this.getMapMesh().clearHighlight(this.selected),this.highlighted=[],this.constantHighlight.clear(),this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material))}selectBuilding(e){e.id!==this.selected?.id&&this.store.dispatch(JL({value:e.node.id})),this.getMapMesh().selectBuilding(e,this.folderLabelColorSelected),this.selected=e,this.highlightBuildings(),this.eventEmitter.emit("onBuildingSelected",{building:this.selected}),this.mapGeometry.children[0]&&this.selectMaterial(this.mapGeometry.children[0].material)}animateLabel(e,i,r){if(null!==e&&null!==i){this.resetLabel(),e.material&&(e.material.opacity=1),this.highlightedLineIndex=this.getHoveredLabelLineIndex(r,e),this.highlightedLine=r[this.highlightedLineIndex],this.rayPoint=new se,this.rayPoint.subVectors(i.ray.origin,e.position);const o=Math.sqrt(this.rayPoint.x**2+this.rayPoint.y**2+this.rayPoint.z**2);this.normedTransformVector=new se(this.rayPoint.x/o,this.rayPoint.y/o,this.rayPoint.z/o);const a=this.calculateMaxDistance(e,r,i.ray.origin);this.normedTransformVector.multiplyScalar(a),e.position.add(this.normedTransformVector),this.toggleLineAnimation(e),this.highlightedLabel=e}}resetLineHighlight(){this.highlightedLineIndex=-1,this.highlightedLine=null}resetLabel(){null!==this.highlightedLabel&&(this.highlightedLabel.position.sub(this.normedTransformVector),this.highlightedLabel.material.opacity=Cu.labelColorAndAlpha.alpha,this.highlightedLine&&this.toggleLineAnimation(this.highlightedLabel),this.highlightedLabel=null)}getHoveredLabelLineIndex(e,i){const r=e.findIndex(({uuid:o})=>o===i.uuid);if(r>=0)return r+1}toggleLineAnimation(e){const i=new se(e.position.x,e.position.y,e.position.z),o=[...this.highlightedLine.geometry.attributes.position.array],s=(new gi).setFromPoints([new se(o[0],o[1],o[2]),i]),a=new wd(s,this.highlightedLine.material);this.labels.children.splice(this.highlightedLineIndex,1,a)}getLabelForHoveredNode(e,i){for(let r=0;r=i.min[r]&&i.max[r]>=e.min[r])}getIntersectionDistanceFunction(e,i){return r=>{const o=this.normedTransformVector.clone();o.multiplyScalar(r),e.translate(o);const s=this.isOverlapping(i,e,"x")+this.isOverlapping(i,e,"y");return 2===s||1===s&&this.isOverlapping(i,e,"z")?r:0}}calculateMaxDistance(e,i,r){const o=(new Us).setFromObject(e),s=new se;o.getCenter(s);const a=r.distanceTo(s);let l=a/20;for(let c=0;c0&&this.clearHighlight()}clearSelection(){this.selected&&(this.getMapMesh().clearSelection(this.selected),this.store.dispatch(JL({value:null})),this.eventEmitter.emit("onBuildingDeselected")),this.highlighted.length>0&&this.highlightBuildings(),this.selected=null,this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material)}initLights(){const e=new NL(7368816),i=new zw(14737632,1.5);i.position.set(50,10,8).normalize();const r=new zw(14737632,1.5);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r)}setMapMesh(e,i){this.mapMesh=i,this.initFloorLabels(e),this.mapGeometry.children.length=0,this.mapGeometry.position.x=-us,this.mapGeometry.position.y=0,this.mapGeometry.position.z=-us,this.mapGeometry.add(this.mapMesh.getThreeMesh()),this.idToBuilding.setIdToBuilding(this.mapMesh.getMeshDescription().buildings)}getMapMesh(){return this.mapMesh}getSelectedBuilding(){return this.selected}getHighlightedBuilding(){return this.highlighted[0]}dispose(){this.mapMesh?.dispose()}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(jw),ve(Ki))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VT=(()=>{class n{constructor(e){this.threeSceneService=e,this.isOpen=!1,this.threeSceneService.subscribe("onBuildingSelected",()=>{this.isOpen=!0}),this.threeSceneService.subscribe("onBuildingDeselected",()=>{this.isOpen=!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(Vc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Mu=(()=>{class n{static{this.VIEW_ANGLE=45}static{this.NEAR=50}static{this.FAR=2e5}init(e,i){this.camera=new Hs(n.VIEW_ANGLE,e/i,n.NEAR,n.FAR),this.setPosition(new se(0,300,1e3))}setPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const RZ={type:"change"},nN={type:"start"},OZ={type:"end"},QT=new BA,LZ=new Dm,y3e=Math.cos(70*hEe_DEG2RAD),zs=new se,bl=2*Math.PI,iN=1e-6;class rN extends RDe{constructor(t,e=null){super(t,e),this.state=-1,this.enabled=!0,this.target=new se,this.cursor=new se,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},this.touches={ONE:0,TWO:2},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new se,this._lastQuaternion=new Ka,this._lastTargetPosition=new se,this._quat=(new Ka).setFromUnitVectors(t.up,new se(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new eZ,this._sphericalDelta=new eZ,this._scale=1,this._panOffset=new se,this._rotateStart=new nt,this._rotateEnd=new nt,this._rotateDelta=new nt,this._panStart=new nt,this._panEnd=new nt,this._panDelta=new nt,this._dollyStart=new nt,this._dollyEnd=new nt,this._dollyDelta=new nt,this._dollyDirection=new se,this._mouse=new nt,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=x3e.bind(this),this._onPointerDown=w3e.bind(this),this._onPointerUp=C3e.bind(this),this._onContextMenu=D3e.bind(this),this._onMouseWheel=S3e.bind(this),this._onKeyDown=T3e.bind(this),this._onTouchStart=I3e.bind(this),this._onTouchMove=F3e.bind(this),this._onMouseDown=M3e.bind(this),this._onMouseMove=E3e.bind(this),this._interceptControlDown=k3e.bind(this),this._interceptControlUp=B3e.bind(this),null!==this.domElement&&this.connect(),this.update()}connect(){this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){null!==this._domElementKeyEvents&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(RZ),this.update(),this.state=-1}update(t=null){const e=this.object.position;zs.copy(e).sub(this.target),zs.applyQuaternion(this._quat),this._spherical.setFromVector3(zs),this.autoRotate&&-1===this.state&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(i)&&isFinite(r)&&(i<-Math.PI?i+=bl:i>Math.PI&&(i-=bl),r<-Math.PI?r+=bl:r>Math.PI&&(r-=bl),this._spherical.theta=i<=r?Math.max(i,Math.min(r,this._spherical.theta)):this._spherical.theta>(i+r)/2?Math.max(i,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let o=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const s=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),o=s!=this._spherical.radius}if(zs.setFromSpherical(this._spherical),zs.applyQuaternion(this._quatInverse),e.copy(this.target).add(zs),this.object.lookAt(this.target),!0===this.enableDamping?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let s=null;if(this.object.isPerspectiveCamera){const a=zs.length();s=this._clampDistance(a*this._scale);const l=a-s;this.object.position.addScaledVector(this._dollyDirection,l),this.object.updateMatrixWorld(),o=!!l}else if(this.object.isOrthographicCamera){const a=new se(this._mouse.x,this._mouse.y,0);a.unproject(this.object);const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),o=l!==this.object.zoom;const c=new se(this._mouse.x,this._mouse.y,0);c.unproject(this.object),this.object.position.sub(c).add(a),this.object.updateMatrixWorld(),s=zs.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==s&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position):(QT.origin.copy(this.object.position),QT.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(QT.direction))iN||8*(1-this._lastQuaternion.dot(this.object.quaternion))>iN||this._lastTargetPosition.distanceToSquared(this.target)>iN)&&(this.dispatchEvent(RZ),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?bl/60*this.autoRotateSpeed*t:bl/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(.01*t);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){zs.setFromMatrixColumn(e,0),zs.multiplyScalar(-t),this._panOffset.add(zs)}_panUp(t,e){!0===this.screenSpacePanning?zs.setFromMatrixColumn(e,1):(zs.setFromMatrixColumn(e,0),zs.crossVectors(this.object.up,zs)),zs.multiplyScalar(t),this._panOffset.add(zs)}_pan(t,e){const i=this.domElement;if(this.object.isPerspectiveCamera){zs.copy(this.object.position).sub(this.target);let o=zs.length();o*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*o/i.clientHeight,this.object.matrix),this._panUp(2*e*o/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const i=this.domElement.getBoundingClientRect(),o=e-i.top,a=i.height;this._mouse.x=(t-i.left)/i.width*2-1,this._mouse.y=-o/a*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(bl*this._rotateDelta.x/e.clientHeight),this._rotateUp(bl*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateUp(bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateUp(-bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateLeft(bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateLeft(-bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(-this.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(1===this._pointers.length)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t);this._rotateStart.set(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}}_handleTouchStartPan(t){if(1===this._pointers.length)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t);this._panStart.set(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,r=t.pageY-e.y,o=Math.sqrt(i*i+r*r);this._dollyStart.set(0,o)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(1==this._pointers.length)this._rotateEnd.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t);this._rotateEnd.set(.5*(t.pageX+i.x),.5*(t.pageY+i.y))}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(bl*this._rotateDelta.x/e.clientHeight),this._rotateUp(bl*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(1===this._pointers.length)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t);this._panEnd.set(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,r=t.pageY-e.y,o=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,o),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd),this._updateZoomParameters(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e{class n{static{this.CAMERA_CHANGED_EVENT_NAME="camera-changed"}constructor(e,i,r){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.MAX_ZOOM=200,this.MIN_ZOOM=10,this.eventEmitter=new eN,this.zoomPercentage$=new Ia(100)}setControlTarget(e){this.controls.target.set(e.x,e.y,e.z)}rotateCameraInVectorDirection(e,i,r){const o=this.getZoom();this.lookAtDirectionFromTarget(e,i,r),this.applyOldZoom(o),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)}autoFitTo(){setTimeout(()=>{const e=this.getBoundingSphere();if(!e||-1===e.radius)return;const i=this.cameraPerspectiveLengthCalculation(e);this.threeCameraService.camera.position.set(i,i,e.center.z),this.positionBeforeFocus=new se(i,i,e.center.z),this.controls.update(),this.focusCameraViewToCenter(e),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera),this.controls.maxDistance=4*i,this.controls.minDistance=e.radius/13,this.setZoomPercentage(140)})}cameraPerspectiveLengthCalculation(e){const o=this.threeCameraService.camera.fov*Math.PI/180*1.3,s=e.radius/Math.tan(o/2);return Math.sqrt(Math.pow(s,2)+Math.pow(s,2))}focusCameraViewToCenter(e){const i=e.center.clone();i.setY(0),this.controls.target.set(i.x,i.y,i.z),this.threeCameraService.camera.lookAt(i),this.threeCameraService.camera.updateProjectionMatrix()}getBoundingSphere(){return(new Us).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Ys)}lookAtDirectionFromTarget(e,i,r){this.threeCameraService.camera.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z);const o=new ki(new ac(20,20,20),new DY);this.threeSceneService.scene.add(o),o.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z),o.translateX(e),o.translateY(i),o.translateZ(r),this.threeCameraService.camera.lookAt(o.getWorldPosition(o.position)),this.threeSceneService.scene.remove(o)}getZoom(){return this.threeCameraService.camera.position.distanceTo(this.controls.target)}applyOldZoom(e){this.threeCameraService.camera.translateZ(e)}init(e){this.controls=new P3e(this.threeCameraService.camera,e),this.controls.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},window.addEventListener("wheel",i=>{this.controls.zoomToCursor=i.deltaY<=0}),this.controls.minPolarAngle=0,this.controls.maxPolarAngle=Math.PI/2,this.controls.listenToKeyEvents(window),this.controls.addEventListener("change",()=>{this.onInput(this.threeCameraService.camera),this.updateZoomPercentage(),this.threeRendererService.render()}),this.updateZoomPercentage()}onInput(e){this.setControlTarget(this.controls.target),this.eventEmitter.emit("onCameraChanged",{camera:e})}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}getZoomPercentage(e){const i=this.controls.minDistance,r=this.controls.maxDistance;return e<=i?this.MAX_ZOOM:e>=r?this.MIN_ZOOM:this.MAX_ZOOM-(e-i)/(r-i)*(this.MAX_ZOOM-this.MIN_ZOOM)}getDistanceFromZoomPercentage(e){const i=this.controls.minDistance;return i+(this.MAX_ZOOM-e)/(this.MAX_ZOOM-this.MIN_ZOOM)*(this.controls.maxDistance-i)}updateZoomPercentage(){const e=this.threeCameraService.camera.position.distanceTo(this.controls.target),i=this.getZoomPercentage(e);this.zoomPercentage$.next(i)}setZoomPercentage(e){const i=this.getDistanceFromZoomPercentage(e),r=(new se).subVectors(this.threeCameraService.camera.position,this.controls.target).normalize();this.threeCameraService.camera.position.copy(this.controls.target).add(r.multiplyScalar(i)),this.controls.update(),this.zoomPercentage$.next(e)}focusNode(e){this.positionBeforeFocus=this.threeCameraService.camera.position.clone();const o=this.threeSceneService.getMapMesh().getBuildingByPath(e).boundingBox.getBoundingSphere(new Ys);this.ensureProperDistanceAndFocus(o)}unfocusNode(e){if(!this.positionBeforeFocus)return;const i=this.threeCameraService.camera.position.clone(),r=this.positionBeforeFocus.clone(),o=performance.now(),a=l=>{const d=Math.min((l-o)/1e3,1),u=(new se).lerpVectors(i,r,d);this.moveCameraToPosition(u,this.controls.target,!1),d<1?requestAnimationFrame(a):e&&e()};requestAnimationFrame(a)}ensureProperDistanceAndFocus(e){const i=this.threeCameraService.camera.position.distanceTo(e.center),r=1.8*this.cameraPerspectiveLengthCalculation(e);if(i{this.animateCameraTransition(e,1e3)})}else this.animateCameraTransition(e,1e3)}animateCameraTransition(e,i,r){const{center:o,radius:s}=e,a=this.threeCameraService.camera.position.clone(),l=this.calculateCameraEndPosition(o,s,!0),c=performance.now(),d=u=>{const f=Math.min((u-c)/i,1),A=(new se).lerpVectors(a,l,f);this.moveCameraToPosition(A,o,!1),f<1?requestAnimationFrame(d):r&&r()};requestAnimationFrame(d)}calculateCameraEndPosition(e,i,r){const o=this.threeCameraService.camera.position.clone(),s=this.controls.target.clone().sub(o).normalize(),a=this.cameraPerspectiveLengthCalculation({center:e,radius:i})*(r?1.8:1);return e.clone().sub(s.multiplyScalar(a))}moveCameraToPosition(e,i,r=!0){const o=this.threeCameraService.camera;o.position.copy(e),o.lookAt(i),this.controls.target.copy(i),this.controls.update(),r&&this.threeRendererService.render(),this.onInput(o)}static{this.\u0275fac=function(i){return new(i||n)(ve(Mu),ve(Vc),ve(Ki))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Xw=function(){var n=0,t=document.createElement("div");function e(d){return t.appendChild(d.dom),d}function i(d){for(var u=0;u=o+1e3&&(a.update(1e3*s/(d-o),100),o=d,s=0,c)){var u=performance.memory;c.update(u.usedJSHeapSize/1048576,u.jsHeapSizeLimit/1048576)}return d},update:function(){r=this.end()},domElement:t,setMode:i}};Xw.Panel=function(n,t,e){var i=1/0,r=0,o=Math.round,s=o(window.devicePixelRatio||1),a=80*s,l=48*s,c=3*s,d=2*s,u=3*s,h=15*s,f=74*s,A=30*s,y=document.createElement("canvas");y.width=a,y.height=l,y.style.cssText="width:80px;height:48px";var _=y.getContext("2d");return _.font="bold "+9*s+"px Helvetica,Arial,sans-serif",_.textBaseline="top",_.fillStyle=e,_.fillRect(0,0,a,l),_.fillStyle=t,_.fillText(n,c,d),_.fillRect(u,h,f,A),_.fillStyle=e,_.globalAlpha=.9,_.fillRect(u,h,f,A),{dom:y,update:function(b,M){i=Math.min(i,b),r=Math.max(r,b),_.fillStyle=e,_.globalAlpha=1,_.fillRect(0,0,a,h),_.fillStyle=t,_.fillText(o(b)+" "+n+" ("+o(i)+"-"+o(r)+")",c,d),_.drawImage(y,u+s,h,f-s,A,u,h,f-s,A),_.fillRect(u+f-s,h,s,A),_.fillStyle=e,_.globalAlpha=.9,_.fillRect(u+f-s,h,s,o((1-b/M)*A))}}};const Kw=Xw;let NZ=(()=>{class n{constructor(e){this.threeRendererService=e,this.isDevelopmentMode=!1,this.init=i=>{this.isDevelopmentMode&&(this.stats=new Kw,this.stats.dom.style.position="absolute",this.stats.dom.style.left="0",this.stats.dom.style.top="0",i.append(this.stats.dom),this.generateStatPanels(),this.prevTime=this.getTimeFunctor().now())},this.getTimeFunctor=()=>typeof performance>"u"?Date:performance,this.generateStatPanels=()=>{this.trianglesPanel={panel:this.stats.addPanel(new Kw.Panel("triangles","#ff8","#221")),maxHeight:0},this.glCallsPanel={panel:this.stats.addPanel(new Kw.Panel("calls","#f8f","#212")),maxHeight:0},this.geometryMemoryPanel={panel:this.stats.addPanel(new Kw.Panel("geo. mem","#f08","#221")),maxHeight:0},this.textureMemoryPanel={panel:this.stats.addPanel(new Kw.Panel("tex. mem","#0f8","#221")),maxHeight:0},this.stats.showPanel(3)},this.updateStats=()=>{if(this.isDevelopmentMode){const i=this.getTimeFunctor().now();if(i>=this.prevTime+1e3){this.prevTime=i;const r=this.threeRendererService.getInfo(),o=this.threeRendererService.getMemoryInfo();this.processPanel(this.trianglesPanel,r.triangles),this.processPanel(this.glCallsPanel,r.calls),this.processPanel(this.geometryMemoryPanel,o.geometries),this.processPanel(this.textureMemoryPanel,o.textures)}this.stats.update()}},this.resetPanels=()=>{if(this.isDevelopmentMode)for(const i of[this.trianglesPanel,this.glCallsPanel,this.geometryMemoryPanel,this.textureMemoryPanel])void 0!==i&&(i.maxHeight=0)},this.processPanel=(i,r)=>{i.maxHeight=Math.max(i.maxHeight,r),i.panel.update(r,1.3*i.maxHeight)},this.destroy=()=>{this.isDevelopmentMode&&this.stats.dom.remove()}}static{this.\u0275fac=function(i){return new(i||n)(ve(Ki))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),UZ=(()=>{class n{constructor(e,i,r,o,s){this.threeSceneService=e,this.threeCameraService=i,this.threeMapControlsService=r,this.threeRendererService=o,this.threeStatsService=s,this.onWindowResize=()=>{this.threeSceneService.scene.updateMatrixWorld(!1),this.threeRendererService.renderer.setSize(window.innerWidth,window.innerHeight),this.threeCameraService.camera.aspect=window.innerWidth/window.innerHeight,this.threeCameraService.camera.updateProjectionMatrix(),this.animate()},this.onFocusIn=a=>{"INPUT"===a.target.nodeName&&this.threeMapControlsService.controls.stopListenToKeyEvents()},this.onFocusOut=a=>{"INPUT"===a.target.nodeName&&this.threeMapControlsService.controls.listenToKeyEvents(window)}}init(e){this.threeCameraService.init(window.innerWidth,window.innerHeight);const i=this.threeCameraService.camera,r=this.threeSceneService.scene;i.lookAt(r.position),r.add(i),this.threeRendererService.init(window.innerWidth,window.innerHeight,r,i),this.threeStatsService.init(e),this.threeMapControlsService.init(this.threeRendererService.renderer.domElement),e.append(this.threeRendererService.renderer.domElement),window.addEventListener("resize",this.onWindowResize),window.addEventListener("focusin",this.onFocusIn),window.addEventListener("focusout",this.onFocusOut),this.animate(),this.animateStats()}restart(e){this.stopAnimate(),this.destroy(),this.init(e),this.autoFitTo(),this.animate(),this.animateStats()}enableRotation(e){this.threeMapControlsService.controls.enableRotate=e}animate(){this.threeMapControlsService.controls.update(),this.threeRendererService.render()}animateStats(){this.animationFrameId=requestAnimationFrame(()=>this.animateStats()),this.threeStatsService.updateStats()}getRenderCanvas(){return this.threeRendererService.renderer.domElement}getRenderLoseExtention(){return this.threeRendererService.renderer.getContext().getExtension("WEBGL_lose_context")}autoFitTo(){this.threeMapControlsService.autoFitTo()}stopAnimate(){cancelAnimationFrame(this.animationFrameId)}dispose(){this.threeRendererService?.composer?.dispose(),this.threeRendererService?.renderer?.dispose()}destroy(){window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("focusin",this.onFocusIn),window.removeEventListener("focusout",this.onFocusOut),this.dispose(),this.threeStatsService.destroy(),this.getRenderCanvas().remove(),this.dispose()}static{this.\u0275fac=function(i){return new(i||n)(ve(Vc),ve(Mu),ve(cc),ve(Ki),ve(NZ))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Ab=hn("SET_HOVERED_NODE_ID",{_as:"props",_p:void 0}),gb=hn("SET_RIGHT_CLICKED_NODE_DATA",{_as:"props",_p:void 0}),oN=n=>n.appStatus,Yw=Kt(oN,n=>n.hoveredNodeId);function Eu(n,t=0){let e;return(...i)=>{clearTimeout(e),e=setTimeout(()=>{n.apply(this,i),e=null},t)}}let HZ=(()=>{class n{constructor(e,i,r,o){this.state=e,this.threeCameraService=i,this.threeSceneService=r,this.threeMapControlsService=o,this.mapLabelColors=Cu.labelColorAndAlpha,this.LABEL_COLOR_RGB=lr.convertHexToRgba(this.mapLabelColors.rgb),this.LABEL_WIDTH_DIVISOR=2100,this.LABEL_HEIGHT_DIVISOR=35,this.LABEL_CORNER_RADIUS=40,this.LABEL_SCALE_FACTOR=.7,this.LABEL_HEIGHT_COEFFICIENT=3.75,this.LABEL_HEIGHT_POSITION=60,this.previousScaling=new se(1,1,1),this.lineCount=1,this.nodeHeight=0,this.labels=new Array,this.threeMapControlsService.subscribe("onCameraChanged",()=>this.onCameraChanged())}addLeafLabel(e,i,r=!1){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),{scaling:a,layoutAlgorithm:l,showMetricLabelNodeName:c,showMetricLabelNameValue:d}=o,{margin:u,heightMetric:h}=s,f=new se(a.x,a.y,a.z);let A="";if(c||r&&!d)A=`${e.name}`;else if(!d)return;d&&(""!==A&&(A+="\n"),A+=`${e.attributes[h]} ${h}`);const y=this.makeText(A,30,e);let _=e.height+Math.abs(e.heightDelta??0);_=_*f.y>i*f.y?_:i,this.nodeHeight=this.nodeHeight>_?this.nodeHeight:_;const M=e.z0,E=(e.x0-us+e.width/2)*f.x,L=(M+this.nodeHeight)*f.y,N=(M+e.height)*f.y,H=(e.y0-us+e.length/2)*f.z,j=this.LABEL_HEIGHT_COEFFICIENT*u*this.LABEL_SCALE_FACTOR;let R=j+y.heightValue/2;switch(l){case hu.StreetMap:case hu.TreeMapStreet:R/=10,this.LABEL_HEIGHT_POSITION=0,y.line=this.makeLine(E,L+R,N,H);break;default:y.line=this.makeLine(E,L+j/2,N,H)}y.sprite.position.set(E,L+R,H),y.sprite.material.color=new tn(this.mapLabelColors.rgb),y.sprite.material.opacity=this.mapLabelColors.alpha,y.sprite.userData={node:e},this.threeSceneService.labels.add(y.sprite),this.threeSceneService.labels.add(y.line),this.labels.push(y)}clearLabels(){this.threeSceneService.resetLabel(),this.threeSceneService.resetLineHighlight(),this.dispose(this.labels),this.labels=[],this.nodeHeight=0,this.LABEL_HEIGHT_POSITION=60,this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children=[]}disposeSprite(e){e.material.dispose(),e.material.map.dispose(),e.geometry.dispose()}disposeLine(e){e.material.dispose(),e.geometry.dispose()}dispose(e){for(const i of e)i instanceof rL&&this.disposeSprite(i),i instanceof wd&&this.disposeLine(i),void 0!==i.sprite&&this.disposeSprite(i.sprite),void 0!==i.line&&this.disposeLine(i.line)}clearTemporaryLabel(e){const i=this.labels.findIndex(({node:r})=>r===e);i>-1&&(this.labels.splice(i,1),this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children.length-=2,this.threeSceneService.resetLineHighlight())}scale(){const{scaling:e}=this.state.getValue().appSettings,i=new se(e.x,e.y,e.z),{margin:r}=this.state.getValue().dynamicSettings,o=new se(0,this.LABEL_HEIGHT_COEFFICIENT*r*this.LABEL_SCALE_FACTOR,0);for(const s of this.labels){const a=i.clone();s.sprite.position.sub(o).divide(this.previousScaling).multiply(a).add(o),a.y>1&&(a.y=1);const c=s.line.geometry.attributes.position;c.setX(0,c.getX(0)*a.x),c.setY(0,c.getY(0)*a.y),c.setZ(0,c.getZ(0)*a.z),c.setX(1,s.sprite.position.x),c.setY(1,s.sprite.position.y),c.setZ(1,s.sprite.position.z),c.needsUpdate=!0}this.previousScaling.copy(i)}onCameraChanged(){for(const e of this.labels)this.setLabelSize(e.sprite,e,e.sprite.material.map.image.width)}makeText(e,i,r){const o=document.createElement("canvas"),s=o.getContext("2d");s.font=`${i}px Roboto`;const l=e.split("\n"),c=s.measureText(l[0]).width,d=s.measureText(l[1]).width;o.width=c>d?c+25:d+25,o.height=25+i*l.length,s.font=`${i}px Roboto`,s.fillStyle="rgba(255,255,255,1)",s.lineJoin="round",s.lineCap="round",s.lineWidth=5,n.drawRectangleWithRoundedCorners(s,0,0,o.width,o.height,this.LABEL_CORNER_RADIUS),s.fillStyle="rgba(0,0,0,1)",s.textAlign="center",s.textBaseline="middle";for(const[A,y]of l.entries())s.fillText(y,o.width/2,o.height*(A+1)/(l.length+1));const u=new Xa(o);u.minFilter=xs,u.needsUpdate=!0;const h=new nL({map:u}),f=new rL(h);return this.lineCount=l.length,this.setLabelSize(f,null,o.width),{sprite:f,heightValue:o.height,line:null,lineCount:l.length,node:r}}static drawRectangleWithRoundedCorners(e,i,r,o,s,a){o<2*a&&(a=o/2),s<2*a&&(a=s/2),e.beginPath(),e.moveTo(i+a,r),e.arcTo(i+o,r,i+o,r+s,a),e.arcTo(i+o,r+s,i,r+s,a),e.arcTo(i,r+s,i,r,a),e.arcTo(i,r,i+o,r,a),e.closePath(),e.fill()}setLabelSize(e,i,r=e.material.map.image.width){const o=(new Us).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Ys).center;if(this.threeCameraService.camera){const s=this.threeCameraService.camera.position.distanceTo(o);null!==i&&(this.lineCount=i.lineCount),e.scale.set(s/this.LABEL_WIDTH_DIVISOR*r,this.lineCount>1?s/25:s/this.LABEL_HEIGHT_DIVISOR,1)}}makeLine(e,i,r,o){const s=new xa({color:this.LABEL_COLOR_RGB,linewidth:2}),a=(new gi).setFromPoints([new se(e,r,o),new se(e,i+this.LABEL_HEIGHT_POSITION,o)]);return new wd(a,s)}static{this.\u0275fac=function(i){return new(i||n)(ve(Zr),ve(Mu),ve(Vc),ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VZ=(()=>{class n{constructor(e){this.threeMapControlsService=e,this.eventEmitter=new eN,this.currentlyHovered=null,this.isDragging=!1}init(e,i,r){this.cubeGroup=e,this.camera=i,this.renderer=r,this.initOrbitalControl(i,r),this.initRendererEventListeners(r)}resetIsDragging(){this.isDragging=!1}initOrbitalControl(e,i){this.controls=new rN(e,i.domElement),this.controls.maxPolarAngle=Math.PI/2,this.controls.enableZoom=!1,this.controls.enablePan=!1,this.controls.rotateSpeed=1}initRendererEventListeners(e){e.domElement.addEventListener("mousemove",i=>this.onDocumentMouseMove(i)),e.domElement.addEventListener("mouseup",i=>this.onDocumentMouseUp(i)),e.domElement.addEventListener("mousedown",i=>this.onDocumentMouseClick(i,"mousedown")),e.domElement.addEventListener("dblclick",i=>this.onDocumentMouseClick(i,"dblclick")),e.domElement.addEventListener("mouseleave",i=>this.onWindowMouseLeave(i)),e.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter())}onDocumentMouseClick(e,i){this.isDragging=!0,this.checkMouseIntersection(e,i)}onWindowMouseLeave(e){(null==e.relatedTarget||!(e.relatedTarget instanceof HTMLCanvasElement))&&this.enableRotation(!1)}onDocumentMouseEnter(){this.enableRotation(!0)}enableRotation(e){this.controls.enableRotate=e}checkMouseIntersection(e,i){this.getCubeIntersectedByMouse(e)||this.eventEmitter.emit("viewCubeEventPropagation",{type:i,event:e})}getCubeIntersectedByMouse(e){const i=this.transformIntoCanvasVector(e),r=new ZY;r.setFromCamera(i,this.camera);const o=[];for(const a of yo(this.cubeGroup))No(a)&&o.push(a.data);const[s]=r.intersectObjects(o);return s?s.object:null}transformIntoCanvasVector(e){const{domElement:i}=this.renderer,r=this.renderer.getPixelRatio(),o=i.getBoundingClientRect();return new nt((e.clientX-o.left)/i.width*r*2-1,-(e.clientY-o.top)/i.height*r*2+1)}propagateMovement(){if(this.isDragging){const e=this.camera.position;this.threeMapControlsService.rotateCameraInVectorDirection(-e.x,-e.y,-e.z)}return this.isDragging}onDocumentMouseMove(e){if(this.propagateMovement())return;const i=this.getCubeIntersectedByMouse(e);i?this.currentlyHovered&&i.uuid!==this.currentlyHovered.uuid?this.triggerViewCubeUnhoverEvent():this.currentlyHovered||this.triggerViewCubeHoverEvent(i):(this.currentlyHovered&&this.triggerViewCubeUnhoverEvent(),this.eventEmitter.emit("viewCubeEventPropagation",{type:"mousemove",event:e}))}onDocumentMouseUp(e){this.isDragging=!1;const i=this.getCubeIntersectedByMouse(e);i?this.eventEmitter.emit("viewCubeClicked",{cube:i}):this.eventEmitter.emit("viewCubeEventPropagation",{type:"mouseup",event:e})}triggerViewCubeHoverEvent(e){this.currentlyHovered=e,Zw.changeCursorIndicator(ef.Pointer),this.eventEmitter.emit("viewCubeHoveredEvent",{cube:e})}triggerViewCubeUnhoverEvent(){this.currentlyHovered=null,Zw.changeCursorIndicator(ef.Default),this.eventEmitter.emit("viewCubeUnHoveredEvent")}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var zT=function(n){return n[n.LeftClick=0]="LeftClick",n[n.RightClick=2]="RightClick",n}(zT||{}),ef=function(n){return n.Default="default",n.Grabbing="grabbing",n.Pointer="pointer",n.Moving="move",n}(ef||{});let Zw=(()=>{class n{constructor(e,i,r,o,s,a,l,c,d){this.threeCameraService=e,this.threeRendererService=i,this.threeSceneService=r,this.store=o,this.state=s,this.codeMapLabelService=a,this.viewCubeMouseEvents=l,this.threeViewerService=c,this.idToBuilding=d,this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING=3,this.mouse={x:0,y:0},this.oldMouse={x:0,y:0},this.mouseOnLastClick={x:0,y:0},this.isGrabbing=!1,this.isMoving=!1,this.raycaster=new ZY,this.labelHoveredBuilding=null,this.labelSelectedBuilding=null,this.subscriptions=[this.store.select(au).pipe(Dr(()=>this.onFilesSelectionChanged())).subscribe(),this.store.select(su).pipe(Dr(u=>this.onBlacklistChanged(u))).subscribe(),this.store.select(Yw).pipe(Dr(u=>{null!==u?this.hoverNode(u):this.unhoverNode(!1)})).subscribe()],this.onViewCubeEventPropagation=u=>{switch(u.type){case"mousemove":this.onDocumentMouseMove(u.event);break;case"mouseup":this.onDocumentMouseUp(u.event);break;case"mousedown":this.onDocumentMouseDown(u.event);break;case"dblclick":this.onDocumentDoubleClick()}},this.onDocumentMouseMove=u=>{this.mouse.x=u.clientX,this.mouse.y=u.clientY,this.updateHovering(),this.viewCubeMouseEvents.propagateMovement()}}ngOnDestroy(){for(const e of this.subscriptions)e.unsubscribe()}static changeCursorIndicator(e){document.body.style.cursor=e}start(){this.threeRendererService.renderer.domElement.addEventListener("mousemove",Eu(this.onDocumentMouseMove,1)),this.threeRendererService.renderer.domElement.addEventListener("mouseup",e=>this.onDocumentMouseUp(e)),this.threeRendererService.renderer.domElement.addEventListener("mousedown",e=>this.onDocumentMouseDown(e)),this.threeRendererService.renderer.domElement.addEventListener("dblclick",()=>this.onDocumentDoubleClick()),this.threeRendererService.renderer.domElement.addEventListener("mouseleave",e=>this.onDocumentMouseLeave(e)),this.threeRendererService.renderer.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter()),this.threeRendererService.renderer.domElement.addEventListener("wheel",Eu(()=>this.threeRendererService.render())),this.viewCubeMouseEvents.subscribe("viewCubeEventPropagation",this.onViewCubeEventPropagation)}hoverNode(e){if(this.isGrabbingOrMoving())return;const{buildings:i}=this.threeSceneService.getMapMesh().getMeshDescription();for(const r of i)if(r.node.id===e){this.hoverBuilding(r,!1);break}this.threeRendererService.render()}unhoverNode(e=!0){this.unhoverBuilding(e),this.threeRendererService.render()}onFilesSelectionChanged(){this.threeSceneService.clearSelection(),this.threeSceneService.clearConstantHighlight(),this.clearLabelHoveredBuilding()}onBlacklistChanged(e){const i=this.threeSceneService.getSelectedBuilding();this.clearLabelHoveredBuilding(),i&&function Zbe(n,t){return Ch(n,t,"exclude")||Ch(n,t,"flatten")}(i.node.path,e)&&this.threeSceneService.clearSelection(),this.unhoverBuilding()}updateHovering(){if(this.hasMouseMoved(this.oldMouse)){const e=this.threeSceneService.labels?.children;if(this.isGrabbingOrMoving())return this.threeSceneService.resetLabel(),this.clearLabelHoveredBuilding(),void this.threeRendererService.render();this.oldMouse.x=this.mouse.x,this.oldMouse.y=this.mouse.y;const i=this.threeSceneService.getMapMesh();if(i){this.threeCameraService.camera.updateMatrixWorld(!1);let r="";const o=this.transformHTMLToSceneCoordinates(),s=this.threeCameraService.camera;s.isPerspectiveCamera&&this.raycaster.setFromCamera(o,s);const a=this.calculateHoveredLabel(e);a&&(this.threeSceneService.animateLabel(a.object,this.raycaster,e),r=a.object.userData.node.path),this.intersectedBuilding=""!==r?i.getBuildingByPath(r):i.checkMouseRayMeshIntersection(o,s);const l=this.threeSceneService.getHighlightedBuilding(),c=this.intersectedBuilding;l?.id!==c?.id&&(this.clearLabelHoveredBuilding(),this.threeSceneService.resetLabel(),this.unhoverBuilding(),c&&!this.isGrabbingOrMoving()&&(this.setLabelHoveredLeaf(c,e),this.hoverBuilding(c)))}}}setLabelHoveredLeaf(e,i){if(e?.node?.isLeaf){const r=this.threeSceneService.getLabelForHoveredNode(e,i)??this.drawLabelHoveredBuilding(e);this.threeSceneService.animateLabel(r,this.raycaster,i)}}drawLabelHoveredBuilding(e){this.codeMapLabelService.addLeafLabel(e.node,0,!0);const r=this.threeSceneService.labels?.children,o=this.threeSceneService.getLabelForHoveredNode(e,r);return this.labelHoveredBuilding=e.node,o}drawLabelSelectedBuilding(e){if(this.clearLabelHoveredBuilding(),null!==this.labelSelectedBuilding&&this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),!e.node.isLeaf)return;this.codeMapLabelService.addLeafLabel(e.node,0,!0);const i=this.threeSceneService.labels?.children,r=this.threeSceneService.getLabelForHoveredNode(e,i);return this.threeSceneService.animateLabel(r,this.raycaster,i),this.labelSelectedBuilding=e.node,r}clearLabelHoveredBuilding(){null!==this.labelHoveredBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelHoveredBuilding),this.labelHoveredBuilding=null)}clearLabelSelectedBuilding(){null!==this.labelSelectedBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),this.labelSelectedBuilding=null)}EnableOrbitalsRotation(e){this.threeViewerService.enableRotation(e),this.viewCubeMouseEvents.enableRotation(e)}onDocumentMouseEnter(){this.EnableOrbitalsRotation(!0)}onDocumentMouseLeave(e){e.relatedTarget instanceof HTMLCanvasElement||this.EnableOrbitalsRotation(!1)}onDocumentDoubleClick(){const e=this.threeSceneService.getHighlightedBuilding(),i=this.threeSceneService.getSelectedBuilding(),r=e?.node.link;if(r&&!this.hasMouseMoved(this.mouseOnLastClick)&&window.open(r,"_blank"),i?.node.isLeaf){const o=i.node.link;if(o)return void window.open(o,"_blank")}}onDocumentMouseDown(e){e.button===zT.RightClick&&(this.isMoving=!0,n.changeCursorIndicator(ef.Moving)),e.button===zT.LeftClick&&(this.isGrabbing=!0,n.changeCursorIndicator(ef.Grabbing)),this.mouseOnLastClick={x:e.clientX,y:e.clientY},document.activeElement.blur()}onDocumentMouseUp(e){this.viewCubeMouseEvents.resetIsDragging(),e.button===zT.LeftClick?this.onLeftClick():this.onRightClick(),n.changeCursorIndicator(void 0!==this.intersectedBuilding?ef.Pointer:ef.Default)}calculateHoveredLabel(e){let i=null;for(let r=0;r0&&(i=null===i?o[0]:i.distancethis.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING||Math.abs(this.mouse.y-i)>this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING}hasMouseMoved({x:e,y:i}){return this.mouse.x!==e||this.mouse.y!==i}isGrabbingOrMoving(){return this.isGrabbing||this.isMoving}hoverBuilding(e,i=!0){n.changeCursorIndicator(ef.Pointer);const o=mb(this.state.getValue()).get(e.node.id);for(const{data:s}of yo(o)){const a=this.idToBuilding.get(s.id);a&&this.threeSceneService.addBuildingToHighlightingList(a)}this.threeSceneService.highlightBuildings(),i&&this.store.dispatch(Ab({value:e.node.id}))}transformHTMLToSceneCoordinates(){const{renderer:e,renderer:{domElement:i}}=this.threeRendererService,r=e.getPixelRatio(),o=i.getBoundingClientRect();return{x:this.mouse.x/i.width*r*2-1,y:-(this.mouse.y-o.top)/i.height*r*2+1}}unhoverBuilding(e=!0){this.isGrabbingOrMoving()||n.changeCursorIndicator(ef.Default),this.threeSceneService.getConstantHighlight().size>0?this.threeSceneService.clearHoverHighlight():this.threeSceneService.clearHighlight(),e&&this.store.dispatch(Ab({value:null}))}static{this.\u0275fac=function(i){return new(i||n)(ve(Mu),ve(Ki),ve(Vc),ve($t),ve(Zr),ve(HZ),ve(VZ),ve(UZ),ve(jw))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const YA=()=>new wT({color:16580095}),_b=()=>new wT({color:16580095}),qT=()=>new wT({color:16580095});class Jw{static buildCube(t){const e=1/t,i=(1-e)/2,r=new ac(e,i,i),o=new ac(i,e+i,i),s=new ac(i,i,i),a=new ac(e,e,i),l=new ac(e,e+i,i);return Jw.newBuildCubeGroup(r,o,s,a,l)}static newBuildCubeGroup(t,e,i,r,o){const s=new gl,{group:a,frontLeft:l,frontCenter:c,frontRight:d,middleLeft:u,middleCenter:h,middleRight:f,backLeft:A,backCenter:y,backRight:_}=Jw.buildCubeTopFace(t,i,r);s.add(a);const{group:b,frontLeftEdge:M,frontCenterFace:C,frontRightEdge:E,middleLeftFace:L,middleRightFace:N,backLeftEdge:H,backCenterFace:j,backRightEdge:R}=Jw.buildCubeSides(e,o);return s.add(b),{group:s,top:{front:{left:l,center:c,right:d},middle:{left:u,center:h,right:f},back:{left:A,center:y,right:_}},sides:{front:{left:M,center:C,right:E},middle:{left:L,right:N},back:{left:H,center:j,right:R}}}}static buildCubeTopFace(t,e,i){const r=new ki(e,qT()),o=new ki(t,YA()),s=new ki(e,qT()),a=new ki(t,YA()),l=new ki(i,_b()),c=new ki(t,_b()),d=new ki(e,qT()),u=new ki(t,YA()),h=new ki(e,qT()),f=i.parameters.height/2+e.parameters.height/2;r.position.x-=f,r.position.y-=f,o.position.y-=f,s.position.x+=f,s.position.y-=f,a.position.x-=f,a.rotation.z=Math.PI/2,c.position.x+=f,c.rotation.z=Math.PI/2,d.position.x-=f,d.position.y+=f,u.position.y+=f,h.position.x+=f,h.position.y+=f;const A=new gl;return A.rotation.x=Math.PI/2,A.position.y+=f,A.add(r),A.add(o),A.add(s),A.add(a),A.add(l),A.add(c),A.add(d),A.add(u),A.add(h),{group:A,frontLeft:r,frontCenter:o,frontRight:s,middleLeft:a,middleCenter:l,middleRight:c,backLeft:d,backCenter:u,backRight:h}}static buildCubeSides(t,e){const i=new ki(t,YA()),r=new ki(e,_b()),o=new ki(t,YA()),s=new ki(e,_b()),a=new ki(e,_b()),l=new ki(t,YA()),c=new ki(e,_b()),d=new ki(t,YA()),u=e.parameters.width/2+t.parameters.width/2,h=t.parameters.width/2;i.position.x-=u,i.position.z+=u,r.position.z+=u,o.position.x+=u,o.position.z+=u,s.position.x-=u,s.rotation.y=Math.PI/2,a.position.x+=u,a.rotation.y=Math.PI/2,l.position.x-=u,l.position.z-=u,c.position.z-=u,d.position.x+=u,d.position.z-=u;const f=new gl;return f.position.y-=h,f.add(i),f.add(r),f.add(o),f.add(s),f.add(a),f.add(l),f.add(c),f.add(d),{group:f,frontLeftEdge:i,frontCenterFace:r,frontRightEdge:o,middleLeftFace:s,middleRightFace:a,backLeftEdge:l,backCenterFace:c,backRightEdge:d}}}let O3e=(()=>{class n{constructor(e){this.threeMapControlsService=e}centerMap(){this.threeMapControlsService.autoFitTo()}static{this.\u0275fac=function(i){return new(i||n)($(cc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-center-map-button"]],decls:2,vars:0,consts:[["aria-label","Center map in View","title","Center map",1,"cc-shadow",3,"click"],[1,"fa","fa-compass"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.centerMap()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{position:absolute;right:15px;width:36px;height:36px;font-size:28px;border-radius:100%;color:#fff;background-color:#1b9cfc}button.cc-shadow[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0003!important}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-top:2px}button[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#0374c9}"]})}}return n})(),L3e=(()=>{class n{constructor(e,i){this.threeMapControlsService=e,this.cdr=i}ngOnInit(){this.maxZoom=this.threeMapControlsService.MAX_ZOOM,this.minZoom=this.threeMapControlsService.MIN_ZOOM,this.threeMapControlsService.zoomPercentage$.subscribe(e=>{this.zoomPercentage=e,this.cdr.detectChanges()})}onInput(e){const r=Number.parseFloat(e.target.value);this.threeMapControlsService.setZoomPercentage(r)}zoomIn(){this.threeMapControlsService.setZoomPercentage(Math.min(this.zoomPercentage+10,this.maxZoom))}zoomOut(){this.threeMapControlsService.setZoomPercentage(Math.max(this.zoomPercentage-10,this.minZoom))}static{this.\u0275fac=function(i){return new(i||n)($(cc),$(vo))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-zoom-slider"]],decls:8,vars:4,consts:[[1,"zoom-slider"],["data-testid","zoomOut",1,"zoom-button",3,"click"],["type","range","id","zoomRange","data-testid","zoomRange",3,"input","min","max","value"],["data-testid","zoomIn",1,"zoom-button",3,"click"],["id","zoomValue"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"button",1),ze("click",function(){return r.zoomOut()}),ye(2,"-"),U(),D(3,"input",2),ze("input",function(s){return r.onInput(s)}),U(),D(4,"button",3),ze("click",function(){return r.zoomIn()}),ye(5,"+"),U(),D(6,"span",4),ye(7),U()()),2&i&&(Q(3),_e("min",r.minZoom)("max",r.maxZoom)("value",r.zoomPercentage),Q(4),sn("",null==r.zoomPercentage?null:r.zoomPercentage.toFixed(0),"%"))},styles:['.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active[_ngcontent-%COMP%] .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl][_ngcontent-%COMP%] .cdk-visually-hidden[_ngcontent-%COMP%]{left:auto;right:0}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%] .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:#00000052}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%]{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation[_ngcontent-%COMP%]{transition:none}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-start{}@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:_ngcontent-%COMP%_cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:_ngcontent-%COMP%_cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-focus-indicator[_ngcontent-%COMP%]:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator[_ngcontent-%COMP%]:focus:before{content:""}.cdk-high-contrast-active[_ngcontent-%COMP%]{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator[_ngcontent-%COMP%]:focus:before{content:""}.cdk-high-contrast-active[_ngcontent-%COMP%]{--mat-mdc-focus-indicator-display: block}.mat-app-background[_ngcontent-%COMP%]{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}[_ngcontent-%COMP%]:root{--mat-dialog-container-min-width: 500px;--mat-dialog-actions-alignment: flex-end;--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: #fff;--mat-text-button-horizontal-padding: 8px}[_ngcontent-%COMP%]:root .mat-mdc-checkbox.mat-accent[_ngcontent-%COMP%]{--mdc-checkbox-selected-checkmark-color: #fff !important}[_ngcontent-%COMP%]:root .cdk-overlay-pane.cc-incompatible-maps-dialog[_ngcontent-%COMP%]{--mdc-dialog-supporting-text-color: $cc-font-color}.zoom-slider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;width:150px;position:absolute;top:190px;right:26px;margin:10px}.zoom-slider[_ngcontent-%COMP%] .zoom-button[_ngcontent-%COMP%], .zoom-slider[_ngcontent-%COMP%] #zoomValue[_ngcontent-%COMP%]{font-size:10px;color:#737373}.zoom-slider[_ngcontent-%COMP%] .zoom-button.zoom-button[_ngcontent-%COMP%], .zoom-slider[_ngcontent-%COMP%] #zoomValue.zoom-button[_ngcontent-%COMP%]{background:none;border:none;font-size:16px;cursor:pointer;padding:0;margin:0}input[type=range][_ngcontent-%COMP%]{-webkit-appearance:none;color:#737373;width:100px;height:3px;background:#737373;outline:none;opacity:.7;transition:opacity .2s}input[type=range][_ngcontent-%COMP%]::-webkit-slider-thumb{appearance:none;width:3px;height:10px;background:#737373;cursor:pointer}input[type=range][_ngcontent-%COMP%]::-moz-range-thumb{width:3px;height:10px;background:#737373;cursor:pointer}'],changeDetection:0})}}return n})(),N3e=(()=>{class n{constructor(e,i,r){this.elementReference=e,this.threeMapControlsService=i,this.viewCubeMouseEvents=r,this.WIDTH=200,this.HEIGHT=200,this.LENGTH_VIEWCUBE=1,this.hoverInfo={cube:null,originalMaterial:null},this.cubeDefinition={top:null,sides:null},this.onCameraChanged=o=>{const s=this.calculateCameraPosition(o.camera);this.setCameraPosition(s),this.renderer.render(this.scene,this.camera)},this.onCubeHovered=o=>{this.hoverInfo={cube:o.cube,originalMaterial:o.cube.material},this.hoverInfo.cube.material.emissive=new tn(16777215),this.renderer.render(this.scene,this.camera)},this.onCubeUnhovered=()=>{this.hoverInfo.cube.material.emissive=new tn(0),this.hoverInfo.cube=null,this.renderer.render(this.scene,this.camera)},this.onCubeClicked=o=>{switch(o.cube){case this.cubeDefinition.top.front.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,1);break;case this.cubeDefinition.top.front.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,1);break;case this.cubeDefinition.top.front.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,1);break;case this.cubeDefinition.top.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,0);break;case this.cubeDefinition.top.middle.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,0);break;case this.cubeDefinition.top.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,0);break;case this.cubeDefinition.top.back.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,-1);break;case this.cubeDefinition.top.back.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,-1);break;case this.cubeDefinition.top.back.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,-1);break;case this.cubeDefinition.sides.front.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,-1);break;case this.cubeDefinition.sides.front.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,0,0);break;case this.cubeDefinition.sides.front.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,-1);break;case this.cubeDefinition.sides.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,0);break;case this.cubeDefinition.sides.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,0);break;case this.cubeDefinition.sides.back.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,1);break;case this.cubeDefinition.sides.back.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,0,1);break;case this.cubeDefinition.sides.back.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,1)}}}ngOnInit(){this.initScene(),this.initLights(),this.initRenderer(this.elementReference.nativeElement),this.initCube(),this.initAxesHelper(),this.initCamera(),this.viewCubeMouseEvents.init(this.cubeGroup,this.camera,this.renderer),this.threeMapControlsService.subscribe("onCameraChanged",this.onCameraChanged),this.viewCubeMouseEvents.subscribe("viewCubeHoveredEvent",this.onCubeHovered),this.viewCubeMouseEvents.subscribe("viewCubeUnHoveredEvent",this.onCubeUnhovered),this.viewCubeMouseEvents.subscribe("viewCubeClicked",this.onCubeClicked)}initAxesHelper(){const e=new PDe(1.3),i=-this.LENGTH_VIEWCUBE/2+.01;e.position.x+=i,e.position.y+=i,e.position.z+=i,this.scene.add(e)}initCube(){const{group:e,top:i,sides:r}=Jw.buildCube(1.9);this.cubeGroup=e,this.cubeDefinition.top=i,this.cubeDefinition.sides=r;const o=new kDe(this.cubeGroup,new tn(0));this.scene.add(this.cubeGroup),this.scene.add(o)}setCameraPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix()}calculateCameraPosition(e){const i=this.threeMapControlsService.controls.target.clone();return e.position.clone().sub(i).normalize().multiplyScalar(3)}initScene(){this.scene=new KS}initRenderer(e){this.renderer=new ZO({alpha:!0,antialias:!0}),this.renderer.setSize(this.WIDTH,this.HEIGHT),this.renderer.setPixelRatio(window.devicePixelRatio),e.appendChild(this.renderer.domElement)}initCamera(){this.camera=new Hs(45,this.WIDTH/this.HEIGHT,.1,1e3),this.camera.position.z=4}initLights(){this.lights=new gl;const e=new NL(7368816,2.8),i=new zw(14737632,1.8);i.position.set(50,10,8).normalize();const r=new zw(14737632,1.8);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r),this.scene.add(this.lights)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(cc),$(VZ))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-view-cube"]],decls:2,vars:0,template:function(i,r){1&i&&xe(0,"cc-center-map-button")(1,"cc-zoom-slider")},dependencies:[O3e,L3e],styles:["[_nghost-%COMP%]{transition:right .3s ease;position:absolute;z-index:11;right:0;top:10px}.sideBarVisible[_nghost-%COMP%]{right:350px}"]})}}return n})();const U3e=Kt(oN,n=>n.selectedBuildingId),Um=Kt(U3e,mb,(n,t)=>t?.get(n)),H3e=["tooltip"],zZ=new dt("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),Q3e={provide:zZ,deps:[Ls],useFactory:function V3e(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},q3e=new dt("mat-tooltip-default-options",{providedIn:"root",factory:function z3e(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),qZ="tooltip-panel",GZ=dA({passive:!0});let WZ=(()=>{class n{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=sa(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=sa(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=cm(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=cm(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,r,o,s,a,l,c,d,u,h,f){this._overlay=e,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=o,this._ngZone=s,this._platform=a,this._ariaDescriber=l,this._focusMonitor=c,this._dir=u,this._defaultOptions=h,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=X3e,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new Ln,this._scrollStrategy=d,this._document=f,h&&(this._showDelay=h.showDelay,this._hideDelay=h.hideDelay,h.position&&(this.position=h.position),h.positionAtOrigin&&(this.positionAtOrigin=h.positionAtOrigin),h.touchGestures&&(this.touchGestures=h.touchGestures)),u.change.pipe(oo(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(oo(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,GZ)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const r=this._createOverlay(i);this._detach(),this._portal=this._portal||new H1(this._tooltipComponent,this._viewContainerRef);const o=this._tooltipInstance=r.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(oo(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const o=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&o._origin instanceof Nn)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(oo(this._destroyed)).subscribe(o=>{this._updateCurrentPositionClass(o.connectionPair),this._tooltipInstance&&o.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${qZ}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(oo(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(oo(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(oo(this._destroyed)).subscribe(o=>{this._isTooltipVisible()&&27===o.keyCode&&!Ad(o)&&(o.preventDefault(),o.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,r=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...o.main}),this._addOffset({...r.fallback,...o.fallback})])}_addOffset(e){const r=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=r?-8:8:"end"===e.originX&&(e.offsetX=r?8:-8),e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i||"below"==i?r={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={originX:"end",originY:"center"});const{x:o,y:s}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:o,originY:s}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i?r={overlayX:"center",overlayY:"bottom"}:"below"==i?r={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={overlayX:"start",overlayY:"center"});const{x:o,y:s}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe($o(1),oo(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:r,originY:o}=e;let s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===o?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${qZ}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,r),this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,GZ)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,r=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),("on"===e||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}static{this.\u0275fac=function(i){return new(i||n)($(Ls),$(Nn),$(LW),$(oa),$(In),$(ro),$(bye),$(Th),$(zZ),$(Eh),$(q3e,8),$(Li))}}static{this.\u0275dir=Wt({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[Ct.None,"matTooltipPosition","position"],positionAtOrigin:[Ct.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[Ct.None,"matTooltipDisabled","disabled"],showDelay:[Ct.None,"matTooltipShowDelay","showDelay"],hideDelay:[Ct.None,"matTooltipHideDelay","hideDelay"],touchGestures:[Ct.None,"matTooltipTouchGestures","touchGestures"],message:[Ct.None,"matTooltip","message"],tooltipClass:[Ct.None,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return n})(),X3e=(()=>{class n{constructor(e,i,r){this._changeDetectorRef=e,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Ln,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===r}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,r=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(e?o:r),i.classList.add(e?r:o),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static{this.\u0275fac=function(i){return new(i||n)($(vo),$(Nn),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&ti(H3e,7),2&i){let o;an(o=ln())&&(r._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,r){1&i&&ze("mouseleave",function(s){return r._handleMouseLeave(s)}),2&i&&zi("zoom",r.isVisible()?1:null)},standalone:!0,features:[Nr],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,r){if(1&i){const o=Dn();D(0,"div",1,0),ze("animationend",function(a){return Ot(o),Rt(r._handleAnimationEnd(a))}),D(2,"div",2),ye(3),U()()}2&i&&(Un("mdc-tooltip--multiline",r._isMultiline),_e("ngClass",r.tooltipClass),Q(3),br(r.message))},dependencies:[nu],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - 2*8px);margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - 2*8px);align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}}return n})(),$Z=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Q3e],imports:[PR,mn,q1,fr,fr,U1]})}}return n})();const Hm=Kt(xh,n=>ou(n)),K3e=Kt(Um,n=>{if(n)return{all:n.attributes?.unary??0,added:n.fileCount?.added??0,removed:n.fileCount?.removed??0,changed:n.fileCount?.changed??0}});function Y3e(n,t){if(1&n&&(D(0,"span",2),ye(1," | "),D(2,"span",3),ye(3),U(),ye(4," | "),D(5,"span",4),ye(6),U(),ye(7," | "),D(8,"span",5),ye(9),U()()),2&n){const e=Le();Q(3),sn(" \u0394",e.added,""),Q(3),sn(" \u0394",e.removed>0?-e.removed:0,""),Q(3),sn(" \u0394",e.changed,"")}}function Z3e(n,t){if(1&n&&(D(0,"span",2),ye(1),pt(2,Y3e,10,3,"span",2),qe(3,"async"),ye(4," ) "),U()),2&n){const e=t,i=Le(2);Q(),Jd(" ( ",e.all," ",1===e.all?"file":"files"," "),Q(),Tt(2,null!=i.node.children&&i.node.children.length&&rt(3,3,i.isDeltaMode$)?2:-1)}}function J3e(n,t){if(1&n&&(D(0,"span",1),ye(1),pt(2,Z3e,5,5,"span",2),qe(3,"async"),U()),2&n){let e;const i=Le();Q(),sn(" ",i.node.path," "),Q(),Tt(2,(e=rt(3,2,(null==i.node.children?null:i.node.children.length)&&i.fileCount$))?2:-1,e)}}let eke=(()=>{class n{constructor(e){this.fileCount$=e.select(K3e),this.isDeltaMode$=e.select(Hm)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-node-path"]],inputs:{node:"node"},decls:2,vars:1,consts:[[1,"cc-node-path"],[1,"file-path"],[1,"cc-node-file-count"],["title","Number of added files",1,"added-files"],["title","Number of removed files",1,"removed-files"],["title","Number of files with metric changes",1,"files-with-metric-changes"]],template:function(i,r){1&i&&(D(0,"p",0),pt(1,J3e,4,4,"span",1),U()),2&i&&(Q(),Tt(1,r.node?1:-1))},dependencies:[Kn],styles:[".cc-node-path[_ngcontent-%COMP%]{color:gray;margin:5px 0}.cc-node-path[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{word-wrap:break-word}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%]{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%]{color:#64d051}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%]{color:#ff0e0e}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%]{color:#0e2eff}"]})}}return n})(),sN=(()=>{class n{transform(e){return Lm.withoutCCExtension(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"removeExtension",type:n,pure:!0})}}return n})();function tke(n,t){if(1&n&&(D(0,"div",1)(1,"a",4)(2,"h2"),ye(3),U(),xe(4,"i",5),U()()),2&n){const e=Le(2);Ua("matTooltip",e.node.link),_e("matTooltipShowDelay",200),Q(),Ua("href",e.node.link,Vp),Q(2),sn("",e.node.name,"\xa0")}}function nke(n,t){if(1&n){const e=Dn();D(0,"i",0),ze("click",function(){return Ot(e),Rt(Le().closeSideBar())}),U(),pt(1,tke,5,4,"div",1),D(2,"p",2),ye(3),qe(4,"removeExtension"),U(),xe(5,"cc-node-path",3)}if(2&n){const e=Le();Q(),Tt(1,e.node.link?1:-1),Q(2),br(rt(4,3,e.fileName)),Q(2),_e("node",e.node)}}let ike=(()=>{class n{constructor(e){this.isAttributeSideBarVisibleService=e}closeSideBar(){this.isAttributeSideBarVisibleService.isOpen=!1}static{this.\u0275fac=function(i){return new(i||n)($(VT))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-header-section"]],inputs:{node:"node",fileName:"fileName"},decls:1,vars:1,consts:[[1,"close-icon","fa","fa-times",3,"click"],["data-testid","file-link",1,"node-name",3,"matTooltip","matTooltipShowDelay"],[1,"node-origin"],[3,"node"],["target","_blank","rel","noopener noreferrer",1,"node-link",3,"href"],[1,"fa","fa-external-link"]],template:function(i,r){1&i&&pt(0,nke,6,5),2&i&&Tt(0,r.node?0:-1)},dependencies:[WZ,eke,sN],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%], [_nghost-%COMP%] .node-link[_ngcontent-%COMP%]{color:gray;padding:0;cursor:pointer;outline:none;transition:.2s}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .node-link[_ngcontent-%COMP%]:hover{color:#444}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%]{align-self:flex-end;font-size:20px}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%]{width:90%;cursor:pointer}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%] .node-link[_ngcontent-%COMP%]{font-size:11pt}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%] .node-link[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:#000;display:inline}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%]{color:gray;margin:5px 0}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{word-wrap:break-word}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%]{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%]{color:#64d051}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%]{color:#ff0e0e}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%]{color:#0e2eff}"]})}}return n})();const aN=Kt(Um,n=>n&&!No(n)),bb=Kt(lc,n=>n.areaMetric),tf=Kt(lc,n=>n.edgeMetric),ex=Kt(lc,n=>n.heightMetric),GT=Kt(bb,ex,Nm,tf,(n,t,e,i)=>({areaMetric:n,heightMetric:t,colorMetric:e,edgeMetric:i})),rke=Kt(Um,GT,(n,t)=>{if(n)return{area:{name:t.areaMetric,value:n.attributes[t.areaMetric]},height:{name:t.heightMetric,value:n.attributes[t.heightMetric]},color:{name:t.colorMetric,value:n.attributes[t.colorMetric]},edge:oke(t.edgeMetric,n)}});function oke(n,t){return null==n?null:{name:n,incoming:t.edgeAttributes[n]?t.edgeAttributes[n].incoming??0:0,outgoing:t.edgeAttributes[n]?t.edgeAttributes[n].outgoing??0:0}}const WT=Kt(k1,n=>n.attributeDescriptors);class $T{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new Ln,e&&e.length&&(t?e.forEach(o=>this._markSelected(o)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);const e=this.selected,i=new Set(t);t.forEach(o=>this._markSelected(o)),e.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));const r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();const e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}return t}}let jZ=(()=>{class n{constructor(){this._listeners=[]}notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const lke=["button"],cke=["*"];function dke(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&_e("disabled",Le().disabled)}function uke(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&_e("disabled",Le().disabled)}const XZ=new dt("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function hke(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1}}}),KZ=new dt("MatButtonToggleGroup"),fke={provide:js,useExisting:ei(()=>lN),multi:!0};let YZ=0;class ZZ{constructor(t,e){this.source=t,this.value=e}}let lN=(()=>{class n{get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}get value(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(i=>i.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}get selected(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}constructor(e,i){this._changeDetector=e,this._multiple=!1,this._disabled=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+YZ++,this.valueChange=new Fn,this.change=new Fn,this.appearance=i&&i.appearance?i.appearance:"standard",this.hideSingleSelectionIndicator=i?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=i?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new $T(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked))}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_emitChangeEvent(e){const i=new ZZ(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,r=!1,o=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(e,r)):this._updateModelValue(e,r)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return!(typeof this._rawValue>"u")&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>null!=e.value&&i===e.value):e.value===this._rawValue)}_setSelectionByValue(e){this._rawValue=e,this._buttonToggles&&(this.multiple&&e?(Array.isArray(e),this._clearSelection(),e.forEach(i=>this._selectValue(i))):(this._clearSelection(),this._selectValue(e)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>e.checked=!1)}_selectValue(e){const i=this._buttonToggles.find(r=>null!=r.value&&r.value===e);i&&(i.checked=!0,this._selectionModel.select(i))}_updateModelValue(e,i){i&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static{this.\u0275fac=function(i){return new(i||n)($(vo),$(XZ,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,tx,5),2&i){let s;an(s=ln())&&(r._buttonToggles=s)}},hostAttrs:["role","group",1,"mat-button-toggle-group"],hostVars:5,hostBindings:function(i,r){2&i&&(pi("aria-disabled",r.disabled),Un("mat-button-toggle-vertical",r.vertical)("mat-button-toggle-group-appearance-standard","standard"===r.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[Ct.HasDecoratorInputTransform,"vertical","vertical",Jn],value:"value",multiple:[Ct.HasDecoratorInputTransform,"multiple","multiple",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],hideSingleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Jn],hideMultipleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",Jn]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[ui([fke,{provide:KZ,useExisting:n}]),rs]})}}return n})(),tx=(()=>{class n{get buttonId(){return`${this.id}-button`}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}constructor(e,i,r,o,s,a){this._changeDetectorRef=i,this._elementRef=r,this._focusMonitor=o,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new Fn;const l=Number(s);this.tabIndex=l||0===l?l:null,this.buttonToggleGroup=e,this.appearance=a&&a.appearance?a.appearance:"standard"}ngOnInit(){const e=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+YZ++,e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){const e=!!this._isSingleSelector()||!this._checked;e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.change.emit(new ZZ(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this._isSingleSelector()?this.buttonToggleGroup.name:this.name||null}_isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static{this.\u0275fac=function(i){return new(i||n)($(KZ,8),$(vo),$(Nn),$(Th),zl("tabindex"),$(XZ,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-button-toggle"]],viewQuery:function(i,r){if(1&i&&ti(lke,5),2&i){let o;an(o=ln())&&(r._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:12,hostBindings:function(i,r){1&i&&ze("focus",function(){return r.focus()}),2&i&&(pi("aria-label",null)("aria-labelledby",null)("id",r.id)("name",null),Un("mat-button-toggle-standalone",!r.buttonToggleGroup)("mat-button-toggle-checked",r.checked)("mat-button-toggle-disabled",r.disabled)("mat-button-toggle-appearance-standard","standard"===r.appearance))},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],appearance:"appearance",checked:[Ct.HasDecoratorInputTransform,"checked","checked",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[rs,Nr],ngContentSelectors:cke,decls:8,vars:11,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-label-content"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){if(1&i){const o=Dn();Yr(),D(0,"button",1,0),ze("click",function(){return Ot(o),Rt(r._onButtonClick())}),D(2,"span",2),pt(3,dke,1,1,"mat-pseudo-checkbox",3)(4,uke,1,1,"mat-pseudo-checkbox",3),Vn(5),U()(),xe(6,"span",4)(7,"span",5)}if(2&i){const o=Lo(1);_e("id",r.buttonId)("disabled",r.disabled||null),pi("tabindex",r.disabled?-1:r.tabIndex)("aria-pressed",r.checked)("name",r._getButtonName())("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),Q(3),Tt(3,r.buttonToggleGroup&&r.checked&&!r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),Q(),Tt(4,r.buttonToggleGroup&&r.checked&&r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),Q(3),_e("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)}},dependencies:[Ih,C$],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape);border:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-standard-button-toggle-selected-state-text-color )}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-legacy-button-toggle-selected-state-text-color )}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle .mat-pseudo-checkbox{margin-right:12px}[dir=rtl] .mat-button-toggle .mat-pseudo-checkbox{margin-right:0;margin-left:12px}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-legacy-button-toggle-disabled-state-text-color )}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color);background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font);font-size:var(--mat-standard-button-toggle-label-text-size);line-height:var(--mat-standard-button-toggle-label-text-line-height);font-weight:var(--mat-standard-button-toggle-label-text-weight);letter-spacing:var(--mat-standard-button-toggle-label-text-tracking)}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color);background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-standard-button-toggle-disabled-selected-state-text-color )}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color)}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity)}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity)}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape);border-bottom-right-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape);border-bottom-left-radius:var(--mat-standard-button-toggle-shape)}"],encapsulation:2,changeDetection:0})}}return n})(),JZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,u_,tx,fr]})}}return n})(),cN=(()=>{class n{constructor(e){this.store=e,this.attributeTypes$=this.store.select(WL)}setToAbsolute(){this.setAttributeType(um.absolute)}setToRelative(){this.setAttributeType(um.relative)}setAttributeType(e){this.store.dispatch(LP({category:this.metricType,name:this.metricName,attributeType:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-type-selector"]],inputs:{metricName:"metricName",metricType:"metricType"},decls:6,vars:3,consts:[[3,"value"],["title","Select Sum","value","absolute",3,"click"],["title","Select Median","value","relative",3,"click"]],template:function(i,r){if(1&i&&(D(0,"mat-button-toggle-group",0),qe(1,"async"),D(2,"mat-button-toggle",1),ze("click",function(){return r.setToAbsolute()}),ye(3,"\u03a3"),U(),D(4,"mat-button-toggle",2),ze("click",function(){return r.setToRelative()}),ye(5,"x\u0342"),U()()),2&i){let o;_e("value",null!==(o=rt(1,1,r.attributeTypes$)[r.metricType][r.metricName])&&void 0!==o?o:"absolute")}},dependencies:[lN,tx,Kn],encapsulation:2})}}return n})();function mke(n,t){if(1&n&&(D(0,"span"),qe(1,"async"),ye(2),qe(3,"number"),U()),2&n){const e=t;zi("color",rt(1,3,Le().mapColors$)[e>0?"positiveDelta":"negativeDelta"]),Q(2),sn(" \u0394",Io(3,5,e,"1.1-2")," ")}}let eJ=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.selectedNode$=this.store.select(Um),this.mapColors$=this.store.select(pb)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-delta-selected"]],inputs:{metricName:"metricName"},decls:2,vars:3,consts:[[3,"color"]],template:function(i,r){if(1&i&&(pt(0,mke,4,8,"span",0),qe(1,"async")),2&i){let o;Tt(0,(o=null==(o=rt(1,1,r.selectedNode$))||null==o.deltas?null:o.deltas[r.metricName])?0:-1,o)}},dependencies:[Kn,qy],styles:["[_nghost-%COMP%]:has(span){margin-top:5px}"]})}}return n})();function pke(n,t){1&n&&xe(0,"cc-attribute-type-selector",2),2&n&&_e("metricName",Le().metric.name)("metricType","nodes")}function Ake(n,t){if(1&n&&(D(0,"a",5),ye(1),xe(2,"i",6),U()),2&n){const e=Le();_e("href",t,Vp),Q(),sn(" ",e.metric.name," ")}}function gke(n,t){if(1&n&&(D(0,"span",7),ye(1),U()),2&n){const e=Le();Q(),br(e.metric.name)}}let _ke=(()=>{class n{constructor(e){this.showAttributeTypeSelector$=e.select(aN)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-primary-metric"]],inputs:{iconName:"iconName",metric:"metric",metricLink:"metricLink"},decls:11,vars:11,consts:[[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"primary-metric-value"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(D(0,"div",0)(1,"div",1),xe(2,"i"),pt(3,pke,1,2,"cc-attribute-type-selector",2),qe(4,"async"),D(5,"span",3),ye(6),qe(7,"number"),U()(),xe(8,"cc-metric-delta-selected",4),pt(9,Ake,3,2,"a",5)(10,gke,2,1),U()),2&i){let o;Q(2),cl(r.iconName),Q(),Tt(3,rt(4,6,r.showAttributeTypeSelector$)?3:-1),Q(3),br(Io(7,8,r.metric.value,"1.0-0")),Q(2),_e("metricName",r.metric.name),Q(),Tt(9,(o=r.metricLink)?9:10,o)}},dependencies:[cN,eJ,Kn,qy],styles:[".primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-name[_ngcontent-%COMP%]{margin-top:5px;color:gray;word-break:break-word;vertical-align:middle}.primary-metric-value[_ngcontent-%COMP%]{margin-right:-5px}i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}"]})}}return n})();const vb=new Map([["loc","Lines of Code"],["rloc","Real Lines of Code"],["comment_lines","Number of Code Lines with Comments"],["complexity","Cyclomatic Complexity"],["sonar_complexity","Cyclomatic Complexity"],["mcc","McCabe Complexity"],["avgCommits","Average Number of Commits from this file"],["functions","Number of Functions"],["pairingRate","Pairing Rate of selected building"],["unary","-"],["line_coverage","Number of Code Lines covered by tests"],["sonar_code_smells","Number of Smells Sonar has identified"],["avg_code_churn","Average Number of Lines added or removed from this file"],["number_of_authors","Number of Authors that have edited this file"],["statements","Number of Statements"]]);let jT=(()=>{class n{transform(e,i){if(null==e)return vb.get(i)??"";const r=e.title?`${e.title} (${i})`:`${i}`;let o=e.description?`\n${e.description}`:"";return o+=e.hintHighValue?`\nHigh Values: ${e.hintHighValue}`:"",o+=e.hintLowValue?`\nLow Values: ${e.hintLowValue}`:"",o.length>0?`${r}:${o}`:r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"attributeDescriptorTooltip",type:n,pure:!0})}}return n})();function bke(n,t){1&n&&xe(0,"cc-attribute-type-selector",8),2&n&&_e("metricName",Le().name)("metricType","edges")}function vke(n,t){if(1&n&&(D(0,"a",10),ye(1),xe(2,"i",11),U()),2&n){const e=Le();_e("href",t,Vp),Q(),sn(" ",e.name," (in/out) ")}}function yke(n,t){if(1&n&&(D(0,"span",12),ye(1),U()),2&n){const e=Le();Q(),sn("",e.name," (in/out)")}}function wke(n,t){if(1&n&&(D(0,"td",3),qe(1,"attributeDescriptorTooltip"),D(2,"div",5)(3,"div",6),xe(4,"i",7),pt(5,bke,1,2,"cc-attribute-type-selector",8),qe(6,"async"),D(7,"span",9),ye(8),qe(9,"number"),D(10,"span"),ye(11,"/"),U(),ye(12),qe(13,"number"),U()(),pt(14,vke,3,2,"a",10)(15,yke,2,1),U()()),2&n){let e;const i=t,r=Le(2),o=Le();_e("title",Io(1,5,r[i.name],i.name)),Q(5),Tt(5,rt(6,8,o.showAttributeTypeSelector$)?5:-1),Q(3),sn(" ",Io(9,10,i.incoming,"1.0-0")," "),Q(4),sn(" ",Io(13,13,i.outgoing,"1.0-0")," "),Q(2),Tt(14,(e=null==r[i.name]?null:r[i.name].link)?14:15,e)}}function xke(n,t){1&n&&(D(0,"td")(1,"span",12),ye(2,"No edge metric available"),U()())}function Cke(n,t){if(1&n&&(D(0,"table",1)(1,"th",2),ye(2,"Primary Metrics"),U(),D(3,"tr")(4,"td",3),qe(5,"attributeDescriptorTooltip"),xe(6,"cc-attribute-side-bar-primary-metric",4),U(),D(7,"td",3),qe(8,"attributeDescriptorTooltip"),xe(9,"cc-attribute-side-bar-primary-metric",4),U()(),D(10,"tr")(11,"td",3),qe(12,"attributeDescriptorTooltip"),xe(13,"cc-attribute-side-bar-primary-metric",4),U(),pt(14,wke,16,16,"td",3)(15,xke,3,0),U()()),2&n){let e;const i=t,r=Le();Q(4),_e("title",Io(5,13,r[i.area.name],i.area.name)),Q(2),_e("iconName","fa fa-arrows-alt")("metric",i.area)("metricLink",null==r[i.area.name]?null:r[i.area.name].link),Q(),_e("title",Io(8,16,r[i.height.name],i.height.name)),Q(2),_e("iconName","fa fa-arrows-v")("metric",i.height)("metricLink",null==r[i.height.name]?null:r[i.height.name].link),Q(2),_e("title",Io(12,19,r[i.color.name],i.color.name)),Q(2),_e("iconName","fa fa-paint-brush")("metric",i.color)("metricLink",null==r[i.color.name]?null:r[i.color.name].link),Q(),Tt(14,(e=i.edge)?14:15,e)}}function Mke(n,t){if(1&n&&(D(0,"div",0),pt(1,Cke,16,22,"table",1),qe(2,"async"),U()),2&n){let e;const i=Le();Q(),Tt(1,(e=rt(2,1,i.primaryMetrics$))?1:-1,e)}}let Eke=(()=>{class n{constructor(e){this.store=e,this.primaryMetrics$=this.store.select(rke),this.showAttributeTypeSelector$=this.store.select(aN),this.attributeDescriptors$=this.store.select(WT)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-primary-metrics"]],decls:2,vars:3,consts:[[1,"metric-box"],["aria-hidden","true",1,"primary-metrics"],["scope","col"],[3,"title"],[3,"iconName","metric","metricLink"],[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"fa","fa-exchange"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"text-content"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(pt(0,Mke,3,3,"div",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[cN,_ke,Kn,qy,jT],styles:["[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%], [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active{color:red}.metric-box[_ngcontent-%COMP%]{border-radius:5px;background-color:#f0f0f0;padding:5px}.metric-box.scrollable-content[_ngcontent-%COMP%]{max-height:100%;overflow:auto}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%]{table-layout:fixed;width:100%;border-collapse:collapse}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-left:5px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{padding-left:4px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-box[_ngcontent-%COMP%]{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-row[_ngcontent-%COMP%]{flex-wrap:nowrap}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .metric-name[_ngcontent-%COMP%]{color:gray;word-break:break-word;vertical-align:middle;margin-top:5px}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .delta-value-box[_ngcontent-%COMP%]{vertical-align:middle}.secondary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}"]})}}return n})();const Ske=Kt(Um,n=>!!n?.deltas),Tke=Kt(GT,Um,(n,t)=>{if(!t)return[];const e=Object.values(n);return Object.keys(t.attributes).filter(r=>"unary"!==r&&!e.includes(r)).sort((r,o)=>r.localeCompare(o)).map(r=>({name:r,value:t.attributes[r]}))});function Ike(n,t){1&n&&xe(0,"cc-attribute-type-selector",8),2&n&&_e("metricName",Le().$implicit.name)("metricType","nodes")}function Fke(n,t){if(1&n&&(D(0,"a",12),ye(1),xe(2,"i",13),U()),2&n){const e=Le().$implicit;_e("href",t,Vp),Q(),sn(" ",e.name," ")}}function Dke(n,t){if(1&n&&(D(0,"span",14),ye(1),U()),2&n){const e=Le().$implicit;Q(),br(e.name)}}function kke(n,t){if(1&n&&(D(0,"tr",5),qe(1,"attributeDescriptorTooltip"),D(2,"td",6)(3,"div",7),pt(4,Ike,1,2,"cc-attribute-type-selector",8),qe(5,"async"),D(6,"span",9),ye(7),qe(8,"number"),U()()(),D(9,"td",10),qe(10,"async"),xe(11,"cc-metric-delta-selected",11),U(),D(12,"td"),pt(13,Fke,3,2,"a",12)(14,Dke,2,1),U()()),2&n){let e;const i=t.$implicit,r=Le(),o=Le();_e("title",Io(1,6,r[i.name],i.name)),Q(4),Tt(4,rt(5,9,o.showAttributeTypeSelector$)?4:-1),Q(3),br(Io(8,11,i.value,"1.0-0")),Q(2),_e("hidden",!rt(10,14,o.showDeltaValue$)),Q(2),_e("metricName",i.name),Q(2),Tt(13,(e=null==r[i.name]?null:r[i.name].link)?13:14,e)}}function Bke(n,t){if(1&n&&(D(0,"div",2)(1,"table",3)(2,"tr")(3,"th",4),ye(4,"Secondary Metrics"),U()(),Or(5,kke,15,16,"tr",5,qr),qe(7,"async"),U()()),2&n){const e=Le();Q(5),Lr(rt(7,0,e.secondaryMetrics$))}}let Pke=(()=>{class n{constructor(e){this.store=e,this.secondaryMetrics$=this.store.select(Tke),this.showAttributeTypeSelector$=this.store.select(aN),this.showDeltaValue$=this.store.select(Ske),this.attributeDescriptors$=this.store.select(WT)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-secondary-metrics"]],decls:4,vars:3,consts:[[1,"secondary-metrics-wrapper"],[1,"metrics-wrapper"],[1,"metric-box","scrollable-content"],["aria-hidden","true",1,"secondary-metrics"],["scope","col","colspan","2"],[3,"title"],[1,"secondary-metric-box"],[1,"secondary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"metric-value"],[1,"delta-value-box",3,"hidden"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(D(0,"div",0)(1,"div",1),pt(2,Bke,8,2,"div",2),qe(3,"async"),U()()),2&i){let o;Q(2),Tt(2,(o=rt(3,1,r.attributeDescriptors$))?2:-1,o)}},dependencies:[cN,eJ,Kn,qy,jT],styles:["[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%], [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active{color:red}.metric-box[_ngcontent-%COMP%]{border-radius:5px;background-color:#f0f0f0;padding:5px}.metric-box.scrollable-content[_ngcontent-%COMP%]{max-height:100%;overflow:auto}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%]{table-layout:fixed;width:100%;border-collapse:collapse}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-left:5px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{padding-left:4px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-box[_ngcontent-%COMP%]{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-row[_ngcontent-%COMP%]{flex-wrap:nowrap}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .metric-name[_ngcontent-%COMP%]{color:gray;word-break:break-word;vertical-align:middle;margin-top:5px}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .delta-value-box[_ngcontent-%COMP%]{vertical-align:middle}.secondary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}",'.secondary-metrics-wrapper[_ngcontent-%COMP%]{position:relative}.secondary-metrics-wrapper[_ngcontent-%COMP%]:after{content:"";clear:both;display:block}.secondary-metrics-wrapper[_ngcontent-%COMP%] .metrics-wrapper[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;padding-top:12px}']})}}return n})(),Rke=(()=>{class n{constructor(e,i){this.isAttributeSideBarVisibleService=e,this.store=i,this.selectedNode$=this.store.select(Um),this.fileName$=this.store.select(Hc).pipe(Qe(r=>r.unifiedFileMeta?.fileName??""))}static{this.\u0275fac=function(i){return new(i||n)($(VT),$($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar"]],decls:6,vars:8,consts:[[1,"side-bar-container","cc-shadow"],[3,"node","fileName"]],template:function(i,r){1&i&&(D(0,"div",0),xe(1,"cc-attribute-side-bar-header-section",1),qe(2,"async"),qe(3,"async"),xe(4,"cc-attribute-side-bar-primary-metrics")(5,"cc-attribute-side-bar-secondary-metrics"),U()),2&i&&(Un("expanded",r.isAttributeSideBarVisibleService.isOpen),Q(),_e("node",rt(2,4,r.selectedNode$))("fileName",rt(3,6,r.fileName$)))},dependencies:[ike,Eke,Pke,Kn],styles:['[_nghost-%COMP%] .side-bar-container[_ngcontent-%COMP%]{transition:right .3s ease;width:350px;height:calc(100% - 98px);padding:8px;font-size:11pt;position:absolute;right:-355px;background:#fff}[_nghost-%COMP%] .side-bar-container.expanded[_ngcontent-%COMP%]{display:block;right:0}[_nghost-%COMP%] .side-bar-container.cc-shadow[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0003!important}[_nghost-%COMP%] .side-bar-container[_ngcontent-%COMP%]:before{content:"";height:100%;float:left}']})}}return n})(),Oke=(()=>{class n{constructor(e,i,r,o,s){this.isAttributeSideBarVisibleService=e,this.store=i,this.threeViewerService=r,this.codeMapMouseEventService=o,this.elementReference=s,this.isLoadingFile$=this.store.select(k4),this.restartOnSharpnessModeChangesSubscription=this.store.select(xX).pipe(G1(1),Dr(()=>{this.threeViewerService.restart(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()})).subscribe()}ngAfterViewInit(){this.threeViewerService.init(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()}ngOnDestroy(){this.restartOnSharpnessModeChangesSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(VT),$($t),$(UZ),$(Zw),$(Nn))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-code-map"]],decls:4,vars:6,consts:[["id","codeMap"]],template:function(i,r){1&i&&(D(0,"div",0),qe(1,"async"),xe(2,"cc-view-cube")(3,"cc-attribute-side-bar"),U()),2&i&&(Un("hidden",rt(1,4,r.isLoadingFile$)),Q(2),Un("sideBarVisible",r.isAttributeSideBarVisibleService.isOpen))},dependencies:[N3e,Rke,Kn],styles:["[_nghost-%COMP%] .hidden[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] #codeMap[_ngcontent-%COMP%]{position:fixed;z-index:0;top:98px;left:0;width:100%;height:100%}"]})}}return n})();const tJ=Kt(k1,n=>n.markedPackages),Lke=Kt(tJ,n=>n.reduce((t,{color:e,path:i})=>(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),t[e].push(i),t),{}));function ca(n,t){(function Nke(n){return"string"==typeof n&&-1!==n.indexOf(".")&&1===parseFloat(n)})(n)&&(n="100%");var e=function Uke(n){return"string"==typeof n&&-1!==n.indexOf("%")}(n);return n=360===t?n:Math.min(t,Math.max(0,parseFloat(n))),e&&(n=parseInt(String(n*t),10)/100),Math.abs(n-t)<1e-6?1:n=360===t?(n<0?n%t+t:n%t)/parseFloat(String(t)):n%t/parseFloat(String(t))}function XT(n){return Math.min(1,Math.max(0,n))}function nJ(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function KT(n){return n<=1?"".concat(100*Number(n),"%"):n}function ZA(n){return 1===n.length?"0"+n:String(n)}function iJ(n,t,e){n=ca(n,255),t=ca(t,255),e=ca(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),o=0,s=0,a=(i+r)/2;if(i===r)s=0,o=0;else{var l=i-r;switch(s=a>.5?l/(2-i-r):l/(i+r),i){case n:o=(t-e)/l+(t1&&(e-=1),e<1/6?n+6*e*(t-n):e<.5?t:e<2/3?n+(t-n)*(2/3-e)*6:n}function rJ(n,t,e){n=ca(n,255),t=ca(t,255),e=ca(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),o=0,s=i,a=i-r,l=0===i?0:a/i;if(i===r)o=0;else{switch(i){case n:o=(t-e)/a+(t>16,g:(65280&n)>>8,b:255&n}}(t)),this.originalInput=t;var r=function Gke(n){var t={r:0,g:0,b:0},e=1,i=null,r=null,o=null,s=!1,a=!1;return"string"==typeof n&&(n=function jke(n){if(0===(n=n.trim().toLowerCase()).length)return!1;var t=!1;if(uN[n])n=uN[n],t=!0;else if("transparent"===n)return{r:0,g:0,b:0,a:0,format:"name"};var e=xd.rgb.exec(n);return e?{r:e[1],g:e[2],b:e[3]}:(e=xd.rgba.exec(n))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=xd.hsl.exec(n))?{h:e[1],s:e[2],l:e[3]}:(e=xd.hsla.exec(n))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=xd.hsv.exec(n))?{h:e[1],s:e[2],v:e[3]}:(e=xd.hsva.exec(n))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=xd.hex8.exec(n))?{r:dc(e[1]),g:dc(e[2]),b:dc(e[3]),a:aJ(e[4]),format:t?"name":"hex8"}:(e=xd.hex6.exec(n))?{r:dc(e[1]),g:dc(e[2]),b:dc(e[3]),format:t?"name":"hex"}:(e=xd.hex4.exec(n))?{r:dc(e[1]+e[1]),g:dc(e[2]+e[2]),b:dc(e[3]+e[3]),a:aJ(e[4]+e[4]),format:t?"name":"hex8"}:!!(e=xd.hex3.exec(n))&&{r:dc(e[1]+e[1]),g:dc(e[2]+e[2]),b:dc(e[3]+e[3]),format:t?"name":"hex"}}(n)),"object"==typeof n&&(nf(n.r)&&nf(n.g)&&nf(n.b)?(t=function Hke(n,t,e){return{r:255*ca(n,255),g:255*ca(t,255),b:255*ca(e,255)}}(n.r,n.g,n.b),s=!0,a="%"===String(n.r).substr(-1)?"prgb":"rgb"):nf(n.h)&&nf(n.s)&&nf(n.v)?(i=KT(n.s),r=KT(n.v),t=function Qke(n,t,e){n=6*ca(n,360),t=ca(t,100),e=ca(e,100);var i=Math.floor(n),r=n-i,o=e*(1-t),s=e*(1-r*t),a=e*(1-(1-r)*t),l=i%6;return{r:255*[e,s,o,o,a,e][l],g:255*[a,e,e,s,o,o][l],b:255*[o,o,a,e,e,s][l]}}(n.h,i,r),s=!0,a="hsv"):nf(n.h)&&nf(n.s)&&nf(n.l)&&(i=KT(n.s),o=KT(n.l),t=function Vke(n,t,e){var i,r,o;if(n=ca(n,360),t=ca(t,100),e=ca(e,100),0===t)r=e,o=e,i=e;else{var s=e<.5?e*(1+t):e+t-e*t,a=2*e-s;i=dN(a,s,n+1/3),r=dN(a,s,n),o=dN(a,s,n-1/3)}return{r:255*i,g:255*r,b:255*o}}(n.h,i,o),s=!0,a="hsl"),Object.prototype.hasOwnProperty.call(n,"a")&&(e=n.a)),e=nJ(e),{ok:s,format:n.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:e}}(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(i=e.format)&&void 0!==i?i:r.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return n.prototype.isDark=function(){return this.getBrightness()<128},n.prototype.isLight=function(){return!this.isDark()},n.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},n.prototype.getLuminance=function(){var t=this.toRgb(),o=t.r/255,s=t.g/255,a=t.b/255;return.2126*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.7152*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.0722*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))},n.prototype.getAlpha=function(){return this.a},n.prototype.setAlpha=function(t){return this.a=nJ(t),this.roundA=Math.round(100*this.a)/100,this},n.prototype.isMonochrome=function(){return 0===this.toHsl().s},n.prototype.toHsv=function(){var t=rJ(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},n.prototype.toHsvString=function(){var t=rJ(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),r=Math.round(100*t.v);return 1===this.a?"hsv(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsva(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHsl=function(){var t=iJ(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},n.prototype.toHslString=function(){var t=iJ(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),r=Math.round(100*t.l);return 1===this.a?"hsl(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsla(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHex=function(t){return void 0===t&&(t=!1),oJ(this.r,this.g,this.b,t)},n.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},n.prototype.toHex8=function(t){return void 0===t&&(t=!1),function zke(n,t,e,i,r){var o=[ZA(Math.round(n).toString(16)),ZA(Math.round(t).toString(16)),ZA(Math.round(e).toString(16)),ZA(sJ(i))];return r&&o[0].startsWith(o[0].charAt(1))&&o[1].startsWith(o[1].charAt(1))&&o[2].startsWith(o[2].charAt(1))&&o[3].startsWith(o[3].charAt(1))?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}(this.r,this.g,this.b,this.a,t)},n.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},n.prototype.toHexShortString=function(t){return void 0===t&&(t=!1),1===this.a?this.toHexString(t):this.toHex8String(t)},n.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},n.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb(".concat(t,", ").concat(e,", ").concat(i,")"):"rgba(".concat(t,", ").concat(e,", ").concat(i,", ").concat(this.roundA,")")},n.prototype.toPercentageRgb=function(){var t=function(e){return"".concat(Math.round(100*ca(e,255)),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},n.prototype.toPercentageRgbString=function(){var t=function(e){return Math.round(100*ca(e,255))};return 1===this.a?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},n.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+oJ(this.r,this.g,this.b,!1),e=0,i=Object.entries(uN);e=0&&(t.startsWith("hex")||"name"===t)?"name"===t&&0===this.a?this.toName():this.toRgbString():("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString())},n.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},n.prototype.clone=function(){return new n(this.toString())},n.prototype.lighten=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l+=t/100,e.l=XT(e.l),new n(e)},n.prototype.brighten=function(t){void 0===t&&(t=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-t/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-t/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-t/100*255))),new n(e)},n.prototype.darken=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l-=t/100,e.l=XT(e.l),new n(e)},n.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},n.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},n.prototype.desaturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s-=t/100,e.s=XT(e.s),new n(e)},n.prototype.saturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s+=t/100,e.s=XT(e.s),new n(e)},n.prototype.greyscale=function(){return this.desaturate(100)},n.prototype.spin=function(t){var e=this.toHsl(),i=(e.h+t)%360;return e.h=i<0?360+i:i,new n(e)},n.prototype.mix=function(t,e){void 0===e&&(e=50);var i=this.toRgb(),r=new n(t).toRgb(),o=e/100;return new n({r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a})},n.prototype.analogous=function(t,e){void 0===t&&(t=6),void 0===e&&(e=30);var i=this.toHsl(),r=360/e,o=[this];for(i.h=(i.h-(r*t>>1)+720)%360;--t;)i.h=(i.h+r)%360,o.push(new n(i));return o},n.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new n(t)},n.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var e=this.toHsv(),i=e.h,r=e.s,o=e.v,s=[],a=1/t;t--;)s.push(new n({h:i,s:r,v:o})),o=(o+a)%1;return s},n.prototype.splitcomplement=function(){var t=this.toHsl(),e=t.h;return[this,new n({h:(e+72)%360,s:t.s,l:t.l}),new n({h:(e+216)%360,s:t.s,l:t.l})]},n.prototype.onBackground=function(t){var e=this.toRgb(),i=new n(t).toRgb(),r=e.a+i.a*(1-e.a);return new n({r:(e.r*e.a+i.r*i.a*(1-e.a))/r,g:(e.g*e.a+i.g*i.a*(1-e.a))/r,b:(e.b*e.a+i.b*i.a*(1-e.a))/r,a:r})},n.prototype.triad=function(){return this.polyad(3)},n.prototype.tetrad=function(){return this.polyad(4)},n.prototype.polyad=function(t){for(var e=this.toHsl(),i=e.h,r=[this],o=360/t,s=1;s{class n{constructor(){this.white="transparent",this.size=8,this.grey="rgba(0,0,0,.08)"}ngOnInit(){const e=function Zke(n,t,e){const i=`${n}-${t}-${e}`;if(mN[i])return mN[i];const r=function Yke(n,t,e){if(typeof document>"u")return null;const i=document.createElement("canvas");i.width=2*e,i.height=2*e;const r=i.getContext("2d");return r?(r.fillStyle=n,r.fillRect(0,0,i.width,i.height),r.fillStyle=t,r.fillRect(0,0,e,e),r.translate(e,e),r.fillRect(0,0,e,e),i.toDataURL()):null}(n,t,e);return r?(mN[i]=r,r):null}(this.white,this.grey,this.size);this.gridStyles={borderRadius:this.borderRadius,boxShadow:this.boxShadow,background:`url(${e}) center left`}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-checkboard"]],inputs:{white:"white",size:"size",grey:"grey",boxShadow:"boxShadow",borderRadius:"borderRadius"},decls:1,vars:1,consts:[[1,"grid",3,"ngStyle"]],template:function(e,i){1&e&&xe(0,"div",0),2&e&&_e("ngStyle",i.gridStyles)},dependencies:[G0],styles:[".grid[_ngcontent-%COMP%]{top:0px;right:0px;bottom:0px;left:0px;position:absolute}"],changeDetection:0}),n})(),cJ=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn]]}),n})(),pN=(()=>{class n{constructor(e){this.el=e,this.coordinatesChange=new Ln,this.mousechange=new Ln,this.mouseListening=!1}mousemove(e,i,r,o=!1){this.mouseListening&&(e.preventDefault(),this.mousechange.next({$event:e,x:i,y:r,isTouch:o}))}mouseup(){this.mouseListening=!1}mousedown(e,i,r,o=!1){e.preventDefault(),this.mouseListening=!0,this.mousechange.next({$event:e,x:i,y:r,isTouch:o})}ngOnInit(){this.sub=this.mousechange.pipe(d1((e,i)=>e.x===i.x&&e.y===i.y)).subscribe(e=>this.handleChange(e.x,e.y,e.$event,e.isTouch))}ngOnDestroy(){this.sub.unsubscribe()}handleChange(e,i,r,o){const s=this.el.nativeElement.clientWidth,a=this.el.nativeElement.clientHeight,l=e-(this.el.nativeElement.getBoundingClientRect().left+window.pageXOffset);let c=i-this.el.nativeElement.getBoundingClientRect().top;o||(c-=window.pageYOffset),this.coordinatesChange.next({x:e,y:i,top:c,left:l,containerWidth:s,containerHeight:a,$event:r})}}return n.\u0275fac=function(e){return new(e||n)($(Nn))},n.\u0275dir=Wt({type:n,selectors:[["","ngx-color-coordinates",""]],hostBindings:function(e,i){1&e&&ze("mousemove",function(o){return i.mousemove(o,o.pageX,o.pageY)},0,oy)("touchmove",function(o){return i.mousemove(o,o.touches[0].clientX,o.touches[0].clientY,!0)},!1,oy)("mouseup",function(){return i.mouseup()},!1,oy)("touchend",function(){return i.mouseup()},!1,oy)("mousedown",function(o){return i.mousedown(o,o.pageX,o.pageY)})("touchstart",function(o){return i.mousedown(o,o.touches[0].clientX,o.touches[0].clientY,!0)})},outputs:{coordinatesChange:"coordinatesChange"}}),n})(),AN=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({}),n})(),Jke=(()=>{class n{constructor(){this.direction="horizontal",this.onChange=new Fn}ngOnChanges(){"vertical"===this.direction?(this.pointerLeft=0,this.pointerTop=100*this.rgb.a,this.gradient={background:`linear-gradient(to bottom, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`}):(this.gradient={background:`linear-gradient(to right, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`},this.pointerLeft=100*this.rgb.a)}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?0:e>r?1:Math.round(100*e/r)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}else{let l;l=i<0?0:i>o?1:Math.round(100*i/o)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-alpha"]],inputs:{hsl:"hsl",rgb:"rgb",pointer:"pointer",shadow:"shadow",radius:"radius",direction:"direction"},outputs:{onChange:"onChange"},features:[xr],decls:7,vars:15,consts:[[1,"alpha"],[1,"alpha-checkboard"],[1,"alpha-gradient",3,"ngStyle"],["ngx-color-coordinates","",3,"coordinatesChange"],[1,"alpha-pointer"],[1,"alpha-slider",3,"ngStyle"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),xe(2,"color-checkboard"),U(),xe(3,"div",2),D(4,"div",3),ze("coordinatesChange",function(o){return i.handleChange(o)}),D(5,"div",4),xe(6,"div",5),U()()()),2&e&&(zi("border-radius",i.radius),Q(3),zi("box-shadow",i.shadow)("border-radius",i.radius),_e("ngStyle",i.gradient),Q(),hh("alpha-container color-alpha-",i.direction,""),Q(),zi("left",i.pointerLeft,"%")("top",i.pointerTop,"%"),Q(),_e("ngStyle",i.pointer))},dependencies:[lJ,G0,pN],styles:[".alpha[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-checkboard[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.alpha-gradient[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-container[_ngcontent-%COMP%]{position:relative;height:100%;margin:0 3px}.alpha-pointer[_ngcontent-%COMP%]{position:absolute}.alpha-slider[_ngcontent-%COMP%]{width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;margin-top:1px;transform:translate(-2px)}"],changeDetection:0}),n})(),eBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,cJ,AN]]}),n})();function dJ(n){let e=0,i=0;return["r","g","b","a","h","s","l","v"].forEach(r=>{n[r]&&(e+=1,isNaN(n[r])||(i+=1),("s"===r||"l"===r)&&/^\d+%$/.test(n[r])&&(i+=1))}),e===i&&n}function ix(n,t,e){const i=new nx(n.hex?n.hex:n);e&&i.setAlpha(1);const r=i.toHsl(),o=i.toHsv(),s=i.toRgb(),a=i.toHex();return 0===r.s&&(r.h=t||0,o.h=t||0),{hsl:r,hex:"000000"===a&&0===s.a?"transparent":i.toHexString(),rgb:s,hsv:o,oldHue:n.h||t||r.h,source:n.source}}var yb=function(n){return n.HEX="hex",n.HSL="hsl",n.HSV="hsv",n.RGB="rgb",n}(yb||{});let uJ=(()=>{class n{constructor(){this.mode=yb.HEX,this.color={h:250,s:.5,l:.2,a:1},this.colorChange=new Fn,this.onChange=new Fn,this.onChangeComplete=new Fn,this.onSwatchHover=new Fn,this._onChangeCompleteSubscription=new Xn,this._onSwatchHoverSubscription=new Xn}ngOnInit(){this.changes=this.onChange.pipe(n_(100),Dr(e=>{switch(this.onChangeComplete.emit(e),this.mode){case yb.HEX:this.colorChange.emit(e.color.hex);break;case yb.HSL:this.colorChange.emit(e.color.hsl);break;case yb.HSV:this.colorChange.emit(e.color.hsv);break;case yb.RGB:this.colorChange.emit(e.color.rgb);break;default:console.warn(`The mode '${this.mode}' is not supported`)}})).subscribe(),this.setState(ix(this.color,0)),this.currentColor=this.hex}ngOnChanges(){this.setState(ix(this.color,this.oldHue))}ngOnDestroy(){this.changes?.unsubscribe(),this._onChangeCompleteSubscription.unsubscribe(),this._onSwatchHoverSubscription.unsubscribe()}setState(e){this.oldHue=e.oldHue,this.hsl=e.hsl,this.hsv=e.hsv,this.rgb=e.rgb,this.hex=e.hex,this.source=e.source,this.afterValidChange()}handleChange(e,i){if(dJ(e)){const o=ix(e,e.h||this.oldHue,this.disableAlpha);this.setState(o),this.onChange.emit({color:o,$event:i}),this.afterValidChange()}}afterValidChange(){}handleSwatchHover(e,i){if(dJ(e)){const o=ix(e,e.h||this.oldHue);this.setState(o),this.onSwatchHover.emit({color:o,$event:i})}}registerOnChange(e){this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(Dr(i=>e(i.color.hex))).subscribe())}registerOnTouched(e){this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(Dr(()=>e())).subscribe())}setDisabledState(e){}writeValue(e){this.color=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-wrap"]],inputs:{className:"className",mode:"mode",color:"color"},outputs:{colorChange:"colorChange",onChange:"onChange",onChangeComplete:"onChangeComplete",onSwatchHover:"onSwatchHover"},features:[ui([{provide:js,useExisting:ei(()=>n),multi:!0}]),xr],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})(),nBe=0,iBe=(()=>{class n{constructor(){this.placeholder="",this.onChange=new Fn,this.focus=!1,this.uniqueId="editableInput-"+ ++nBe}ngOnInit(){this.wrapStyle=this.style&&this.style.wrap?this.style.wrap:{},this.inputStyle=this.style&&this.style.input?this.style.input:{},this.labelStyle=this.style&&this.style.label?this.style.label:{},this.dragLabel&&(this.labelStyle.cursor="ew-resize")}handleFocus(e){this.focus=!0}handleFocusOut(e){this.focus=!1,this.currentValue=this.blurValue}handleKeydown(e){const i=String(e.target.value),r=i.indexOf("%")>-1,o=Number(i.replace(/%/g,""));if(isNaN(o))return;const s=this.arrowOffset||1;38===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o+s},$event:e}:{data:o+s,$event:e}),this.currentValue=r?`${o+s}%`:o+s),40===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o-s},$event:e}:{data:o-s,$event:e}),this.currentValue=r?o-s+"%":o-s)}handleKeyup(e){40===e.keyCode||38===e.keyCode||`${this.currentValue}`!==e.target.value&&this.onChange.emit(this.label?{data:{[this.label]:e.target.value},$event:e}:{data:e.target.value,$event:e})}ngOnChanges(){this.focus||(this.currentValue=String(this.value).toUpperCase()),this.blurValue=String(this.value).toUpperCase()}ngOnDestroy(){this.unsubscribe()}subscribe(){this.mousemove=o_(document,"mousemove").subscribe(e=>this.handleDrag(e)),this.mouseup=o_(document,"mouseup").subscribe(()=>this.unsubscribe())}unsubscribe(){this.mousemove&&this.mousemove.unsubscribe(),this.mouseup&&this.mouseup.unsubscribe()}handleMousedown(e){this.dragLabel&&(e.preventDefault(),this.handleDrag(e),this.subscribe())}handleDrag(e){if(this.dragLabel){const i=Math.round(this.value+e.movementX);i>=0&&i<=this.dragMax&&this.onChange.emit({data:{[this.label]:i},$event:e})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-editable-input"]],inputs:{style:"style",label:"label",value:"value",arrowOffset:"arrowOffset",dragLabel:"dragLabel",dragMax:"dragMax",placeholder:"placeholder"},outputs:{onChange:"onChange"},features:[xr],decls:3,vars:6,consts:[[1,"wrap",3,"ngStyle"],["spellCheck","false",3,"keydown","keyup","focus","focusout","ngStyle","value","placeholder"],[3,"id","ngStyle","mousedown",4,"ngIf"],[3,"mousedown","id","ngStyle"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"input",1),ze("keydown",function(o){return i.handleKeydown(o)})("keyup",function(o){return i.handleKeyup(o)})("focus",function(o){return i.handleFocus(o)})("focusout",function(o){return i.handleFocusOut(o)}),U(),pt(2,Xke,2,3,"span",2),U()),2&e&&(_e("ngStyle",i.wrapStyle),Q(),_e("ngStyle",i.inputStyle)("value",i.currentValue)("placeholder",i.placeholder),pi("aria-labelledby",i.uniqueId),Q(),_e("ngIf",i.label))},dependencies:[G0,eA],styles:["[_nghost-%COMP%]{display:flex}.wrap[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),n})(),rBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn]]}),n})(),oBe=(()=>{class n{constructor(){this.hidePointer=!1,this.direction="horizontal",this.onChange=new Fn,this.left="0px",this.top=""}ngOnChanges(){"horizontal"===this.direction?this.left=100*this.hsl.h/360+"%":this.top=-100*this.hsl.h/360+100+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?359:e>r?0:360*(-100*e/r+100)/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}else{let l;l=i<0?0:i>o?359:100*i/o*360/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-hue"]],inputs:{hsl:"hsl",pointer:"pointer",radius:"radius",shadow:"shadow",hidePointer:"hidePointer",direction:"direction"},outputs:{onChange:"onChange"},features:[xr],decls:3,vars:8,consts:[["ngx-color-coordinates","",1,"color-hue-container",3,"coordinatesChange"],["class","color-hue-pointer",3,"left","top",4,"ngIf"],[1,"color-hue-pointer"],[1,"color-hue-slider",3,"ngStyle"]],template:function(e,i){1&e&&(D(0,"div")(1,"div",0),ze("coordinatesChange",function(o){return i.handleChange(o)}),pt(2,Kke,2,5,"div",1),U()()),2&e&&(hh("color-hue color-hue-",i.direction,""),zi("border-radius",i.radius,"px")("box-shadow",i.shadow),Q(2),_e("ngIf",!i.hidePointer))},dependencies:[pN,eA,G0],styles:[".color-hue[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.color-hue-container[_ngcontent-%COMP%]{margin:0 2px;position:relative;height:100%}.color-hue-pointer[_ngcontent-%COMP%]{position:absolute}.color-hue-slider[_ngcontent-%COMP%]{margin-top:1px;width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;transform:translate(-2px)}.color-hue-horizontal[_ngcontent-%COMP%]{background:linear-gradient(to right,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}.color-hue-vertical[_ngcontent-%COMP%]{background:linear-gradient(to top,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}"],changeDetection:0}),n})(),sBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,AN]]}),n})(),aBe=(()=>{class n{constructor(){this.onChange=new Fn}ngOnChanges(){this.background=`hsl(${this.hsl.h}, 100%, 50%)`,this.pointerTop=-100*this.hsv.v+1+100+"%",this.pointerLeft=100*this.hsv.s+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){i<0?i=0:i>o?i=o:e<0?e=0:e>r&&(e=r);let l=-e/r+1;l=l>0?l:0,l=l>1?1:l,this.onChange.emit({data:{h:this.hsl.h,s:i/o,v:l,a:this.hsl.a,source:"hsva"},$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-saturation"]],inputs:{hsl:"hsl",hsv:"hsv",radius:"radius",pointer:"pointer",circle:"circle"},outputs:{onChange:"onChange"},features:[xr],decls:5,vars:8,consts:[["ngx-color-coordinates","",1,"color-saturation",3,"coordinatesChange"],[1,"saturation-white"],[1,"saturation-black"],[1,"saturation-pointer",3,"ngStyle"],[1,"saturation-circle",3,"ngStyle"]],template:function(e,i){1&e&&(D(0,"div",0),ze("coordinatesChange",function(o){return i.handleChange(o)}),D(1,"div",1),xe(2,"div",2),D(3,"div",3),xe(4,"div",4),U()()()),2&e&&(zi("background",i.background),Q(3),zi("top",i.pointerTop)("left",i.pointerLeft),_e("ngStyle",i.pointer),Q(),_e("ngStyle",i.circle))},dependencies:[pN,G0],styles:[".saturation-white[_ngcontent-%COMP%]{background:linear-gradient(to right,#fff,rgba(255,255,255,0));position:absolute;top:0;bottom:0;left:0;right:0}.saturation-black[_ngcontent-%COMP%]{background:linear-gradient(to top,#000,rgba(0,0,0,0));position:absolute;top:0;bottom:0;left:0;right:0}.color-saturation[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.saturation-pointer[_ngcontent-%COMP%]{position:absolute;cursor:default}.saturation-circle[_ngcontent-%COMP%]{width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;cursor:hand;transform:translate(-2px,-4px)}"],changeDetection:0}),n})(),lBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,AN]]}),n})();const rf=(n,t)=>({input:n,label:t});function cBe(n,t){if(1&n){const e=Dn();D(0,"div",11)(1,"color-editable-input",12),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()()}if(2&n){const e=Le();Q(),Rs(ul(3,rf,e.input,e.label)),_e("value",e.hex)}}function dBe(n,t){if(1&n){const e=Dn();D(0,"color-editable-input",17),ze("onChange",function(r){return Ot(e),Rt(Le(2).handleChange(r))}),U()}if(2&n){const e=Le(2);Rs(ul(4,rf,e.input,e.label)),_e("value",e.rgb.a)("arrowOffset",.01)}}function uBe(n,t){if(1&n){const e=Dn();D(0,"div",11)(1,"color-editable-input",13),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(2,"div",11)(3,"color-editable-input",14),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(4,"div",11)(5,"color-editable-input",15),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(6,"div",11),pt(7,dBe,1,7,"color-editable-input",16),U()}if(2&n){const e=Le();Q(),Rs(ul(10,rf,e.input,e.label)),_e("value",e.rgb.r),Q(2),Rs(ul(13,rf,e.input,e.label)),_e("value",e.rgb.g),Q(2),Rs(ul(16,rf,e.input,e.label)),_e("value",e.rgb.b),Q(2),_e("ngIf",!e.disableAlpha)}}function hBe(n,t){if(1&n){const e=Dn();D(0,"color-editable-input",17),ze("onChange",function(r){return Ot(e),Rt(Le(2).handleChange(r))}),U()}if(2&n){const e=Le(2);Rs(ul(4,rf,e.input,e.label)),_e("value",e.hsl.a)("arrowOffset",.01)}}function fBe(n,t){if(1&n){const e=Dn();D(0,"div",11)(1,"color-editable-input",18),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(2,"div",11)(3,"color-editable-input",19),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(4,"div",11)(5,"color-editable-input",20),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(6,"div",11),pt(7,hBe,1,7,"color-editable-input",16),U()}if(2&n){const e=Le();Q(),Rs(ul(10,rf,e.input,e.label)),_e("value",e.round(e.hsl.h)),Q(2),Rs(ul(13,rf,e.input,e.label)),_e("value",e.round(100*e.hsl.s)+"%"),Q(2),Rs(ul(16,rf,e.input,e.label)),_e("value",e.round(100*e.hsl.l)+"%"),Q(2),_e("ngIf",!e.disableAlpha)}}function mBe(n,t){if(1&n){const e=Dn();D(0,"div",12)(1,"color-alpha",13),ze("onChange",function(r){return Ot(e),Rt(Le().handleValueChange(r))}),U()()}if(2&n){const e=Le();Q(),_e("radius",2)("rgb",e.rgb)("hsl",e.hsl)("pointer",e.pointer)}}let pBe=(()=>{class n{constructor(){this.onChange=new Fn,this.view="",this.input={fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px","text-align":"center"},this.label={"text-transform":"uppercase",fontSize:"11px","line-height":"11px",color:"#969696","text-align":"center",display:"block",marginTop:"12px"}}ngOnInit(){1===this.hsl.a&&"hex"!==this.view?this.view="hex":"rgb"!==this.view&&"hsl"!==this.view&&(this.view="rgb")}toggleViews(){"hex"===this.view?this.view="rgb":"rgb"===this.view?this.view="hsl":"hsl"===this.view&&(this.view=1===this.hsl.a?"hex":"rgb")}round(e){return Math.round(e)}handleChange({data:e,$event:i}){if(e.hex){if(function tBe(n){return new nx(n).isValid}(e.hex)){const r=new nx(e.hex);this.onChange.emit({data:{hex:this.disableAlpha?r.toHex():r.toHex8(),source:"hex"},$event:i})}}else if(e.r||e.g||e.b)this.onChange.emit({data:{r:e.r||this.rgb.r,g:e.g||this.rgb.g,b:e.b||this.rgb.b,source:"rgb"},$event:i});else if(e.a)e.a<0?e.a=0:e.a>1&&(e.a=1),this.disableAlpha&&(e.a=1),this.onChange.emit({data:{h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},$event:i});else if(e.h||e.s||e.l){const r=e.s&&e.s.replace("%",""),o=e.l&&e.l.replace("%","");this.onChange.emit({data:{h:e.h||this.hsl.h,s:Number(r||this.hsl.s),l:Number(o||this.hsl.l),source:"hsl"},$event:i})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-chrome-fields"]],inputs:{disableAlpha:"disableAlpha",hsl:"hsl",rgb:"rgb",hex:"hex"},outputs:{onChange:"onChange"},decls:13,vars:3,consts:[["icon",""],["iconUp",""],["iconDown",""],[1,"chrome-wrap"],[1,"chrome-fields"],[3,"ngIf"],[1,"chrome-toggle"],[1,"chrome-icon",3,"click"],["viewBox","0 0 24 24",1,"chrome-toggle-svg"],["fill","#333","d","M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"],["fill","#333","d","M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"],[1,"chrome-field"],["label","hex",3,"onChange","value"],["label","r",3,"onChange","value"],["label","g",3,"onChange","value"],["label","b",3,"onChange","value"],["label","a",3,"style","value","arrowOffset","onChange",4,"ngIf"],["label","a",3,"onChange","value","arrowOffset"],["label","h",3,"onChange","value"],["label","s",3,"onChange","value"],["label","l",3,"onChange","value"]],template:function(e,i){if(1&e){const r=Dn();D(0,"div",3)(1,"div",4),pt(2,cBe,2,6,"ng-template",5)(3,uBe,8,19,"ng-template",5)(4,fBe,8,19,"ng-template",5),U(),D(5,"div",6)(6,"div",7,0),ze("click",function(){return Ot(r),Rt(i.toggleViews())}),Ul(),D(8,"svg",8),xe(9,"path",9,1)(11,"path",10,2),U()()()()}2&e&&(Q(2),_e("ngIf","hex"===i.view),Q(),_e("ngIf","rgb"===i.view),Q(),_e("ngIf","hsl"===i.view))},dependencies:[iBe,eA],styles:[".chrome-wrap[_ngcontent-%COMP%]{padding-top:16px;display:flex}.chrome-fields[_ngcontent-%COMP%]{flex:1;display:flex;margin-left:-6px}.chrome-field[_ngcontent-%COMP%]{padding-left:6px;width:100%}.chrome-toggle[_ngcontent-%COMP%]{width:32px;text-align:right;position:relative}.chrome-icon[_ngcontent-%COMP%]{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative}.chrome-toggle-svg[_ngcontent-%COMP%]{width:24px;height:24px;border:1px transparent solid;border-radius:5px}.chrome-toggle-svg[_ngcontent-%COMP%]:hover{background:#eee}"],changeDetection:0}),n})(),ABe=(()=>{class n extends uJ{constructor(){super(),this.disableAlpha=!1,this.circle={width:"12px",height:"12px",borderRadius:"6px",boxShadow:"rgb(255, 255, 255) 0px 0px 0px 1px inset",transform:"translate(-6px, -8px)"},this.pointer={width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -2px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}afterValidChange(){this.activeBackground=`rgba(${this.rgb.r}, ${this.rgb.g}, ${this.rgb.b}, ${this.disableAlpha?1:this.rgb.a})`}handleValueChange({data:e,$event:i}){this.handleChange(e,i)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-chrome"]],inputs:{disableAlpha:"disableAlpha"},features:[ui([{provide:js,useExisting:ei(()=>n),multi:!0},{provide:uJ,useExisting:ei(()=>n)}]),yi],decls:14,vars:16,consts:[[1,"saturation"],[3,"onChange","hsl","hsv","circle"],[1,"chrome-body"],[1,"chrome-controls"],[1,"chrome-color"],[1,"chrome-swatch"],[1,"chrome-active"],[1,"chrome-toggles"],[1,"chrome-hue"],[3,"onChange","radius","hsl","pointer"],["class","chrome-alpha",4,"ngIf"],[3,"onChange","rgb","hsl","hex","disableAlpha"],[1,"chrome-alpha"],[3,"onChange","radius","rgb","hsl","pointer"]],template:function(e,i){1&e&&(D(0,"div")(1,"div",0)(2,"color-saturation",1),ze("onChange",function(o){return i.handleValueChange(o)}),U()(),D(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),xe(7,"div",6)(8,"color-checkboard"),U()(),D(9,"div",7)(10,"div",8)(11,"color-hue",9),ze("onChange",function(o){return i.handleValueChange(o)}),U()(),pt(12,mBe,2,4,"div",10),U()(),D(13,"color-chrome-fields",11),ze("onChange",function(o){return i.handleValueChange(o)}),U()()()),2&e&&(hh("chrome-picker ",i.className,""),Q(2),_e("hsl",i.hsl)("hsv",i.hsv)("circle",i.circle),Q(5),zi("background",i.activeBackground),Q(4),_e("radius",2)("hsl",i.hsl)("pointer",i.pointer),Q(),_e("ngIf",!i.disableAlpha),Q(),_e("rgb",i.rgb)("hsl",i.hsl)("hex",i.hex)("disableAlpha",i.disableAlpha))},dependencies:()=>[aBe,lJ,oBe,Jke,pBe,eA],styles:['.chrome-picker[_ngcontent-%COMP%]{background:#fff;border-radius:2px;box-shadow:0 0 2px #0000004d,0 4px 8px #0000004d;box-sizing:initial;width:225px;font-family:"Menlo"}.chrome-controls[_ngcontent-%COMP%]{display:flex}.chrome-color[_ngcontent-%COMP%]{width:42px}.chrome-body[_ngcontent-%COMP%]{padding:14px 14px 12px}.chrome-active[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;border-radius:20px;box-shadow:inset 0 0 0 1px #0000001a;z-index:2}.chrome-swatch[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:15px;position:relative;overflow:hidden}.saturation[_ngcontent-%COMP%]{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.chrome-toggles[_ngcontent-%COMP%]{flex:1}.chrome-hue[_ngcontent-%COMP%]{height:10px;position:relative;margin-bottom:8px}.chrome-alpha[_ngcontent-%COMP%]{height:10px;position:relative}'],changeDetection:0}),n})(),gBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,eBe,cJ,rBe,sBe,lBe]]}),n})();function hJ(n,t){return t?e=>k2(t.pipe($o(1),_G()),e.pipe(hJ(n))):Jf((e,i)=>ls(n(e,i)).pipe($o(1),function _Be(n){return Qe(()=>n)}(e)))}function fJ(n,t=t_){const e=mR(n,t);return hJ(()=>e)}const bBe=["mat-menu-item",""],vBe=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],yBe=["mat-icon, [matMenuItemIcon]","*"];function wBe(n,t){1&n&&(Ul(),D(0,"svg",2),xe(1,"polygon",3),U())}const xBe=["*"];function CBe(n,t){if(1&n){const e=Dn();D(0,"div",0),ze("keydown",function(r){return Ot(e),Rt(Le()._handleKeydown(r))})("click",function(){return Ot(e),Rt(Le().closed.emit("click"))})("@transformMenu.start",function(r){return Ot(e),Rt(Le()._onAnimationStart(r))})("@transformMenu.done",function(r){return Ot(e),Rt(Le()._onAnimationDone(r))}),D(1,"div",1),Vn(2),U()()}if(2&n){const e=Le();_e("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),pi("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const gN=new dt("MAT_MENU_PANEL");let YT=(()=>{class n{constructor(e,i,r,o,s){this._elementRef=e,this._document=i,this._focusMonitor=r,this._parentMenu=o,this._changeDetectorRef=s,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new Ln,this._focused=new Ln,this._highlighted=!1,this._triggersSubmenu=!1,o?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",Fc("120ms cubic-bezier(0, 0, 0.2, 1)",jo({opacity:1,transform:"scale(1)"}))),Zl("* => void",Fc("100ms 25ms linear",jo({opacity:0})))]),fadeInItems:Dh("fadeInItems",[Dc("showing",jo({opacity:1})),Zl("void => *",[jo({opacity:0}),Fc("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let EBe=0;const SBe=new dt("mat-menu-default-options",{providedIn:"root",factory:function TBe(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let Su=(()=>{class n{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(r=>{this._classList[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{this._classList[r]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,r,o){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=o,this._elevationPrefix="mat-elevation-z",this._baseElevation=8,this._directDescendantItems=new sh,this._classList={},this._panelAnimationState="void",this._animationDone=new Ln,this.closed=new Fn,this.close=this.closed,this.panelId="mat-menu-panel-"+EBe++,this.overlayPanelClass=r.overlayPanelClass||"",this._xPosition=r.xPosition,this._yPosition=r.yPosition,this.backdropClass=r.backdropClass,this.overlapTrigger=r.overlapTrigger,this.hasBackdrop=r.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new IR(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(gd(this._directDescendantItems),gh(e=>Yl(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const r=e.toArray(),o=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[o]&&!r[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(gd(this._directDescendantItems),gh(i=>Yl(...i.map(r=>r._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,r=this._keyManager;switch(i){case 27:Ad(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&r.setFocusOrigin("keyboard"),void r.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe($o(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const r=this._keyManager;r.setFocusOrigin(e).setFirstItemActive(),!r.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),r=`${this._elevationPrefix}${i}`,o=Object.keys(this._classList).find(s=>s.startsWith(this._elevationPrefix));(!o||o===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[r]=!0,this._previousElevation=r)}setPositionClasses(e=this.xPosition,i=this.yPosition){const r=this._classList;r["mat-menu-before"]="before"===e,r["mat-menu-after"]="after"===e,r["mat-menu-above"]="above"===i,r["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(gd(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(SBe),$(vo))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,MBe,5),Gr(o,YT,5),Gr(o,YT,4)),2&i){let s;an(s=ln())&&(r.lazyContent=s.first),an(s=ln())&&(r._allItems=s),an(s=ln())&&(r.items=s)}},viewQuery:function(i,r){if(1&i&&ti(jl,5),2&i){let o;an(o=ln())&&(r.templateRef=o.first)}},hostVars:3,hostBindings:function(i,r){2&i&&pi("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[Ct.HasDecoratorInputTransform,"overlapTrigger","overlapTrigger",Jn],hasBackdrop:[Ct.HasDecoratorInputTransform,"hasBackdrop","hasBackdrop",e=>null==e?null:Jn(e)],panelClass:[Ct.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[ui([{provide:gN,useExisting:n}]),rs,Nr],ngContentSelectors:xBe,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id","ngClass"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(Yr(),pt(0,CBe,3,6,"ng-template"))},dependencies:[nu],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;padding-right:var(--mat-menu-item-spacing);padding-left:0}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[ZT.transformMenu,ZT.fadeInItems]},changeDetection:0})}}return n})();const mJ=new dt("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition()}}),FBe={provide:mJ,deps:[Ls],useFactory:function IBe(n){return()=>n.scrollStrategies.reposition()}},pJ=dA({passive:!0});let wb=(()=>{class n{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,r,o,s,a,l,c,d){this._overlay=e,this._element=i,this._viewContainerRef=r,this._menuItemInstance=a,this._dir=l,this._focusMonitor=c,this._ngZone=d,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=Xn.EMPTY,this._hoverSubscription=Xn.EMPTY,this._menuCloseSubscription=Xn.EMPTY,this._changeDetectorRef=Qt(vo),this._handleTouchStart=u=>{kR(u)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Fn,this.onMenuOpen=this.menuOpened,this.menuClosed=new Fn,this.onMenuClose=this.menuClosed,this._scrollStrategy=o,this._parentMaterialMenu=s instanceof Su?s:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,pJ)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,pJ),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),r=i.getConfig(),o=r.positionStrategy;this._setPosition(e,o),r.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof Su&&(e._startAnimation(),e._directDescendantItems.changes.pipe(oo(e.close)).subscribe(()=>{o.withLockedPosition(!1).reapplyLastPosition(),o.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof Su?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(qi(r=>"void"===r.toState),$o(1),oo(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,r=e.parentMenu;for(;r;)i++,r=r.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new I2({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(r=>{const o="start"===r.connectionPair.overlayX?"after":"before",s="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(o,s)):e.setPositionClasses(o,s)})}_setPosition(e,i){let[r,o]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[d,u]=[r,o],h=0;if(this.triggersSubmenu()){if(u=r="before"===e.xPosition?"start":"end",o=d="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const f=this._parentMaterialMenu.items.first;this._parentInnerPadding=f?f._getHostElement().offsetTop:0}h="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:r,originY:l,overlayX:d,overlayY:s,offsetY:h},{originX:o,originY:l,overlayX:u,overlayY:s,offsetY:h},{originX:r,originY:c,overlayX:d,overlayY:a,offsetY:-h},{originX:o,originY:c,overlayX:u,overlayY:a,offsetY:-h}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Yl(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:hl(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(qi(s=>s!==this._menuItemInstance),qi(()=>this._menuOpen)):hl(),i)}_handleMousedown(e){DR(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(qi(e=>e===this._menuItemInstance&&!e.disabled),fJ(0,fR)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof Su&&this.menu._isAnimating?this.menu._animationDone.pipe($o(1),fJ(0,fR),oo(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new V1(e.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||n)($(Ls),$(Nn),$(oa),$(mJ),$(gN,8),$(YT,10),$(Eh,8),$(Th),$(In))}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&ze("click",function(s){return r._handleClick(s)})("mousedown",function(s){return r._handleMousedown(s)})("keydown",function(s){return r._handleKeydown(s)}),2&i&&pi("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[Ct.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[Ct.None,"matMenuTriggerFor","menu"],menuData:[Ct.None,"matMenuTriggerData","menuData"],restoreFocus:[Ct.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}}return n})(),_N=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[FBe],imports:[mn,u_,fr,q1,U1,fr]})}}return n})();const DBe=["colorPickerMenuTrigger"],kBe=(n,t)=>({isOpen:n,isHovered:t});let AJ=(()=>{class n{constructor(){this.openXPosition="after",this.onColorChange=new Fn,this.isHovered=!1,this.isClickInside=!1}handleChangeComplete(e){this.onColorChange.emit(e)}onMouseEnter(){this.isHovered=!0}onMouseLeave(){this.isHovered=!1}onClick(){this.isClickInside=!0,this.colorPickerMenuTrigger.openMenu()}handleDocumentClick(){!this.isClickInside&&this.colorPickerMenuTrigger.menuOpen&&this.colorPickerMenuTrigger.closeMenu(),this.isClickInside=!1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-picker"]],viewQuery:function(i,r){if(1&i&&ti(DBe,5),2&i){let o;an(o=ln())&&(r.colorPickerMenuTrigger=o.first)}},hostBindings:function(i,r){1&i&&ze("mouseenter",function(){return r.onMouseEnter()})("mouseleave",function(){return r.onMouseLeave()})("click",function(){return r.onClick()})("click",function(){return r.handleDocumentClick()},!1,T6)},inputs:{hexColor:"hexColor",openXPosition:"openXPosition",triggerTemplate:"triggerTemplate"},outputs:{onColorChange:"onColorChange"},decls:6,vars:10,consts:[["colorPickerMenuTrigger","matMenuTrigger"],["menu","matMenu"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"matMenuTriggerFor"],[1,"cc-color-picker-menu",3,"xPosition","hasBackdrop"],["role","colorpicker",3,"click","onChangeComplete","disableAlpha","color"]],template:function(i,r){if(1&i){const o=Dn();L0(0,2),xe(1,"span",3,0),D(3,"mat-menu",4,1)(5,"color-chrome",5),ze("click",function(a){return Ot(o),Rt(a.stopPropagation())})("onChangeComplete",function(a){return Ot(o),Rt(r.handleChangeComplete(a.color.hex))}),U()()}if(2&i){const o=Lo(2),s=Lo(4);_e("ngTemplateOutlet",r.triggerTemplate)("ngTemplateOutletContext",ul(7,kBe,o.menuOpen,r.isHovered)),Q(),_e("matMenuTriggerFor",s),Q(2),_e("xPosition",r.openXPosition)("hasBackdrop",!1),Q(2),_e("disableAlpha",!0)("color",r.hexColor)}},dependencies:[zy,ABe,Su,wb],encapsulation:2})}}return n})(),PBe=(()=>{class n{transform(e){return(n=>(299*Number.parseInt(n.slice(1,3),16)+587*Number.parseInt(n.slice(3,5),16)+114*Number.parseInt(n.slice(5,7),16))/1e3>=128?"black":"white")(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"readableColorForBackground",type:n,pure:!0})}}return n})();function RBe(n,t){1&n&&xe(0,"br")}function OBe(n,t){if(1&n&&(D(0,"span"),ye(1),pt(2,RBe,1,0,"br"),U()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;Q(),sn(" ",e," "),Q(),Tt(2,i!==r-1?2:-1)}}function LBe(n,t){if(1&n&&(D(0,"div",2)(1,"div",3),xe(2,"span",4)(3,"span",5),qe(4,"readableColorForBackground"),U(),D(5,"div",6),Or(6,OBe,3,2,"span",null,qr),U()()),2&n){const e=t.isOpen,i=t.isHovered,r=Le();Q(2),zi("background-color",r.hexColor),Q(),zi("color",rt(4,6,r.hexColor))("opacity",i||e?"1":"0"),Q(3),Lr(r.labels)}}let bN=(()=>{class n{constructor(){this.onColorChange=new Fn}handleColorChange(e){this.onColorChange.emit(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-labelled-color-picker"]],inputs:{hexColor:"hexColor",labels:"labels"},outputs:{onColorChange:"onColorChange"},decls:3,vars:3,consts:[["colorPickerTriggerTemplate",""],[3,"onColorChange","hexColor","openXPosition","triggerTemplate"],[1,"cc-labelled-color-picker-container"],[1,"cc-color-swatch-container"],[1,"cc-color-swatch"],[1,"cc-color-brush","fa","fa-paint-brush"],[1,"cc-labelled-color-picker-label"]],template:function(i,r){if(1&i){const o=Dn();D(0,"cc-color-picker",1),ze("onColorChange",function(a){return Ot(o),Rt(r.handleColorChange(a))}),U(),pt(1,LBe,8,8,"ng-template",null,0,jf)}if(2&i){const o=Lo(2);_e("hexColor",r.hexColor)("openXPosition","before")("triggerTemplate",o)}},dependencies:[AJ,PBe],styles:[".cc-labelled-color-picker-container[_ngcontent-%COMP%]{display:flex;height:40px;align-items:center}.cc-labelled-color-picker-container[_ngcontent-%COMP%]:hover{cursor:pointer}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%]{position:relative;margin:0 11px;width:18px;height:18px}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%] .cc-color-swatch[_ngcontent-%COMP%]{display:inline-block;width:inherit;height:inherit;border-radius:2px;border:1px solid black}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%] .cc-color-brush[_ngcontent-%COMP%]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0}.cc-labelled-color-picker-container[_ngcontent-%COMP%] > .cc-labelled-color-picker-label[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;direction:rtl}.cc-labelled-color-picker-container[_ngcontent-%COMP%] > .cc-labelled-color-picker-label[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{unicode-bidi:plaintext}"]})}}return n})();function NBe(n,t){if(1&n){const e=Dn();D(0,"cc-labelled-color-picker",1),ze("onColorChange",function(r){const o=Ot(e).$implicit;return Rt(Le(2).handleColorChange(r,o.value))}),U()}if(2&n){const e=t.$implicit;_e("hexColor",e.key)("labels",e.value)}}function UBe(n,t){if(1&n&&(xe(0,"hr"),Or(1,NBe,1,2,"cc-labelled-color-picker",0,function oH(){return Dt()[bo][Xr]}().trackMarkedPackage,!0),qe(3,"async"),qe(4,"keyvalue")),2&n){const e=Le();Q(),Lr(Io(4,2,rt(3,0,e.markedPackagesMap$),e.sortMarkedPackagesMap))}}let HBe=(()=>{class n{constructor(e){this.store=e,this.markedPackagesMap$=e.select(Lke),this.hasMarkedPackages$=this.markedPackagesMap$.pipe(Qe(i=>Object.keys(i).length>0))}handleColorChange(e,i){this.store.dispatch(I1({packages:i.map(r=>({color:e,path:r}))}))}trackMarkedPackage(e,{value:i}){return i.join(",")}sortMarkedPackagesMap(e,i){return e.value[0].localeCompare(i.value[0])}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-legend-marked-packages"]],decls:2,vars:3,consts:[[3,"hexColor","labels"],[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(pt(0,UBe,5,5),qe(1,"async")),2&i&&Tt(0,rt(1,1,r.hasMarkedPackages$)?0:-1)},dependencies:[bN,Kn,_E],styles:["[_nghost-%COMP%] cc-labelled-color-picker[_ngcontent-%COMP%]{display:block}"]})}}return n})();const gJ=Kt(lc,n=>n.colorRange);let VBe=(()=>{class n{transform(e,i,r,o){switch(e){case"positive":return"unary"===o?`${r.minValue} - ${r.maxValue}`:r.minValue===i.from?"-":r.maxValue===i.from?`${r.minValue} to ${this.formatNumber(i.from)}`:`${r.minValue} to ${this.formatNumber(i.from-1)}`;case"neutral":return i.from===i.to?"-":i.to===r.maxValue?`${this.formatNumber(i.from)} to ${this.formatNumber(i.to)}`:`${this.formatNumber(i.from)} to ${this.formatNumber(i.to-1)}`;case"negative":return r.maxValue===i.to?"-":`${this.formatNumber(i.to)} to ${this.formatNumber(r.maxValue)}`;case"positiveDelta":return"+\u0394 positive delta";case"negativeDelta":return"\u2013\u0394 negative delta";case"selected":return"selected";case"outgoingEdge":return"Outgoing Edge";case"incomingEdge":return"Incoming Edge"}}formatNumber(e){return(e||0).toLocaleString()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"mapColorLabel",type:n,pure:!0})}}return n})();const QBe=n=>[n];let vN=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Nm),this.mapColors$=this.store.select(pb),this.colorRange$=this.store.select(gJ),this.nodeMetricRange$=this.store.select(Jh)}handleColorChange(e){this.store.dispatch(bh({value:{[this.mapColorFor]:e}}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-picker-for-map-color"]],inputs:{mapColorFor:"mapColorFor"},decls:6,vars:17,consts:[[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(D(0,"cc-labelled-color-picker",0),qe(1,"async"),qe(2,"async"),qe(3,"async"),qe(4,"async"),qe(5,"mapColorLabel"),ze("onColorChange",function(s){return r.handleColorChange(s)}),U()),2&i&&_e("hexColor",rt(1,2,r.mapColors$)[r.mapColorFor])("labels",function pV(n,t,e,i){return AV(Dt(),Ws(),n,t,e,i)}(15,QBe,yV(5,10,r.mapColorFor,rt(2,4,r.colorRange$),rt(3,6,r.nodeMetricRange$),rt(4,8,r.colorMetric$))))},dependencies:[bN,Kn,VBe],encapsulation:2})}}return n})();function zBe(n,t){if(1&n&&(D(0,"a",2)(1,"span",3),ye(2),U(),ye(3),xe(4,"i",4),U()),2&n){const e=Le(),i=Le(2);_e("href",t,Vp),Q(2),br(e),Q(),sn(" (",i.metricName,") ")}}function qBe(n,t){if(1&n&&(D(0,"span",3),ye(1),U(),ye(2)),2&n){const e=Le(),i=Le(2);Q(),br(e),Q(),sn(" (",i.metricName,") ")}}function GBe(n,t){if(1&n&&(UM(0,0),D(1,"div",1),qe(2,"attributeDescriptorTooltip"),ye(3),pt(4,zBe,5,3,"a",2)(5,qBe,3,2),U(),HM()),2&n){let e;const i=Le(),r=Le();Q(),_e("title",Io(2,3,i[r.metricName],r.metricName)),Q(2),sn(" ",r.metricSpecification," metric: "),Q(),Tt(4,(e=i[r.metricName].link)?4:5,e)}}function WBe(n,t){if(1&n&&(D(0,"span",3),ye(1),U(),ye(2)),2&n){const e=Le(3);Q(),br(t),Q(),sn(" (",e.metricName,") ")}}function $Be(n,t){if(1&n&&(D(0,"span",3),ye(1),U()),2&n){const e=Le(3);Q(),sn(" ",e.metricName," ")}}function jBe(n,t){if(1&n&&(D(0,"div"),ye(1),pt(2,WBe,3,2)(3,$Be,2,1),U()),2&n){let e;const i=Le(2);Q(),sn(" ",i.metricSpecification," metric: "),Q(),Tt(2,(e=i.fallbackTitles.get(i.metricName))?2:3,e)}}function XBe(n,t){if(1&n&&pt(0,GBe,6,6,"ng-container",0)(1,jBe,4,2),2&n){let e;const i=t,r=Le();Tt(0,(e=null==i[r.metricName]?null:i[r.metricName].title)?0:1,e)}}let KBe=(()=>{class n{constructor(e){this.store=e,this.attributeDescriptors$=this.store.select(WT),this.fallbackTitles=vb}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-legend-block"]],inputs:{metricName:"metricName",metricSpecification:"metricSpecification"},decls:2,vars:3,consts:[[1,"legend-block"],[3,"title"],["target","_blank",3,"href"],[1,"bold"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(pt(0,XBe,2,1),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[Kn,jT],styles:["[_nghost-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none;color:#000}[_nghost-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] a[_ngcontent-%COMP%]:active{color:red}[_nghost-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] span.bold[_ngcontent-%COMP%]{font-weight:600}"]})}}return n})();function YBe(n,t){1&n&&xe(0,"cc-legend-block",5),2&n&&_e("metricName",t)}function ZBe(n,t){if(1&n&&(D(0,"div"),xe(1,"cc-legend-block",3),qe(2,"async"),xe(3,"cc-legend-block",4),qe(4,"async"),pt(5,YBe,1,1,"cc-legend-block",5),qe(6,"async"),xe(7,"hr")(8,"cc-legend-block",6),qe(9,"async"),xe(10,"cc-color-picker-for-map-color",1)(11,"cc-color-picker-for-map-color",1)(12,"cc-color-picker-for-map-color",1),U()),2&n){let e;const i=Le();Q(),_e("metricName",rt(2,7,i.areaMetric$)),Q(2),_e("metricName",rt(4,9,i.heightMetric$)),Q(2),Tt(5,(e=rt(6,11,i.edgeMetric$))?5:-1,e),Q(3),_e("metricName",rt(9,13,i.colorMetric$)),Q(2),_e("mapColorFor","positive"),Q(),_e("mapColorFor","neutral"),Q(),_e("mapColorFor","negative")}}function JBe(n,t){1&n&&(D(0,"div"),xe(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),U()),2&n&&(Q(),_e("mapColorFor","positiveDelta"),Q(),_e("mapColorFor","negativeDelta"))}function ePe(n,t){1&n&&xe(0,"hr")(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),2&n&&(Q(),_e("mapColorFor","outgoingEdge"),Q(),_e("mapColorFor","incomingEdge"))}let tPe=(()=>{class n{constructor(e,i,r){this.store=e,this.isAttributeSideBarVisibleService=i,this.viewReference=r,this.isLegendVisible=!1,this.isDeltaState$=this.store.select(Hm),this.heightMetric$=this.store.select(ex),this.areaMetric$=this.store.select(bb),this.colorMetric$=this.store.select(Nm),this.edgeMetric$=this.store.select(tf)}ngOnInit(){this.mouseDownListener=e=>this.collapseOnOutsideClick(e),document.addEventListener("mousedown",this.mouseDownListener)}ngOnDestroy(){this.mouseDownListener&&document.removeEventListener("mousedown",this.mouseDownListener)}toggleIsLegendVisible(){this.isLegendVisible=!this.isLegendVisible}collapseOnOutsideClick(e){const i=e.target;if(this.isLegendVisible){const r=this.viewReference.element.nativeElement.contains(i),o=document.querySelector(".cdk-overlay-container"),s=!!o&&o.contains(i);!r&&!s&&(this.isLegendVisible=!1)}}static{this.\u0275fac=function(i){return new(i||n)($($t),$(VT),$(oa))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-legend-panel"]],decls:11,vars:14,consts:[["id","legend-panel",1,"block-wrapper"],[3,"mapColorFor"],["mat-button","","id","legend-panel-button",1,"panel-button",3,"click","title"],["metricSpecification","Area",3,"metricName"],["metricSpecification","Height",3,"metricName"],["metricSpecification","Edge",3,"metricName"],["metricSpecification","Color",3,"metricName"]],template:function(i,r){1&i&&(D(0,"div",0),pt(1,ZBe,13,15,"div"),qe(2,"async"),pt(3,JBe,3,2),xe(4,"hr")(5,"cc-color-picker-for-map-color",1),pt(6,ePe,3,2),qe(7,"async"),xe(8,"cc-legend-marked-packages"),U(),D(9,"button",2),ze("click",function(){return r.toggleIsLegendVisible()}),ye(10," LEGEND\n"),U()),2&i&&(Un("visible",r.isLegendVisible)("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),Q(),Tt(1,rt(2,10,r.isDeltaState$)?3:1),Q(4),_e("mapColorFor","selected"),Q(),Tt(6,rt(7,12,r.edgeMetric$)?6:-1),Q(3),Un("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),Ua("title",r.isLegendVisible?"Hide panel":"Show panel"))},dependencies:[cs,HBe,vN,KBe,Kn],styles:["[_nghost-%COMP%] .rotated-button[_ngcontent-%COMP%], [_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]{position:fixed;transform:rotate(90deg);border-radius:0 0 5px 5px;height:36px;right:-35px;color:#fff;-webkit-user-select:none;user-select:none;background-color:#1b9cfc}[_nghost-%COMP%] .rotated-button[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]:hover{background-color:#0374c9}[_nghost-%COMP%] .rotated-button.isAttributeSideBarVisible[_ngcontent-%COMP%], [_nghost-%COMP%] .isAttributeSideBarVisible.panel-button[_ngcontent-%COMP%]{right:316px}[_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]{margin:6px 8px;bottom:55px;width:88px;font-size:10pt;transition:right .3s ease}[_nghost-%COMP%] .block-wrapper[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #cdcdcd;position:fixed;bottom:35px;padding:10px;right:40px;visibility:hidden;border-radius:5px;min-width:200px;max-width:30%;transition:right .3s ease}[_nghost-%COMP%] .block-wrapper.isAttributeSideBarVisible[_ngcontent-%COMP%]{right:390px}[_nghost-%COMP%] .block-wrapper.visible[_ngcontent-%COMP%]{visibility:visible}[_nghost-%COMP%] .block-wrapper[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-right-style:none;border-left-style:none;border-bottom-style:none;color:#000}"]})}}return n})();const nPe=["*"],oPe=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],sPe=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],aPe=new dt("MAT_CARD_CONFIG");let rx=(()=>{class n{constructor(e){this.appearance=e?.appearance||"raised"}static{this.\u0275fac=function(i){return new(i||n)($(aPe,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){2&i&&Un("mat-mdc-card-outlined","outlined"===r.appearance)("mdc-card--outlined","outlined"===r.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],standalone:!0,features:[Nr],ngContentSelectors:nPe,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation)}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}}return n})(),_J=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"],standalone:!0})}}return n})(),bJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],standalone:!0,features:[Nr],ngContentSelectors:sPe,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){1&i&&(Yr(oPe),Vn(0),D(1,"div",0),Vn(2,1),U(),Vn(3,2))},encapsulation:2,changeDetection:0})}}return n})(),vJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,mn,fr]})}}return n})();const yJ=Kt(so,n=>n.isSearchPanelPinned),hPe=["*"];let yN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar-panel-settings"]],ngContentSelectors:hPe,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:6px;position:absolute;left:6px;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}"]})}}return n})();const fPe=["toggle"],mPe=["toggleHeader"],pPe=[[["cc-ribbon-bar-panel-settings"]],[["",8,"toggleheader"]],"*"],APe=["cc-ribbon-bar-panel-settings",".toggleHeader","*"];function gPe(n,t){if(1&n){const e=Dn();D(0,"div",6,0),ze("click",function(){return Ot(e),Rt(Le().toggleSettings())}),Vn(2,1),U()}}function _Pe(n,t){1&n&&(D(0,"div",4),Vn(1,2),U())}function bPe(n,t){1&n&&xe(0,"i"),2&n&&cl("fa fa-angle-"+(Le(2).isExpanded?"up":"down"))}function vPe(n,t){if(1&n){const e=Dn();D(0,"div",7,1),ze("click",function(){return Ot(e),Rt(Le().toggleSettings())}),ye(2),pt(3,bPe,1,2,"i",8),U()}if(2&n){const e=Le();Q(2),sn(" ",e.title," "),Q(),Tt(3,e.hasSettings?3:-1)}}let wN=(()=>{class n{get hasSettings(){return!!this.settingsRef}constructor(e){this.viewReference=e,this.collapseOnPanelClick=!0,this.separator=!1,this.isExpanded=!1,this.isHeaderExpandable=!1,this.isPinned=!1,this.onToggleSettings=new Fn}ngOnInit(){this.mouseDownListener=e=>this.collapseOnOutsideClick(e),document.addEventListener("mousedown",this.mouseDownListener)}ngOnDestroy(){this.mouseDownListener&&document.removeEventListener("mousedown",this.mouseDownListener)}toggleSettings(){this.isExpanded=!this.isExpanded,this.onToggleSettings.emit(this.isExpanded)}collapseOnOutsideClick(e){if(this.isPinned)return;const i=e.target,r=document.querySelector(".cdk-overlay-container"),o=this.viewReference.element.nativeElement.contains(i),s=!!r&&r.contains(i),a=this.settingsRef?.nativeElement?.contains(i)??!1,l=this.toggleSettingsRef.nativeElement.contains(i),c=this.toggleHeaderRef?.nativeElement.contains(i)??!1;!s&&!a&&!l&&!c&&(!o||this.collapseOnPanelClick)&&(this.isExpanded=!1)}static{this.\u0275fac=function(i){return new(i||n)($(oa))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar-panel"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,yN,5,Nn),2&i){let s;an(s=ln())&&(r.settingsRef=s.first)}},viewQuery:function(i,r){if(1&i&&(ti(fPe,5),ti(mPe,5)),2&i){let o;an(o=ln())&&(r.toggleSettingsRef=o.first),an(o=ln())&&(r.toggleHeaderRef=o.first)}},hostVars:6,hostBindings:function(i,r){2&i&&Un("separator",r.separator)("expanded",r.isExpanded)("expandable",r.hasSettings)},inputs:{title:"title",collapseOnPanelClick:"collapseOnPanelClick",separator:"separator",isHeaderExpandable:"isHeaderExpandable",isPinned:"isPinned"},outputs:{onToggleSettings:"onToggleSettings"},ngContentSelectors:APe,decls:6,vars:2,consts:[["toggleHeader",""],["toggle",""],["appearance","outlined"],[1,"section"],[1,"section-header"],[1,"section-title"],[1,"section-header",3,"click"],[1,"section-title",3,"click"],[3,"class"]],template:function(i,r){1&i&&(Yr(pPe),D(0,"mat-card",2)(1,"div",3),pt(2,gPe,3,0,"div",4)(3,_Pe,2,0)(4,vPe,4,2,"div",5),U(),Vn(5),U()),2&i&&(Q(2),Tt(2,r.isHeaderExpandable?2:3),Q(2),Tt(4,r.title||r.hasSettings?4:-1))},dependencies:[rx],styles:["mat-card[_ngcontent-%COMP%]{padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd;flex:1 1 0}[_nghost-%COMP%]:not(.expanded) mat-card[_ngcontent-%COMP%]{overflow:hidden}.section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{margin:0 5px;height:31px;color:#444;overflow:hidden;padding:5px}.section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{font-size:8pt;color:gray;text-align:center;transition:background-color .4s;border-bottom:1px solid transparent;white-space:nowrap;margin:0 5px}.separator[_nghost-%COMP%] .section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.12)}.expandable[_nghost-%COMP%] .section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]:hover{background-color:#e0e0e0;cursor:pointer}"]})}}return n})(),wJ=(()=>{class n{constructor(e){this.store=e,this.searchPanelMode="minimized",this.updateSearchPanelMode=i=>{this.searchPanelMode=this.searchPanelMode===i?"minimized":i,this.panelRef.isExpanded="minimized"!==this.searchPanelMode}}ngOnInit(){this.isSearchPanelPinnedSubscription=this.store.select(yJ).subscribe(e=>{this.isSearchPanelPinned=e})}ngOnDestroy(){this.isSearchPanelPinnedSubscription.unsubscribe()}openSearchPanel(){this.searchPanelMode="treeView",this.panelRef.isExpanded=!0}onToggleSettings(e){this.searchPanelMode=e?"treeView":"minimized"}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-search-panel"]],viewQuery:function(i,r){if(1&i&&ti(wN,5),2&i){let o;an(o=ln())&&(r.panelRef=o.first)}},decls:7,vars:7,consts:[["title","File/Node Explorer",3,"onToggleSettings","isPinned","collapseOnPanelClick"],[3,"click"],[3,"searchPanelMode","updateSearchPanelMode"],[3,"hidden"]],template:function(i,r){1&i&&(D(0,"cc-ribbon-bar-panel",0),ze("onToggleSettings",function(s){return r.onToggleSettings(s)}),D(1,"cc-search-bar",1),ze("click",function(){return r.openSearchPanel()}),U(),xe(2,"cc-search-panel-mode-selector",2),D(3,"cc-ribbon-bar-panel-settings"),xe(4,"cc-blacklist-panel",3)(5,"cc-matching-files-counter",3)(6,"cc-map-tree-view",3),U()()),2&i&&(_e("isPinned",r.isSearchPanelPinned)("collapseOnPanelClick",!1),Q(2),_e("searchPanelMode",r.searchPanelMode)("updateSearchPanelMode",r.updateSearchPanelMode),Q(2),_e("hidden","blacklist"!==r.searchPanelMode),Q(),_e("hidden","treeView"!==r.searchPanelMode),Q(),_e("hidden","treeView"!==r.searchPanelMode))},styles:["cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%]{border-left:none;width:100%}cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%] .section-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:6px;position:absolute;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%] .section-body.hidden[_ngcontent-%COMP%]{display:none;pointer-events:none}"]})}}return n})();function wPe(n=xPe){return fe((t,e)=>{let i=!1;t.subscribe(De(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(n())))})}function xPe(){return new JR}function ox(n,t){const e=arguments.length>=2;return i=>i.pipe(n?qi((r,o)=>n(r,o,i)):ma,$o(1),e?function yPe(n){return fe((t,e)=>{let i=!1;t.subscribe(De(e,r=>{i=!0,e.next(r)},()=>{i||e.next(n),e.complete()}))})}(t):wPe(()=>new JR))}const CPe=wi(1,An(sm,Xi(1))),xN=n=>{const t=Math.floor(n.length/100);return t<=1?1:Math.min(t,10)},JT=Kt(Hc,n=>function Ybe(n){const t=[];if(void 0!==n)for(const{data:e}of yo(n))"Folder"!==e.type&&t.push(e);return t}(n.unifiedMapNode)),ax=hn("SET_AMOUNT_OF_EDGE_PREVIEWS",{_as:"props",_p:void 0}),SPe=wi(1,An(ax,Xi(1))),TPe=wi(4,An(Y0,Xi(4))),nI={x:1,y:1,z:1},IPe=wi(nI,An(Z0,UT(nI))),iI=n=>{const e=Math.round((n.maxValue-n.minValue)/3);return{from:e+n.minValue,to:2*e+n.minValue}},FPe=wi(50,An(e_,Xi(50))),xb=hn("SET_STATE",{_as:"props",_p:void 0});function CN(n){for(const e of Object.keys(n))if("object"==typeof n[e]&&null!==n[e]){const{x:i,y:r,z:o}=n[e];void 0!==i||void 0!==r||void 0!==o?n[e]=new se(i??1,r??1,o??1):CN(n[e])}}const kPe=JSON.parse('[{"name":"Complexity","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"sonar_complexity","colorMetric":"sonar_complexity","distributionMetric":"rloc"}}},{"name":"Average Complexity*","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"unary","heightMetric":"Average Complexity*","colorMetric":"Average Complexity*","distributionMetric":"unary"}}},{"name":"Coverage","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"sonar_complexity","colorMetric":"line_coverage","distributionMetric":"rloc"}}},{"name":"Code Churn","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"abs_code_churn","colorMetric":"weeks_with_commits","distributionMetric":"rloc"}}}]');class sf{static{this.SCENARIOS_LOCAL_STORAGE_VERSION="1.0.0"}static{this.SCENARIOS_LOCAL_STORAGE_ELEMENT="scenarios"}static{this.scenarios=sf.loadScenarios()}static getScenarioItems(t){const e=[];for(const i of this.scenarios.values())e.push({scenarioName:i.name,isScenarioApplicable:this.isScenarioApplicable(i,t),icons:[{faIconClass:"fa-video-camera",isSaved:!!i.camera,tooltip:"Camera angle"},{faIconClass:"fa-arrows-alt",isSaved:!!i.area,tooltip:"Area metric"},{faIconClass:"fa-arrows-v",isSaved:!!i.height,tooltip:"Height metric"},{faIconClass:"fa-paint-brush",isSaved:!!i.color,tooltip:"Color metric"},{faIconClass:"fa-exchange",isSaved:!!i.edge,tooltip:"Edge metric"}]});return e}static isScenarioApplicable(t,e){const{area:i,color:r,height:o,edge:s}=t;if(i||r||o){const a=new Set(e.nodeMetricData.map(l=>l.name));if(i&&!a.has(i.areaMetric)||r&&!a.has(r.colorMetric)||o&&!a.has(o.heightMetric))return!1}return!(s&&!e.edgeMetricData.some(a=>a.name===s.edgeMetric))}static getPreLoadScenarios(){const t=this.importScenarios(kPe),e=new Map;for(const i of t)e.set(i.name,this.transformScenarioAsSettingsToScenario(i));return e}static transformScenarioAsSettingsToScenario(t){const e={name:t.name},{dynamicSettings:i,appSettings:r}=t.settings;return void 0!==i.areaMetric&&(e.area={areaMetric:i.areaMetric,margin:i.margin}),void 0!==i.heightMetric&&(e.height={heightMetric:i.heightMetric,labelSlider:r.amountOfTopLabels,heightSlider:r.scaling}),void 0!==i.colorMetric&&(e.color={colorMetric:i.colorMetric,colorRange:i.colorRange,mapColors:r.mapColors}),void 0!==i.edgeMetric&&(e.edge={edgeMetric:i.edgeMetric,edgeHeight:r.edgeHeight,edgePreview:r.amountOfEdgePreviews}),e}static setScenariosToLocalStorage(t){const e={version:this.SCENARIOS_LOCAL_STORAGE_VERSION,scenarios:[...t]};localStorage.setItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT,JSON.stringify(e))}static loadScenarios(){const t=JSON.parse(localStorage.getItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT));if(t)return new Map(t.scenarios);const e=this.getPreLoadScenarios();return this.setScenariosToLocalStorage(e),e}static addScenario(t,e){const i=sf.createNewScenario(t,e);this.scenarios.set(i.name,i),this.setScenariosToLocalStorage(this.scenarios)}static createNewScenario(t,e){const i={name:t};for(const r of e.filter(o=>o.isSelected))switch(r.metricType){case"Camera-Position":i.camera={camera:r.savedValues.camera,cameraTarget:r.savedValues.cameraTarget};break;case"Area-Metric":i.area={areaMetric:r.metricName,margin:r.savedValues};break;case"Height-Metric":i.height={heightMetric:r.metricName,heightSlider:r.savedValues.heightSlider,labelSlider:r.savedValues.labelSlider};break;case"Color-Metric":i.color={colorMetric:r.metricName,colorRange:r.savedValues.colorRange,mapColors:r.savedValues.mapColors};break;case"Edge-Metric":i.edge={edgeMetric:r.metricName,edgePreview:r.savedValues.edgePreview,edgeHeight:r.savedValues.edgeHeight};break;default:throw new Error(`Unknown metric type "${r.metricType}" detected`)}return i}static deleteScenario(t){this.scenarios.delete(t),this.setScenariosToLocalStorage(this.scenarios)}static getScenarioSettings(t){const e={},i={};return t&&(t.area&&(e.areaMetric=t.area.areaMetric,e.margin=t.area.margin),t.height&&(e.heightMetric=t.height.heightMetric,i.amountOfTopLabels=t.height.labelSlider,i.scaling=t.height.heightSlider),t.color&&(e.colorMetric=t.color.colorMetric,e.colorRange=t.color.colorRange,i.mapColors=t.color.mapColors),t.edge&&(e.edgeMetric=t.edge.edgeMetric,i.edgeHeight=t.edge.edgeHeight,i.amountOfEdgePreviews=t.edge.edgePreview)),{appSettings:i,dynamicSettings:e}}static importScenarios(t){for(const e of t)CN(e.settings),e.camera&&(e.camera.camera=new se(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z),e.camera.cameraTarget=new se(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z));return t}static isScenarioExisting(t){return this.scenarios.has(t)}}let MN=(()=>{class n{constructor(e,i,r,o,s){this.state=e,this.store=i,this.dialog=r,this.threeCameraService=o,this.threeOrbitControlsService=s}getScenarios(){return sf.getScenarioItems(Xs(this.state.getValue()))}applyScenario(e){const i=sf.scenarios.get(e),r=sf.getScenarioSettings(i);this.store.dispatch(xb({value:r})),r.appSettings.amountOfTopLabels||this.store.select(JT).pipe(ox()).subscribe(o=>{const s=xN(o);this.store.dispatch(sm({value:s}))}),r.appSettings.mapColors||this.store.dispatch(bh({value:Cu})),r.appSettings.edgeHeight||this.store.dispatch(Y0({value:4})),r.appSettings.amountOfEdgePreviews||this.store.dispatch(ax({value:1})),r.appSettings.scaling||this.store.dispatch(Z0({value:nI})),r.dynamicSettings.colorRange||this.store.select(Jh).pipe(ox()).subscribe(o=>{this.store.dispatch(ru({value:iI(o)}))}),r.dynamicSettings.margin||this.store.dispatch(e_({value:50})),r.dynamicSettings.edgeMetric||this.store.select(Xs).pipe(ox()).subscribe(o=>{this.store.dispatch(yh({value:o.edgeMetricData[0]?.name}))}),i.camera&&(this.threeCameraService.setPosition(i.camera.camera),this.threeOrbitControlsService.setControlTarget(i.camera.cameraTarget))}removeScenario(e){"Complexity"!==e?(sf.deleteScenario(e),this.dialog.open(AA,{data:{title:"Info",message:`${e} deleted.`}})):this.dialog.open(AA,{data:{title:"Error",message:`${e} cannot be deleted as it is the default Scenario.`}})}static{this.\u0275fac=function(i){return new(i||n)(ve(Zr),ve($t),ve(Ns),ve(Mu),ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const BPe=["*"];let oI=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar-menu-button"]],inputs:{icon:"icon",title:"title"},ngContentSelectors:BPe,decls:3,vars:3,consts:[[3,"title"]],template:function(i,r){1&i&&(Yr(),D(0,"button",0),xe(1,"i"),Vn(2),U()),2&i&&(_e("title",r.title),Q(),cl("fa "+r.icon))},styles:["button[_ngcontent-%COMP%]{height:22px;line-height:22px;min-width:45px;margin:0;padding:0;font-size:9pt;background-color:#e6e6e6f5;color:#444}button[_ngcontent-%COMP%]:hover{background-color:#c8c8c8}"]})}}return n})();class OPe extends Ln{constructor(t=1/0,e=1/0,i=aP){super(),this._bufferSize=t,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,e)}next(t){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:o,_windowTime:s}=this;e||(i.push(t),!r&&i.push(o.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,o=r.slice();for(let s=0;snew Ln),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return o=>{let s,a,l,c=0,d=!1,u=!1;const h=()=>{a?.unsubscribe(),a=void 0},f=()=>{h(),s=l=void 0,d=u=!1},A=()=>{const y=s;f(),y?.unsubscribe()};return fe((y,_)=>{c++,!u&&!d&&h();const b=l=l??t();_.add(()=>{c--,0===c&&!u&&!d&&(a=EN(A,r))}),b.subscribe(_),!s&&c>0&&(s=new Ss({next:M=>b.next(M),error:M=>{u=!0,h(),a=EN(f,e,M),b.error(M)},complete:()=>{d=!0,h(),a=EN(f,i),b.complete()}}),ls(y).subscribe(s))})(o)}}function EN(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Ss({next:()=>{i.unsubscribe(),n()}});return ls(t(...e)).subscribe(i)}class NPe{constructor(t){this._box=t,this._destroyed=new Ln,this._resizeSubject=new Ln,this._elementObservables=new Map,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new Ji(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(qi(e=>e.some(i=>i.target===t)),function LPe(n,t,e){let i,r=!1;return n&&"object"==typeof n?({bufferSize:i=1/0,windowTime:t=1/0,refCount:r=!1,scheduler:e}=n):i=n??1/0,lx({connector:()=>new OPe(i,t,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}({bufferSize:1,refCount:!0}),oo(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let UPe=(()=>{class n{constructor(){this._observers=new Map,this._ngZone=Qt(In)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new NPe(r)),this._observers.get(r).observe(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const HPe=["notch"],VPe=["matFormFieldNotchedOutline",""],QPe=["*"],zPe=["textField"],qPe=["iconPrefixContainer"],GPe=["textPrefixContainer"],WPe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],$Pe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function jPe(n,t){1&n&&xe(0,"span",17)}function XPe(n,t){if(1&n&&(D(0,"label",16),Vn(1,1),pt(2,jPe,1,0,"span",17),U()),2&n){const e=Le(2);_e("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),pi("for",e._control.id),Q(2),Tt(2,!e.hideRequiredMarker&&e._control.required?2:-1)}}function KPe(n,t){1&n&&pt(0,XPe,3,5,"label",16),2&n&&Tt(0,Le()._hasFloatingLabel()?0:-1)}function YPe(n,t){1&n&&xe(0,"div",5)}function ZPe(n,t){}function JPe(n,t){1&n&&pt(0,ZPe,0,0,"ng-template",11),2&n&&(Le(2),_e("ngTemplateOutlet",Lo(1)))}function eRe(n,t){if(1&n&&(D(0,"div",7),pt(1,JPe,1,1,null,11),U()),2&n){const e=Le();_e("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),Q(),Tt(1,e._forceDisplayInfixLabel()?-1:1)}}function tRe(n,t){1&n&&(D(0,"div",8,2),Vn(2,2),U())}function nRe(n,t){1&n&&(D(0,"div",9,3),Vn(2,3),U())}function iRe(n,t){}function rRe(n,t){1&n&&pt(0,iRe,0,0,"ng-template",11),2&n&&(Le(),_e("ngTemplateOutlet",Lo(1)))}function oRe(n,t){1&n&&(D(0,"div",12),Vn(1,4),U())}function sRe(n,t){1&n&&(D(0,"div",13),Vn(1,5),U())}function aRe(n,t){1&n&&xe(0,"div",14)}function lRe(n,t){1&n&&(D(0,"div",18),Vn(1,6),U()),2&n&&_e("@transitionMessages",Le()._subscriptAnimationState)}function cRe(n,t){if(1&n&&(D(0,"mat-hint",20),ye(1),U()),2&n){const e=Le(2);_e("id",e._hintLabelId),Q(),br(e.hintLabel)}}function dRe(n,t){if(1&n&&(D(0,"div",19),pt(1,cRe,2,2,"mat-hint",20),Vn(2,7),xe(3,"div",21),Vn(4,8),U()),2&n){const e=Le();_e("@transitionMessages",e._subscriptAnimationState),Q(),Tt(1,e.hintLabel?1:-1)}}let Cd=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-label"]],standalone:!0})}}return n})(),uRe=0;const xJ=new dt("MatError");let CJ=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+uRe++,e||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||n)(zl("aria-live"),$(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){2&i&&Zd("id",r.id)},inputs:{id:"id"},standalone:!0,features:[ui([{provide:xJ,useExisting:n}])]})}}return n})(),hRe=0,SN=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+hRe++}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){2&i&&(Zd("id",r.id),pi("align",null),Un("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return n})();const MJ=new dt("MatPrefix");let EJ=(()=>{class n{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["","matPrefix",""],["","matIconPrefix",""],["","matTextPrefix",""]],inputs:{_isTextSelector:[Ct.None,"matTextPrefix","_isTextSelector"]},standalone:!0,features:[ui([{provide:MJ,useExisting:n}])]})}}return n})();const fRe=new dt("MatSuffix"),SJ=new dt("FloatingLabelParent");let TJ=(()=>{class n{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=Qt(UPe),this._ngZone=Qt(In),this._parent=Qt(SJ),this._resizeSubscription=new Xn}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function mRe(n){if(null!==n.offsetParent)return n.scrollWidth;const e=n.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return n})();const IJ="mdc-line-ripple--active",sI="mdc-line-ripple--deactivating";let FJ=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=r=>{const o=this._elementRef.nativeElement.classList,s=o.contains(sI);"opacity"===r.propertyName&&s&&o.remove(IJ,sI)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(sI),e.add(IJ)}deactivate(){this._elementRef.nativeElement.classList.add(sI)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In))}}static{this.\u0275dir=Wt({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return n})(),DJ=(()=>{class n{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In))}}static{this.\u0275cmp=bt({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&ti(HPe,5),2&i){let o;an(o=ln())&&(r._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mdc-notched-outline--notched",r.open)},inputs:{open:[Ct.None,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[Nr],attrs:VPe,ngContentSelectors:QPe,decls:5,vars:0,consts:[["notch",""],[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(i,r){1&i&&(Yr(),xe(0,"div",1),D(1,"div",2,0),Vn(3),U(),xe(4,"div",3))},encapsulation:2,changeDetection:0})}}return n})();const pRe={transitionMessages:Dh("transitionMessages",[Dc("enter",jo({opacity:1,transform:"translateY(0%)"})),Zl("void => enter",[jo({opacity:0,transform:"translateY(-5px)"}),Fc("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let TN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n})}}return n})();const IN=new dt("MatFormField"),ARe=new dt("MAT_FORM_FIELD_DEFAULT_OPTIONS");let kJ=0,Md=(()=>{class n{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=sa(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,r,o,s,a,l,c){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._dir=o,this._platform=s,this._defaults=a,this._animationMode=l,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+kJ++,this._hintLabelId="mat-mdc-hint-"+kJ++,this._subscriptAnimationState="",this._destroyed=new Ln,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,a&&(a.appearance&&(this.appearance=a.appearance),this._hideRequiredMarker=!!a?.hideRequiredMarker,a.color&&(this.color=a.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(oo(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Yl(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(oo(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(oo(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(o=>"start"===o.align):null,r=this._hintChildren?this._hintChildren.find(o=>"end"===o.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,s=r?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${o+s}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(vo),$(In),$(Eh),$(ro),$(ARe,8),$(_s,8),$(Li))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,Cd,5),Gr(o,Cd,7),Gr(o,TN,5),Gr(o,MJ,5),Gr(o,fRe,5),Gr(o,xJ,5),Gr(o,SN,5)),2&i){let s;an(s=ln())&&(r._labelChildNonStatic=s.first),an(s=ln())&&(r._labelChildStatic=s.first),an(s=ln())&&(r._formFieldControl=s.first),an(s=ln())&&(r._prefixChildren=s),an(s=ln())&&(r._suffixChildren=s),an(s=ln())&&(r._errorChildren=s),an(s=ln())&&(r._hintChildren=s)}},viewQuery:function(i,r){if(1&i&&(ti(zPe,5),ti(qPe,5),ti(GPe,5),ti(TJ,5),ti(DJ,5),ti(FJ,5)),2&i){let o;an(o=ln())&&(r._textField=o.first),an(o=ln())&&(r._iconPrefixContainer=o.first),an(o=ln())&&(r._textPrefixContainer=o.first),an(o=ln())&&(r._floatingLabel=o.first),an(o=ln())&&(r._notchedOutline=o.first),an(o=ln())&&(r._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&Un("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===r._animationMode)("mat-form-field-appearance-fill","fill"==r.appearance)("mat-form-field-appearance-outline","outline"==r.appearance)("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary","accent"!==r.color&&"warn"!==r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],standalone:!0,features:[ui([{provide:IN,useExisting:n},{provide:SJ,useExisting:n}]),Nr],ngContentSelectors:$Pe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const o=Dn();Yr(WPe),pt(0,KPe,1,1,"ng-template",null,0,jf),D(2,"div",4,1),ze("click",function(a){return Ot(o),Rt(r._control.onContainerClick(a))}),pt(4,YPe,1,0,"div",5),D(5,"div",6),pt(6,eRe,2,2,"div",7)(7,tRe,3,0,"div",8)(8,nRe,3,0,"div",9),D(9,"div",10),pt(10,rRe,1,1,null,11),Vn(11),U(),pt(12,oRe,2,0,"div",12)(13,sRe,2,0,"div",13),U(),pt(14,aRe,1,0,"div",14),U(),D(15,"div",15),pt(16,lRe,2,1)(17,dRe,5,2),U()}if(2&i){let o;Q(2),Un("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),Q(2),Tt(4,r._hasOutline()||r._control.disabled?-1:4),Q(2),Tt(6,r._hasOutline()?6:-1),Q(),Tt(7,r._hasIconPrefix?7:-1),Q(),Tt(8,r._hasTextPrefix?8:-1),Q(2),Tt(10,!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),Q(2),Tt(12,r._hasTextSuffix?12:-1),Q(),Tt(13,r._hasIconSuffix?13:-1),Q(),Tt(14,r._hasOutline()?-1:14),Q(),Un("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),Q(),Tt(16,"error"===(o=r._getDisplayedMessages())?16:"hint"===o?17:-1)}},dependencies:[TJ,DJ,zy,FJ,SN],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 96px/0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px*2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-hover-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-hover-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-hover-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-hover-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(.75*var(--mdc-outlined-text-field-label-text-size))}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mdc-outlined-text-field-label-text-size)}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color)}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font);line-height:var(--mat-form-field-subscript-text-line-height);font-size:var(--mat-form-field-subscript-text-size);letter-spacing:var(--mat-form-field-subscript-text-tracking);font-weight:var(--mat-form-field-subscript-text-weight)}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color)}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity)}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color)}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color)}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color)}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color)}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[pRe.transitionMessages]},changeDetection:0})}}return n})(),cx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,mn,MR,fr]})}}return n})();const bRe=["*",[["mat-toolbar-row"]]],vRe=["*","mat-toolbar-row"];let yRe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"],standalone:!0})}}return n})(),zm=(()=>{class n{constructor(e,i,r){this._elementRef=e,this._platform=i,this._document=r}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(Li))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-toolbar"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,yRe,5),2&i){let s;an(s=ln())&&(r._toolbarRows=s)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,r){2&i&&(cl(r.color?"mat-"+r.color:""),Un("mat-toolbar-multiple-rows",r._toolbarRows.length>0)("mat-toolbar-single-row",0===r._toolbarRows.length))},inputs:{color:"color"},exportAs:["matToolbar"],standalone:!0,features:[Nr],ngContentSelectors:vRe,decls:2,vars:0,template:function(i,r){1&i&&(Yr(bRe),Vn(0),Vn(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color:var(--mat-toolbar-container-text-color);--mdc-outlined-button-label-text-color:var(--mat-toolbar-container-text-color)}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}}return n})(),RJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})();const OJ=dA({passive:!0});let wRe=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return K0;const i=Mh(e),r=this._monitoredElements.get(i);if(r)return r.subject;const o=new Ln,s="cdk-text-field-autofilled",a=l=>{"cdk-text-field-autofill-start"!==l.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===l.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",a,OJ),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",a,OJ)}}),o}stopMonitoring(e){const i=Mh(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(In))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),LJ=(()=>{class n{get minRows(){return this._minRows}set minRows(e){this._minRows=cm(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=cm(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._destroyed=new Ln,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=s=>{this._hasFocus="focus"===s.type},this._document=o,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{o_(this._getWindow(),"resize").pipe(pR(16),oo(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,o=r&&this._hasFocus,s=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(s);const a=e.scrollHeight-4;return e.classList.remove(s),o&&(e.style.marginBottom=i),a}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;const o=this._measureScrollHeight(),s=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${s}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,r)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(In),$(Li,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){1&i&&ze("input",function(){return r._noopInputHandler()})},inputs:{minRows:[Ct.None,"cdkAutosizeMinRows","minRows"],maxRows:[Ct.None,"cdkAutosizeMaxRows","maxRows"],enabled:[Ct.HasDecoratorInputTransform,"cdkTextareaAutosize","enabled",Jn],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],standalone:!0,features:[rs]})}}return n})(),xRe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();const CRe=new dt("MAT_INPUT_VALUE_ACCESSOR"),MRe=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let ERe=0,qm=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=sa(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(HB.required)??!1}set required(e){this._required=sa(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&OW().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=sa(e)}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u){this._elementRef=e,this._platform=i,this.ngControl=r,this._autofillMonitor=c,this._formField=u,this._uid="mat-input-"+ERe++,this.focused=!1,this.stateChanges=new Ln,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>OW().has(A)),this._iOSKeyupListener=A=>{const y=A.target;!y.value&&0===y.selectionStart&&0===y.selectionEnd&&(y.setSelectionRange(1,1),y.setSelectionRange(0,0))};const h=this._elementRef.nativeElement,f=h.nodeName.toLowerCase();this._inputValueAccessor=l||h,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&d.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new NR(a,r,s,o,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===f,this._isTextarea="textarea"===f,this._isInFormField=!!u,this._isNativeSelect&&(this.controlType=h.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){MRe.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(iu,10),$(s1,8),$(a1,8),$(_$),$(CRe,10),$(wRe),$(In),$(IN,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,r){1&i&&ze("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&(Zd("id",r.id)("disabled",r.disabled)("required",r.required),pi("name",r.name||null)("readonly",r.readonly&&!r._isNativeSelect||null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),Un("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[Ct.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[ui([{provide:TN,useExisting:n}]),xr]})}}return n})(),FN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,cx,cx,xRe,fr]})}}return n})();const SRe=["switch"],TRe=["*"];function IRe(n,t){1&n&&(D(0,"div",10),Ul(),D(1,"svg",12),xe(2,"path",13),U(),D(3,"svg",14),xe(4,"path",15),U()())}const FRe=new dt("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1})}),DRe={provide:js,useExisting:ei(()=>Cb),multi:!0};class NJ{constructor(t,e){this.source=t,this.checked=e}}let kRe=0,Cb=(()=>{class n{_createChangeEvent(e){return new NJ(this,e)}get buttonId(){return`${this.id||this._uniqueId}-button`}focus(){this._switchElement.nativeElement.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=s,this._onChange=l=>{},this._onTouched=()=>{},this._validatorOnChange=()=>{},this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this.change=new Fn,this.toggleChange=new Fn,this.tabIndex=parseInt(o)||0,this.color=s.color||"accent",this._noopAnimations="NoopAnimations"===a,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++kRe,this.hideIcon=s.hideIcon??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{"keyboard"===e||"program"===e?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new NJ(this,this.checked)))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(Th),$(vo),zl("tabindex"),$(FRe),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&ti(SRe,5),2&i){let o;an(o=ln())&&(r._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(Zd("id",r.id),pi("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),cl(r.color?"mat-"+r.color:""),Un("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],required:[Ct.HasDecoratorInputTransform,"required","required",Jn],color:"color",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ba(e)],checked:[Ct.HasDecoratorInputTransform,"checked","checked",Jn],hideIcon:[Ct.HasDecoratorInputTransform,"hideIcon","hideIcon",Jn]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[ui([DRe,{provide:ys,useExisting:n,multi:!0}]),rs,xr,Nr],ngContentSelectors:TRe,decls:13,vars:24,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(1&i){const o=Dn();Yr(),D(0,"div",1)(1,"button",2,0),ze("click",function(){return Ot(o),Rt(r._handleClick())}),xe(3,"div",3),D(4,"div",4)(5,"div",5)(6,"div",6),xe(7,"div",7),U(),D(8,"div",8),xe(9,"div",9),U(),pt(10,IRe,5,0,"div",10),U()()(),D(11,"label",11),ze("click",function(a){return Ot(o),Rt(a.stopPropagation())}),Vn(12),U()()}if(2&i){const o=Lo(2);_e("labelPosition",r.labelPosition),Q(),Un("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled),_e("tabIndex",r.disabled?-1:r.tabIndex)("disabled",r.disabled),pi("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked),Q(8),_e("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),Q(),Tt(10,r.hideIcon?-1:10),Q(),_e("for",r.buttonId),pi("id",r._labelId)}},dependencies:[Ih,k$],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}.mdc-switch{width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:"";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mdc-switch__handle{transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle:active .mdc-switch:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--selected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--unselected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch__track::after,.mdc-switch__track::before{border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color)}.mdc-switch--selected .mdc-switch__track::after,.mdc-switch--selected .mdc-switch__track::before{border-width:var(--mat-switch-selected-track-outline-width)}.mdc-switch--disabled .mdc-switch__track::after,.mdc-switch--disabled .mdc-switch__track::before{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}'],encapsulation:2,changeDetection:0})}}return n})(),UJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Cb,fr,fr]})}}return n})();function RRe(n,t){if(1&n&&(D(0,"mat-error"),ye(1),U()),2&n){const e=Le();Q(),br(e.scenarioName.getError("Error"))}}function ORe(n,t){if(1&n){const e=Dn();D(0,"mat-slide-toggle",6),ze("change",function(){const r=Ot(e).$implicit;return Rt(Le().handleScenarioMetricPropertySelectionChange(r))}),ye(1),U()}if(2&n){const e=t.$implicit;_e("checked",e.isSelected),Q(),sn(" ",e.metricName?e.metricType+" ("+e.metricName+")":e.metricType," ")}}function LRe(n,t){1&n&&(D(0,"mat-error"),ye(1,"You cannot create an empty Scenario."),U())}let NRe=(()=>{class n{constructor(e,i,r){this.state=e,this.scenarioName=new Yq("",[n=>0===n.value.length?{Error:"Scenario name is required"}:sf.isScenarioExisting(n.value)?{Error:"A Scenario with this name already exists"}:null]),this.scenarioNameErrorField="Scenario name is required",this.areAnyScenarioMetricPropertiesSelected=!0,this.scenarioContent=((n,t)=>{const{dynamicSettings:e,appSettings:i,fileSettings:r}=n,o=[{metricType:"Camera-Position",metricName:"",savedValues:{...t},isSelected:!0,isDisabled:!1},{metricType:"Area-Metric",metricName:e.areaMetric,savedValues:e.margin,isSelected:!0,isDisabled:!1},{metricType:"Height-Metric",metricName:e.heightMetric,savedValues:{heightSlider:i.scaling,labelSlider:i.amountOfTopLabels},isSelected:!0,isDisabled:!1},{metricType:"Color-Metric",metricName:e.colorMetric,savedValues:{colorRange:e.colorRange,mapColors:i.mapColors},isSelected:!0,isDisabled:!1}];return r.edges.length>0&&o.push({metricType:"Edge-Metric",metricName:e.edgeMetric,savedValues:{edgePreview:i.amountOfEdgePreviews,edgeHeight:i.edgeHeight},isSelected:!0,isDisabled:!1}),o})(this.state.getValue(),{camera:i.camera.position,cameraTarget:r.controls.target})}handleScenarioMetricPropertySelectionChange(e){e.isSelected=!e.isSelected,this.areAnyScenarioMetricPropertiesSelected=this.scenarioContent.some(i=>i.isSelected)}addCustomScenario(){sf.addScenario(this.scenarioName.value,this.scenarioContent)}static{this.\u0275fac=function(i){return new(i||n)($(Zr),$(Mu),$(cc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-add-custom-scenario-dialog"]],decls:19,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["subscriptSizing","dynamic"],["matInput","",3,"formControl"],[1,"cc-add-custom-scenario-toggles"],[3,"checked"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"],[3,"change","checked"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Add Scenario"),U()(),D(3,"mat-dialog-content")(4,"p")(5,"mat-form-field",1)(6,"mat-label"),ye(7,"Scenario Name"),U(),xe(8,"input",2),pt(9,RRe,2,1,"mat-error"),U()(),D(10,"p"),ye(11,"The scenario includes:"),U(),D(12,"div",3),Or(13,ORe,2,2,"mat-slide-toggle",4,qr),pt(15,LRe,2,0,"mat-error"),U()(),D(16,"mat-dialog-actions")(17,"button",5),ze("click",function(){return r.addCustomScenario()}),ye(18," ADD "),U()()),2&i&&(Q(8),_e("formControl",r.scenarioName),Q(),Tt(9,r.scenarioName.invalid?9:-1),Q(4),Lr(r.scenarioContent),Q(2),Tt(15,r.areAnyScenarioMetricPropertiesSelected?-1:15),Q(2),_e("disabled",r.scenarioName.invalid||!r.areAnyScenarioMetricPropertiesSelected))},dependencies:[im,$0,OE,Md,Cd,CJ,cs,Jl,kc,ec,zm,qm,Cb],styles:[".cc-add-custom-scenario-toggles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}mat-slide-toggle[_ngcontent-%COMP%]{display:block}"]})}}return n})(),DN=(()=>{class n{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=sa(e)}get inset(){return this._inset}set inset(e){this._inset=sa(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){2&i&&(pi("aria-orientation",r.vertical?"vertical":"horizontal"),Un("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},standalone:!0,features:[Nr],decls:0,vars:0,template:function(i,r){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}}return n})(),kN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})();function URe(n,t){if(1&n&&(D(0,"span",5),xe(1,"i"),U()),2&n){const e=t.$implicit;_e("title",e.tooltip),Q(),hh("fa ",e.faIconClass,""),Un("cc-is-saved",e.isSaved)}}function HRe(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",4),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le().scenarioService.applyScenario(r.scenarioName))}),ye(2),U(),Or(3,URe,2,6,"span",5,qr),D(5,"button",6),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le().scenarioService.removeScenario(r.scenarioName))}),xe(6,"i",7),U()()}if(2&n){const e=t.$implicit;Q(),_e("disabled",!e.isScenarioApplicable),Q(),sn(" ",e.scenarioName," "),Q(),Lr(e.icons)}}let VRe=(()=>{class n{constructor(e,i){this.scenarioService=e,this.dialog=i,this.scenarios=[]}addScenario(){this.dialog.open(NRe,{panelClass:"cc-add-custom-scenario"})}static{this.\u0275fac=function(i){return new(i||n)($(MN),$(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-scenarios"]],inputs:{scenarios:"scenarios"},decls:8,vars:0,consts:[[1,"cc-row"],["disabled","",1,"cc-apply-scenario-button"],["title","Create a custom scenario",1,"cc-action-button","cc-add",3,"click"],[1,"fa","fa-plus"],["title","Apply scenario",1,"cc-apply-scenario-button",3,"click","disabled"],[1,"cc-scenario-content-icons",3,"title"],["title","Remove custom scenario",1,"cc-action-button","cc-remove",3,"click"],[1,"fa","fa-minus-square"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"button",1),ye(2,"Metric Scenarios"),U(),D(3,"button",2),ze("click",function(){return r.addScenario()}),xe(4,"i",3),U()(),xe(5,"mat-divider"),Or(6,HRe,7,2,"div",0,qr)),2&i&&(Q(6),Lr(r.scenarios))},dependencies:[DN],styles:[".cc-row[_ngcontent-%COMP%]{display:flex;height:48px;align-items:center}.cc-row[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]{color:#00000061}.cc-row[_ngcontent-%COMP%] .cc-apply-scenario-button[_ngcontent-%COMP%]{padding-left:16px;padding-right:16px;height:100%;flex:1;text-align:left;background-color:unset}.cc-row[_ngcontent-%COMP%] .cc-apply-scenario-button[_ngcontent-%COMP%]:hover:not([disabled]){background-color:#9e9e9e33}.cc-row[_ngcontent-%COMP%] .cc-action-button[_ngcontent-%COMP%]{width:52px;height:100%;display:inline-flex;justify-content:center;align-items:center}.cc-row[_ngcontent-%COMP%] .cc-action-button.cc-add[_ngcontent-%COMP%]{background-color:#1b9cfc}.cc-row[_ngcontent-%COMP%] .cc-action-button.cc-remove[_ngcontent-%COMP%]{border-left:1px solid rgba(0,0,0,.12);color:#b30000;background-color:unset}.cc-row[_ngcontent-%COMP%] .cc-action-button.cc-remove[_ngcontent-%COMP%]:hover:not([disabled]){background-color:#9e9e9e33}.cc-row[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:x-small}.cc-row[_ngcontent-%COMP%] .cc-scenario-content-icons[_ngcontent-%COMP%]{padding:0 8px;color:#d3d3d3}.cc-row[_ngcontent-%COMP%] .cc-scenario-content-icons[_ngcontent-%COMP%] i.fa.cc-is-saved[_ngcontent-%COMP%]{color:#000}"]})}}return n})(),QRe=(()=>{class n{constructor(e){this.scenarioService=e,this.scenarios=[]}loadScenarios(){this.scenarios=this.scenarioService.getScenarios()}static{this.\u0275fac=function(i){return new(i||n)($(MN))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-show-scenarios-button"]],decls:4,vars:3,consts:[["menu","matMenu"],["icon","fa-star",3,"click","title","matMenuTriggerFor"],[1,"cc-scenarios-menu"],[3,"scenarios"]],template:function(i,r){if(1&i){const o=Dn();D(0,"cc-ribbon-bar-menu-button",1),ze("click",function(){return Ot(o),Rt(r.loadScenarios())}),U(),D(1,"mat-menu",2,0),xe(3,"cc-scenarios",3),U()}if(2&i){const o=Lo(2);_e("title","Open the scenario list")("matMenuTriggerFor",o),Q(3),_e("scenarios",r.scenarios)}},dependencies:[Su,wb,oI,VRe],styles:["[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})();class BN{static downloadCurrentMap(t,e,i,r,o){const s=this.getProjectDataAsCCJsonFormat(t,e,i,r),a=o+f_.CC_FILE_EXTENSION;this.downloadData(JSON.stringify(s),a)}static getProjectDataAsCCJsonFormat(t,e,i,r){return{projectName:e.projectName,apiVersion:e.apiVersion,fileChecksum:e.fileChecksum,nodes:[this.undecorateMap(t)],attributeTypes:r.includes("AttributeTypes")?this.getAttributeTypesForJSON(i.attributeTypes):{},attributeDescriptors:r.includes("AttributeDescriptors")?this.getAttributeDescriptorsForJSON(i.attributeDescriptors):{},edges:r.includes("Edges")?this.undecorateEdges(i.edges):[],markedPackages:r.includes("MarkedPackages")?i.markedPackages:[],blacklist:this.getBlacklistToDownload(r,i.blacklist)}}static getBlacklistToDownload(t,e){const i=[];return t.includes("Flattens")&&i.push(...this.getFilteredBlacklist(e,"flatten").map(r=>({path:r.path,type:"hide"}))),t.includes("Excludes")&&i.push(...this.getFilteredBlacklist(e,"exclude")),i}static getAttributeTypesForJSON(t){return 0===Object.keys(t.edges).length&&0===Object.keys(t.nodes).length?{}:t}static getAttributeDescriptorsForJSON(t){return 0===Object.keys(t).length?{}:t}static getFilteredBlacklist(t,e){return t.filter(i=>i.type===e)}static undecorateMap(t){const e=lu(t);for(const{data:i}of yo(e))delete i.isExcluded,delete i.isFlattened,delete i.edgeAttributes,delete i.path,i.type===qa.FOLDER?i.attributes={}:delete i.attributes[A2];return e}static undecorateEdges(t){const e=lu(t);for(const i of e)delete i.visible;return e}static downloadData(t,e){const i=new Blob([t],{type:"text/json"}),r=document.createEvent("MouseEvents"),o=document.createElement("a");o.download=e,o.href=window.URL.createObjectURL(i),o.dataset.downloadurl=["text/json",o.download,o.href].join(":"),r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.dispatchEvent(r)}}const HJ=".cc.config.json",VJ="CodeCharta::customConfigs";class Yi{static{this.customConfigs=Yi.loadCustomConfigsFromLocalStorage()}static{this.customConfigChange$=new Ia(null)}static setCustomConfigsToLocalStorage(){const t={version:"1.0.1",customConfigs:[...Yi.customConfigs]};localStorage.setItem(VJ,JSON.stringify(t,z2)),Yi.customConfigChange$.next(null)}static loadCustomConfigsFromLocalStorage(){const t=this.getCcLocalStorage();return new Map(t?.customConfigs)}static getCcLocalStorage(){return JSON.parse(localStorage.getItem(VJ),X$)}static addCustomConfig(t){Yi.customConfigs.set(t.id,t),Yi.setCustomConfigsToLocalStorage()}static editCustomConfigNote(t,e){const i=Yi.customConfigs.get(t);i.note=e,Yi.customConfigs.set(t,i),Yi.setCustomConfigsToLocalStorage()}static getCustomConfigSettings(t){return Yi.customConfigs.get(t)}static hasCustomConfigByName(t,e,i){for(const r of Yi.customConfigs.values())if(r.name===i&&r.mapSelectionMode===t&&this.areEqual(e,r.assignedMaps))return!0;return!1}static areEqual(t,e){return t.size===e.size&&[...t.entries()].every(([i,r])=>e.has(i)&&e.get(i)===r)}static getCustomConfigs(){return Yi.customConfigs}static importCustomConfigs(t){const e=JSON.parse(t,X$);for(const i of e.customConfigs.values()){if(Yi.getCustomConfigSettings(i.id))continue;Yi.hasCustomConfigByName(i.mapSelectionMode,i.assignedMaps,i.name)&&(i.name+=` (${Lm.getFormattedTimestamp(new Date(i.creationTime))})`);const o={id:i.id,name:i.name,creationTime:i.creationTime,assignedMaps:i.assignedMaps,customConfigVersion:i.customConfigVersion,mapSelectionMode:i.mapSelectionMode,stateSettings:i.stateSettings,camera:i.camera,...i.note&&{note:i.note}};Yi.addCustomConfig(o)}}static downloadCustomConfigs(t){const e={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:t},i=Lm.getNewTimestamp()+HJ;BN.downloadData(JSON.stringify(e,z2),i)}static createExportCustomConfigFromConfig(t){return{...t}}static getCustomConfigsAmountByMapAndMode(t,e){let i=0;for(const r of Yi.customConfigs.values())[...r.assignedMaps.values()].join(" ")===t&&r.mapSelectionMode===e&&i++;return i}static getConfigNameSuggestionByFileState({mapSelectionMode:t,assignedMaps:e}){const i=[...e.values()].join(" ");return`${i} #${Yi.getCustomConfigsAmountByMapAndMode(i,t)+1}`}static deleteCustomConfigs(t){for(const e of t)Yi.customConfigs.delete(e.id);Yi.setCustomConfigsToLocalStorage()}static deleteCustomConfig(t){Yi.customConfigs.delete(t),Yi.setCustomConfigsToLocalStorage()}static sortCustomConfigDropDownGroupList(t,e){if(!e.hasApplicableItems){if(t.hasApplicableItems||t.mapSelectionModet.has(i))}var aI=function(n){return n.MULTIPLE="STANDARD",n.DELTA="DELTA",n}(aI||{});const dx=Kt(au,n=>{const t=new Map;let e;for(const{selectedAs:i,file:r}of n)e=i===er.Partial?aI.MULTIPLE:aI.DELTA,t.set(r.fileMeta.fileChecksum,r.fileMeta.fileName);return{mapSelectionMode:e,assignedMaps:t}});let PN=(()=>{class n{constructor(e){this.store=e,this.downloadableCustomConfigs$=Sh([this.store.select(dx),Yi.customConfigChange$]).pipe(Qe(([i])=>(({assignedMaps:n})=>{const t=new Map,e=Yi.getCustomConfigs();for(const[i,r]of e.entries())WRe(r.assignedMaps,n)&&t.set(i,Yi.createExportCustomConfigFromConfig(r));return t})(i))),this.customConfigItemGroups$=Sh([this.store.select(dx),Yi.customConfigChange$]).pipe(Qe(([i])=>function $Re({assignedMaps:n}){const t={applicableItems:new Map,nonApplicableItems:new Map},e=new Map;for(const i of Yi.loadCustomConfigsFromLocalStorage().values()){const r=[...i.assignedMaps.values()],o=`${r.join("_")}_${i.mapSelectionMode}`,s=[...i.assignedMaps.keys()].some(b=>n.has(b));e.has(o)||e.set(o,{mapNames:r.join(" "),mapSelectionMode:i.mapSelectionMode,hasApplicableItems:s,customConfigItems:[]});const{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h}=i.stateSettings.appSettings.mapColors,{areaMetric:f,heightMetric:A,colorMetric:y,edgeMetric:_}=i.stateSettings.dynamicSettings;e.get(o).customConfigItems.push({id:i.id,name:i.name,assignedMaps:i.assignedMaps,mapSelectionMode:i.mapSelectionMode,metrics:{areaMetric:f,heightMetric:A,colorMetric:y,edgeMetric:_},mapColors:{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h},isApplicable:s,...i.note&&{note:i.note}}),e.get(o).hasApplicableItems?t.applicableItems.set(o,e.get(o)):t.nonApplicableItems.set(o,e.get(o))}return t}(i)))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function jRe(n,t){1&n&&(D(0,"div",7),ye(1,"It is time to add your first Custom View!"),U())}function XRe(n,t){if(1&n&&xe(0,"cc-custom-config-item-group",12),2&n){const e=Le(2),i=Le();_e("customConfigItemGroups",e.nonApplicableItems)("searchTerm",i.searchTerm)}}function KRe(n,t){if(1&n){const e=Dn();D(0,"button",14),ze("click",function(){return Ot(e),Rt(Le(3).toggleNonApplicableCustomConfigsList())}),ye(1),xe(2,"i",15),U()}if(2&n){const e=Le(3);Q(),sn(" ",e.isNonApplicableListCollapsed?"Show non-applicable Custom Views":"Hide non-applicable Custom Views"," "),Q(),_e("ngClass",e.isNonApplicableListCollapsed?"fa fa-angle-down":"fa fa-angle-up")}}function YRe(n,t){if(1&n){const e=Dn();D(0,"mat-accordion",8)(1,"mat-form-field",9),xe(2,"i",10),D(3,"mat-label"),ye(4),U(),D(5,"input",11),ze("input",function(r){return Ot(e),Rt(Le(2).setSearchTermDebounced(r))}),U()(),xe(6,"cc-custom-config-item-group",12),pt(7,XRe,1,2,"cc-custom-config-item-group",12)(8,KRe,3,2,"button",13),U()}if(2&n){const e=Le(),i=Le();_e("multi",!0),Q(4),sn("",i.searchPlaceholder," "),Q(),_e("value",i.searchTerm),Q(),_e("customConfigItemGroups",e.applicableItems)("searchTerm",i.searchTerm),Q(),Tt(7,i.isNonApplicableListCollapsed?-1:7),Q(),Tt(8,e.nonApplicableItems.size>0?8:-1)}}function ZRe(n,t){if(1&n&&(D(0,"mat-dialog-content",4)(1,"p",5),ye(2," Custom Views allow you to save and upload your individual configurations for certain maps. Find out more about Custom Views in the "),D(3,"a",6),ye(4,"documentation"),U(),ye(5,". "),U(),pt(6,jRe,2,0,"div",7)(7,YRe,9,7,"mat-accordion",8),U()),2&n){const e=t;Q(6),Tt(6,0===e.applicableItems.size&&0===e.nonApplicableItems.size?6:-1),Q(),Tt(7,0!==e.applicableItems.size||0!==e.nonApplicableItems.size?7:-1)}}let QJ=(()=>{class n{constructor(e){this.customConfigService=e,this.searchTerm="",this.isNonApplicableListCollapsed=!0,this.searchPlaceholder="Search by name, mode and metrics...",this.setSearchTermDebounced=Eu(i=>this.searchTerm=i.target.value,400)}toggleNonApplicableCustomConfigsList(){this.isNonApplicableListCollapsed=!this.isNonApplicableListCollapsed}static{this.\u0275fac=function(i){return new(i||n)($(PN))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-list"]],decls:9,vars:3,consts:[["color","primary"],[1,"row"],[1,"action-buttons"],[1,"custom-configs-button-in-custom-views"],[1,"content"],[1,"custom-config-documentation-hint"],["href","https://maibornwolff.github.io/codecharta/docs/custom-view/","target","_blank","rel","noopener noreferrer"],[1,"no-custom-configs-box"],[1,"custom-config-container",3,"multi"],[1,"cc-custom-configs-search-field"],["matPrefix","",1,"fa","fa-search","custom-config-search-icon"],["matInput","","type","text",3,"input","value"],[3,"customConfigItemGroups","searchTerm"],[1,"toggle-non-applicable-configs-button"],[1,"toggle-non-applicable-configs-button",3,"click"],[3,"ngClass"]],template:function(i,r){if(1&i&&(D(0,"mat-toolbar",0),ye(1,"Custom Views "),D(2,"div",1)(3,"div",2),xe(4,"cc-upload-custom-config-button")(5,"cc-download-custom-configs-button")(6,"cc-add-custom-config-button",3),U()()(),pt(7,ZRe,8,2,"mat-dialog-content",4),qe(8,"async")),2&i){let o;Q(7),Tt(7,(o=rt(8,1,r.customConfigService.customConfigItemGroups$))?7:-1,o)}},styles:[".row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-left:auto}.custom-config-documentation-hint[_ngcontent-%COMP%]{margin:10px 0 20px;font-size:1.4em;line-height:1.4em;color:#000000de}.no-custom-configs-box[_ngcontent-%COMP%]{text-align:center;padding:50px 0}.toggle-non-applicable-configs-button[_ngcontent-%COMP%]{width:100%;height:30px;margin:5px 0}"]})}}return n})();function e4e(n,t,e,i){const{mapSelectionMode:r,assignedMaps:o}=dx(t),s={id:"",name:n,creationTime:Date.now(),mapSelectionMode:r,assignedMaps:o,customConfigVersion:"1.0.0",stateSettings:{appSettings:void 0,dynamicSettings:void 0,fileSettings:void 0},camera:e,...i&&{note:i}};return function t4e(n){n.stateSettings.appSettings={showMetricLabelNameValue:!1,showMetricLabelNodeName:!1,colorLabels:{positive:!1,negative:!1,neutral:!1},amountOfEdgePreviews:0,amountOfTopLabels:0,edgeHeight:0,hideFlatBuildings:!1,invertHeight:!1,invertArea:!1,isLoadingFile:!1,isLoadingMap:!1,isPresentationMode:!1,isWhiteBackground:!1,resetCameraIfNewFileIsLoaded:!1,scaling:void 0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,sortingOrderAscending:!1,isSearchPanelPinned:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:void 0,maxTreeMapFiles:0,sharpnessMode:void 0,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0,mapColors:{labelColorAndAlpha:{alpha:0,rgb:""},base:"",flat:"",incomingEdge:"",markingColors:[],negative:"",negativeDelta:"",neutral:"",outgoingEdge:"",positive:"",positiveDelta:"",selected:""}}}(s),function n4e(n){n.stateSettings.dynamicSettings={areaMetric:"",colorMetric:"",distributionMetric:"",edgeMetric:"",focusedNodePath:[],heightMetric:"",margin:0,searchPattern:"",sortingOption:void 0,colorRange:{from:0,to:0},colorMode:void 0}}(s),function i4e(n){n.stateSettings.fileSettings={blacklist:void 0,edges:[],attributeDescriptors:{},markedPackages:[]}}(s),zJ(t,s.stateSettings),s.id=u2()(JSON.stringify(s,z2)),s}function zJ(n,t){for(const[e,i]of Object.entries(n))Object.prototype.hasOwnProperty.call(t,e)&&("object"!=typeof i||Array.isArray(i)||null===i||void 0===t[e]?t[e]=i:zJ(i,t[e]))}function r4e(n,t){if(1&n&&(D(0,"mat-error"),ye(1),U()),2&n){const e=Le();Q(),br(e.getErrorMessage())}}let RN=(()=>{class n{constructor(e,i,r){this.state=e,this.threeCameraService=i,this.threeOrbitControlsService=r}ngOnInit(){const e=dx(this.state.getValue());this.customConfigName=new Yq("",[HB.required,o4e(e)]),this.customConfigName.setValue(Yi.getConfigNameSuggestionByFileState(e))}getErrorMessage(){return this.customConfigName.hasError("required")?"Please enter a view name.":this.customConfigName.hasError("Error")?this.customConfigName.getError("Error"):""}addCustomConfig(){const e=e4e(this.customConfigName.value,this.state.getValue(),{camera:this.threeCameraService.camera.position,cameraTarget:this.threeOrbitControlsService.controls.target},this.customConfigNote);Yi.addCustomConfig(e)}static{this.\u0275fac=function(i){return new(i||n)($(Zr),$(Mu),$(cc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-add-custom-config-dialog"]],decls:24,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["matInput","","required","",1,"cc-custom-config-input",3,"formControl"],["cdkAutosizeMinRows","8","cdkTextareaAutosize","","matInput","","required","",1,"cc-custom-config-input",3,"ngModelChange","ngModel"],[1,"cc-add-custom-config"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Add Custom View"),U()(),D(3,"mat-dialog-content")(4,"p")(5,"mat-form-field")(6,"mat-label"),ye(7,"Save individual configurations for your map."),U(),xe(8,"input",1),D(9,"mat-hint"),ye(10,"Config View Name"),U(),pt(11,r4e,2,1,"mat-error"),U()(),D(12,"p")(13,"mat-form-field")(14,"mat-label"),ye(15,"Provide custom note for configuration (optional)"),U(),D(16,"textarea",2),ld("ngModelChange",function(s){return eu(r.customConfigNote,s)||(r.customConfigNote=s),s}),ye(17," "),U(),D(18,"mat-hint"),ye(19,"Config Note"),U()()()(),D(20,"mat-dialog-actions",3),xe(21,"cc-download-and-purge-configs"),D(22,"button",4),ze("click",function(){return r.addCustomConfig()}),ye(23,"ADD"),U()()),2&i&&(Q(8),_e("formControl",r.customConfigName),Q(3),Tt(11,r.customConfigName.invalid?11:-1),Q(5),ad("ngModel",r.customConfigNote),Q(6),_e("disabled",r.customConfigName.invalid))},encapsulation:2})}}return n})();function o4e(n){return t=>Yi.hasCustomConfigByName(n.mapSelectionMode,n.assignedMaps,t.value)?{Error:"A Custom View with this name already exists."}:null}let s4e=(()=>{class n{constructor(e){this.dialog=e}openCustomConfigDialog(){this.dialog.open(QJ,{panelClass:"cc-custom-config-list"})}showAddCustomConfigDialog(){this.dialog.open(RN,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-configs"]],decls:3,vars:2,consts:[[1,"custom-configs-panel-buttons"],["icon","fa-cogs",3,"click","title"],["icon","fa-plus",3,"click","title"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"cc-ribbon-bar-menu-button",1),ze("click",function(){return r.openCustomConfigDialog()}),U(),D(2,"cc-ribbon-bar-menu-button",2),ze("click",function(){return r.showAddCustomConfigDialog()}),U()()),2&i&&(Q(),_e("title","Open your saved Custom Views"),Q(),_e("title","Create new Custom View"))},dependencies:[oI],styles:["[_nghost-%COMP%] .custom-configs-panel-buttons[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();function ON(n,t){if(t||(t=0),!Array.isArray(n))throw new Error("percentRound input should be an Array");const e=n.slice(),i=n.length,r=new Array(i);let o=0;for(let s=i-1;s>=0;s--)"string"==typeof e[s]&&(e[s]=Number.parseFloat(e[s])),o+=1*e[s];if(isNaN(o))throw new Error("percentRound invalid input");if(0===o)r.fill(0);else{const s=Math.pow(10,t),a=100*s;let l=0;for(let c=i-1;c>=0;c--)e[c]=100*e[c]/o,l+=r[c]=Math.round(e[c]*s);if(l!==a){const d=1;let u=Math.abs(l-a);const h=new Array(i);for(let f=0;f0;){let f=0,A=h[0];for(let y=1;ya&&r[y]-d<0)continue;f=y,A=h[y]}l>a?r[f]-=d:r[f]+=d,h[f]-=d,u--}}if(s>1)for(let c=0;cvoid 0!==n.attributes[l]),o=GJ(e)[i],s=n.attributes[i],a=n.attributes[lI];s<=o.percentile70?t.lowRisk+=a:s<=o.percentile80?t.moderateRisk+=a:s<=o.percentile90?t.highRisk+=a:t.veryHighRisk+=a}function h4e(n,t,e){for(const[i,r]of Object.entries(n.attributes))0!==r&&(t[e]??={},t[e][i]??=[],t[e][i].push(r))}function f4e(n,t){return n.isOutlier&&!t.isOutlier?-1:!n.isOutlier&&t.isOutlier?1:0}function m4e(n){const t=vb.get(n);return t?`${n} (${t})`:`${n}`}function _4e(n){return n.includes(".")?n.slice(n.lastIndexOf(".")+1):void 0}function b4e(n,t){return LN.some(e=>void 0!==n.attributes[e])&&void 0!==n.attributes[lI]&&!l4e.has(t)}const v4e=Kt(Hc,su,(n,t)=>{if(!n.unifiedMapNode)return;const e={analyzedProgrammingLanguage:void 0,suspiciousMetricSuggestionLinks:[],unsuspiciousMetrics:[],untrackedMetrics:[],riskProfile:void 0},i=new Map,r={lowRisk:0,moderateRisk:0,highRisk:0,veryHighRisk:0};let o=0,s=0;const a={};for(const{data:c}of yo(n.unifiedMapNode)){const d=_4e(c.name);if(c.type===qa.FILE&&void 0!==d&&!Ch(c.path,t,"exclude")){const u=i.get(d)??0;if(i.set(d,u+1),h4e(c,a,d),b4e(c,d)){const h=LN.find(f=>void 0!==c.attributes[f]);s+=c.attributes[h],o+=c.attributes[lI],c4e(c,r,d)}}}o>0&&s>0&&(e.riskProfile=function d4e(n){const[t,e,i,r]=a4e([n.lowRisk,n.moderateRisk,n.highRisk,n.veryHighRisk]);return{lowRisk:t,moderateRisk:e,highRisk:i,veryHighRisk:r}}(r));const l=function A4e(n){let t,e=-1;for(const[i,r]of n)es.percentile70&&(e.suspiciousMetrics.set(r,{from:s.percentile70,to:s.percentile80}),a>s.percentile90&&e.outliersThresholds.set(r,s.percentile90))}for(const r in n[t])!Object.keys(i).includes(r)&&!e.untrackedMetrics.includes(r)&&e.untrackedMetrics.push(r);return e}(a,l);e.unsuspiciousMetrics=c.unsuspiciousMetrics,e.untrackedMetrics=c.untrackedMetrics,e.suspiciousMetricSuggestionLinks=function u4e(n){const t=new Map;for(const[e,i]of n.suspiciousMetrics)t.set(e,{metric:e,...i}),n.outliersThresholds.has(e)&&(t.get(e).isOutlier=!0,t.get(e).outlierThreshold=n.outliersThresholds.get(e));return[...t.values()].sort(f4e)}(c)}return e});var WJ=Object.prototype.hasOwnProperty;function $J(n,t,e){for(e of n.keys())if(JA(e,t))return e}function JA(n,t){var e,i,r;if(n===t)return!0;if(n&&t&&(e=n.constructor)===t.constructor){if(e===Date)return n.getTime()===t.getTime();if(e===RegExp)return n.toString()===t.toString();if(e===Array){if((i=n.length)===t.length)for(;i--&&JA(n[i],t[i]););return-1===i}if(e===Set){if(n.size!==t.size)return!1;for(i of n)if((r=i)&&"object"==typeof r&&!(r=$J(t,r))||!t.has(r))return!1;return!0}if(e===Map){if(n.size!==t.size)return!1;for(i of n)if((r=i[0])&&"object"==typeof r&&!(r=$J(t,r))||!JA(i[1],t.get(r)))return!1;return!0}if(e===ArrayBuffer)n=new Uint8Array(n),t=new Uint8Array(t);else if(e===DataView){if((i=n.byteLength)===t.byteLength)for(;i--&&n.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(n)){if((i=n.byteLength)===t.byteLength)for(;i--&&n[i]===t[i];);return-1===i}if(!e||"object"==typeof n){for(e in i=0,n)if(WJ.call(n,e)&&++i&&!WJ.call(t,e)||!(e in t)||!JA(n[e],t[e]))return!1;return Object.keys(t).length===i}}return n!=n&&t!=t}let y4e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metric-dialog"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:12,vars:0,consts:[["id","suspiciousMetricPopover","data-testid","suspiciousMetricPopover",1,"cc-dialog","suspicious-metric-dialog"],["mat-dialog-title","",1,"title"],[1,"info-text"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[2,"display","flex","justify-content","center"],["mat-stroked-button","","mat-dialog-close","",1,"button-mat-dialog"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"h2",1),ye(2,"Suspicious Metrics Information"),U(),D(3,"mat-dialog-content",2),ye(4," This feature compares the values of certain metrics from the loaded cc.json file with metric values of 241 Open Source Java projects. Based on this data suspicious and inconspicuous metrics are identified and corresponding suggestions can be clicked to view them. Be aware that metrics for other programming languages might not be comparable to Java Reference metric values. More information can be found in the "),D(5,"a",3),ye(6,"How-To Article "),xe(7,"i",4),U(),ye(8,". "),U(),D(9,"mat-dialog-actions",5)(10,"button",6),ye(11,"Close"),U()()())},dependencies:[cs,Jl,H2,kc,ec],encapsulation:2})}}return n})(),eg=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-action-icon"]],inputs:{icon:"icon"},decls:1,vars:2,consts:[["role","button"]],template:function(i,r){1&i&&xe(0,"i",0),2&i&&cl(r.icon)},styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center;cursor:pointer;width:24px;height:24px;border-radius:100%;background-color:#1b9cfc;font-size:14px}[_nghost-%COMP%]:hover{background-color:#0374c9}.disabled[_nghost-%COMP%]{opacity:.5}[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] i.fa[_ngcontent-%COMP%]{margin:auto;line-height:1.5;color:#fff}[_nghost-%COMP%] i.fa-folder-open[_ngcontent-%COMP%], [_nghost-%COMP%] i.fa.fa-folder-open[_ngcontent-%COMP%]{padding-left:1px}"]})}}return n})(),jJ=(()=>{class n{transform(e,i,r="..."){return e.length>i?e.slice(0,i)+r:e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"truncateText",type:n,pure:!0})}}return n})();const w4e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function x4e(n,t){if(1&n&&(xe(0,"br"),D(1,"span",11),ye(2),U()),2&n){const e=Le().$implicit,i=Le(3);Q(2),br(i.getDescriptionOfMetric(e.metric))}}function C4e(n,t){if(1&n){const e=Dn();D(0,"mat-button-toggle",12),ze("click",function(){Ot(e);const r=Le().$implicit;return Rt(Le(3).applySuspiciousMetric(r,!0))}),ye(1," High-Risk\xa0"),xe(2,"i",13),U()}}function M4e(n,t){1&n&&(D(0,"mat-button-toggle",14),ye(1," High-Risk\xa0"),xe(2,"i",15),U())}function E4e(n,t){if(1&n){const e=Dn();xe(0,"div",5),D(1,"div",6)(2,"b"),ye(3),qe(4,"truncateText"),U(),pt(5,x4e,3,1),U(),D(6,"div")(7,"mat-button-toggle-group")(8,"mat-button-toggle",7),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(3).applySuspiciousMetric(r,!1))}),ye(9," Apply preset\xa0"),xe(10,"i",8),ye(11,"\xa0"),xe(12,"i",9),U(),pt(13,C4e,3,0,"mat-button-toggle",10)(14,M4e,3,0),U()()}if(2&n){const e=t.$implicit,i=Le(3);Q(),Ua("title",i.getNameAndDescriptionOfMetric(e.metric)),Q(2),br(Io(4,6,e.metric,40)),Q(2),Tt(5,i.getDescriptionOfMetric(e.metric)?5:-1),Q(3),sd("title","Apply Map Configuration to show files with suspicious metric ",e.metric," and high risk or very high risk depending on selection"),Q(5),Tt(13,e.isOutlier?13:14)}}function S4e(n,t){if(1&n&&(D(0,"div",4),Or(1,E4e,15,9,null,null,qr),U()),2&n){const e=Le(2);Q(),Lr(e.data.suspiciousMetricSuggestionLinks)}}function T4e(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",1),ze("click",function(){return Ot(e),Rt(Le().toggleSuspiciousMetricsVisibility())}),D(2,"span",2),xe(3,"i",3),U(),ye(4," Suspicious Metrics in "),D(5,"code"),ye(6),U(),ye(7," code "),U()(),pt(8,S4e,3,0,"div",4)}if(2&n){const e=Le();sd("title","Suspicious Metrics in .",e.data.analyzedProgrammingLanguage," code"),Q(3),_e("ngClass",ul(5,w4e,!e.isSuspiciuosMetricsVisible,e.isSuspiciuosMetricsVisible)),Q(3),sn(".",e.data.analyzedProgrammingLanguage,""),Q(2),Tt(8,e.isSuspiciuosMetricsVisible?8:-1)}}function I4e(n,t){if(1&n&&(D(0,"div",16),ye(1," No Suspicious Metrics found in "),D(2,"code"),ye(3),U(),ye(4,"! "),U()),2&n){const e=Le();sd("title","Suspicious Metrics in this .",e.data.analyzedProgrammingLanguage," code"),Q(3),sn(".",e.data.analyzedProgrammingLanguage,"")}}let F4e=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.isSuspiciuosMetricsVisible=!0}toggleSuspiciousMetricsVisibility(){this.isSuspiciuosMetricsVisible=!this.isSuspiciuosMetricsVisible}applySuspiciousMetric(e,i){this.store.dispatch(vh({value:lI})),this.store.dispatch(wh({value:e.metric})),this.store.dispatch(pd({value:e.metric})),this.store.dispatch(ru({value:{from:e.from,to:i?e.outlierThreshold:e.to}})),this.store.dispatch(bh({value:{positive:i?"#ffffff":Cu.positive,neutral:i?"#ffffff":Cu.neutral,negative:i?"#A900C0":Cu.negative}})),this.matMenuTriggerReference.closeMenu()}getNameAndDescriptionOfMetric(e){const i=vb.get(e);return i?`${e.toUpperCase()} (${i.toLowerCase()})`:e.toUpperCase()}getDescriptionOfMetric(e){const i=vb.get(e);return i?`${i.toLowerCase()}`:""}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:2,vars:1,consts:[[1,"sub-title",3,"title"],["data-testid","Suspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"],[1,"text-content","grid-container-suspicious"],["id","spacer"],[3,"title"],[3,"click","title"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],["title","Show very high risk files (90th percentile)"],[1,"sub-sub-title"],["title","Show very high risk files (90th percentile)",3,"click"],[1,"fa","fa-exclamation-triangle","risk-button-active"],["title","No high risk profile detected","disabled",""],[1,"fa","fa-exclamation-triangle"],[1,"sub-title-not-text-content","sub-title",3,"title"]],template:function(i,r){1&i&&pt(0,T4e,9,8)(1,I4e,5,3),2&i&&Tt(0,r.data.suspiciousMetricSuggestionLinks.length?0:1)},dependencies:[nu,lN,tx,jJ],styles:[".grid-container-suspicious[_ngcontent-%COMP%]{display:grid;column-gap:4px;row-gap:8px;grid-template-columns:auto auto auto;place-items:center left}.grid-container-suspicious[_ngcontent-%COMP%] #spacer[_ngcontent-%COMP%]{width:14px}.grid-container-suspicious.text-content[_ngcontent-%COMP%]{padding-top:16px}.grid-container-suspicious[_ngcontent-%COMP%] .fa-exclamation-triangle.risk-button-active[_ngcontent-%COMP%]{color:#9c0e6a}.sub-sub-title[_ngcontent-%COMP%]{font-size:11px;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sub-title-not-text-content[_ngcontent-%COMP%]{padding-bottom:8px}"]})}}return n})();const D4e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function k4e(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",2),ze("click",function(){return Ot(e),Rt(Le(2).toggleUntrackedMetricsVisibility())}),D(2,"span",3),xe(3,"i",4),U(),ye(4," Untracked metrics in "),D(5,"code"),ye(6),U(),ye(7," code "),U()()}if(2&n){const e=Le(2);Q(3),_e("ngClass",ul(2,D4e,!e.isUntrackedMetricsVisible,e.isUntrackedMetricsVisible)),Q(3),sn(".",e.data.analyzedProgrammingLanguage,"")}}function B4e(n,t){if(1&n&&(D(0,"li"),ye(1),U()),2&n){const e=t.$implicit;Q(),br(e)}}function P4e(n,t){if(1&n&&(D(0,"ul",1),Or(1,B4e,2,1,"li",null,qr),U()),2&n){const e=Le(2);Q(),Lr(e.data.untrackedMetrics)}}function R4e(n,t){1&n&&(D(0,"div"),ye(1,"No programming language was found for analyzing suspicious metrics."),U())}function O4e(n,t){if(1&n&&pt(0,k4e,8,5,"div",0)(1,P4e,3,0,"ul",1)(2,R4e,2,0,"div"),2&n){const e=Le();Tt(0,e.data.analyzedProgrammingLanguage.length?0:-1),Q(),Tt(1,e.isUntrackedMetricsVisible?1:-1),Q(),Tt(2,void 0===e.data.analyzedProgrammingLanguage?2:-1)}}let L4e=(()=>{class n{constructor(){this.isUntrackedMetricsVisible=!1}toggleUntrackedMetricsVisibility(){this.isUntrackedMetricsVisible=!this.isUntrackedMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-untracked-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Untracked Metrics in ts Code",1,"text-content"],["data-testid","Untracked Metrics","title","Show/Hide Untracked Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&pt(0,O4e,3,3),2&i&&Tt(0,r.data.untrackedMetrics.length?0:-1)},dependencies:[nu],encapsulation:2})}}return n})();const N4e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function U4e(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",2),ze("click",function(){return Ot(e),Rt(Le(2).toggleUnsuspiciousMetricsVisibility())}),D(2,"span",3),xe(3,"i",4),U(),ye(4," Unsuspicious metrics in "),D(5,"code"),ye(6),U(),ye(7," code "),U()()}if(2&n){const e=Le(2);Q(3),_e("ngClass",ul(2,N4e,!e.isUnsuspiciuosMetricsVisible,e.isUnsuspiciuosMetricsVisible)),Q(3),sn(".",e.data.analyzedProgrammingLanguage,"")}}function H4e(n,t){if(1&n&&(D(0,"li"),ye(1),U()),2&n){const e=t.$implicit;Q(),br(e)}}function V4e(n,t){if(1&n&&(D(0,"ul",1),Or(1,H4e,2,1,"li",null,qr),U()),2&n){const e=Le(2);Q(),Lr(e.data.unsuspiciousMetrics)}}function Q4e(n,t){if(1&n&&pt(0,U4e,8,5,"div",0)(1,V4e,3,0,"ul",1),2&n){const e=Le();Tt(0,e.data.analyzedProgrammingLanguage.length?0:-1),Q(),Tt(1,e.isUnsuspiciuosMetricsVisible?1:-1)}}let z4e=(()=>{class n{constructor(){this.isUnsuspiciuosMetricsVisible=!1}toggleUnsuspiciousMetricsVisibility(){this.isUnsuspiciuosMetricsVisible=!this.isUnsuspiciuosMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-unsuspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Unsuspicious Metrics in ts Code",1,"text-content"],["data-testid","Unsuspicious Metrics","title","Show/Hide Unsuspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&pt(0,Q4e,2,2),2&i&&Tt(0,r.data.unsuspiciousMetrics.length?0:-1)},dependencies:[nu],encapsulation:2})}}return n})(),XJ=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.dialog.open(y4e,{width:"500px"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metrics-menu"]],viewQuery:function(i,r){if(1&i&&(ti(wb,5),ti(Su,5)),2&i){let o;an(o=ln())&&(r.menuTrigger=o.first),an(o=ln())&&(r.menu=o.first)}},inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:9,vars:6,consts:[[3,"click"],[1,"title"],["icon","fa fa-question-circle-o","title","Open Information about Suspicious Metrics",3,"click"],[1,"suspicious-menu-content-wrapper"],[3,"data","matMenuTriggerReference"]],template:function(i,r){1&i&&(D(0,"div",0),ze("click",function(s){return s.stopPropagation()}),D(1,"div")(2,"div",1),ye(3,"Suspicious Metrics"),U(),D(4,"cc-action-icon",2),ze("click",function(){return r.openDialog()}),U()(),D(5,"div",3),xe(6,"cc-suspicious-metrics-list",4)(7,"cc-unsuspicious-metrics-list",4)(8,"cc-untracked-metrics-list",4),U()()),2&i&&(Q(6),_e("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),Q(),_e("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),Q(),_e("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference))},dependencies:[eg,F4e,L4e,z4e],styles:[".suspicious-menu-content-wrapper[_ngcontent-%COMP%]{padding:8px}"]})}}return n})();const q4e=["matMenuTrigger"];function G4e(n,t){if(1&n&&(D(0,"span",3),ye(1),U()),2&n){const e=Le();Q(),sn(" ",e.data.suspiciousMetricSuggestionLinks.length," ")}}let W4e=(()=>{class n{constructor(){this.hideBadge=!1}ngOnChanges(e){e.data&&!JA(e.data.previousValue,e.data.currentValue)&&(this.hideBadge=!1)}ngAfterViewInit(){this.menuComponent&&(this.menu=this.menuComponent.menu)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metrics"]],viewQuery:function(i,r){if(1&i&&(ti(XJ,5),ti(q4e,5)),2&i){let o;an(o=ln())&&(r.menuComponent=o.first),an(o=ln())&&(r.matMenuTrigger=o.first)}},inputs:{data:"data",menu:"menu"},features:[xr],decls:6,vars:5,consts:[["matMenuTrigger","matMenuTrigger"],["menu","matMenu"],["icon","fa-exclamation-triangle",3,"click","title","matMenuTriggerFor"],[1,"cc-suspicious-metrics-badge"],[1,"cc-ai-drop-down","cc-suspicious-metric-panel"],[3,"data","matMenuTriggerReference"]],template:function(i,r){if(1&i){const o=Dn();D(0,"cc-ribbon-bar-menu-button",2,0),ze("click",function(){return Ot(o),Rt(r.hideBadge=!0)}),pt(2,G4e,2,1,"span",3),U(),D(3,"mat-menu",4,1),xe(5,"cc-suspicious-metrics-menu",5),U()}if(2&i){const o=Lo(1),s=Lo(4);_e("title","Open Suspicious Metrics Panel")("matMenuTriggerFor",s),Q(2),Tt(2,r.hideBadge||void 0===r.data.analyzedProgrammingLanguage&&!r.data.suspiciousMetricSuggestionLinks.length&&!r.data.unsuspiciousMetrics.length?-1:2),Q(3),_e("data",r.data)("matMenuTriggerReference",o)}},dependencies:[Su,wb,oI,XJ],styles:[".cc-suspicious-metrics-badge[_ngcontent-%COMP%]{position:absolute;bottom:10px;padding:4px 6px;border-radius:50%;background:red;color:#fff;font-size:10px;line-height:10px}"]})}}return n})(),$4e=(()=>{class n{constructor(e){this.element=e,this.ccRiskProfileBar=0}ngOnChanges(e){e.ccRiskProfileBar&&(this.element.nativeElement.style.display=this.ccRiskProfileBar>0?"flex":"none",this.element.nativeElement.style.width=`${this.ccRiskProfileBar}%`,this.element.nativeElement.style.color=this.ccRiskProfileBar>5?"black":"rgba(0,0,0,0)")}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ccRiskProfileBar",""]],inputs:{ccRiskProfileBar:"ccRiskProfileBar"},features:[xr]})}}return n})();function j4e(n,t){if(1&n&&(D(0,"div",3),ye(1,"Risk Profile"),U(),D(2,"div",4),ye(3," The Risk Profile gives a quick overview about the complexity and risk structure of the code base. It tells you how much of the code is placed in files associated with low/high risk in means of maintainability. The separation of code in risk classes like low or high complexity is based on Java reference metric values and therefore may be inaccurate for other programming languages. More information can be found in the "),D(4,"a",5),ye(5,"How-To Article "),xe(6,"i",6),U(),ye(7,". "),U(),D(8,"div",7)(9,"div"),xe(10,"i",8),ye(11," Calculations are based on an available complexity metric"),U()(),D(12,"div",4)(13,"ul")(14,"li"),ye(15),U(),D(16,"li"),ye(17),U(),D(18,"li"),ye(19),U(),D(20,"li"),ye(21),U()()(),D(22,"div",9)(23,"div",10),ye(24),U(),D(25,"div",11),ye(26),U(),D(27,"div",12),ye(28),U(),D(29,"div",13),ye(30),U()()),2&n){const e=Le();Q(15),sn("",e.data.riskProfile.lowRisk,"% of overall code is in files with low complexity"),Q(2),sn("",e.data.riskProfile.moderateRisk,"% of overall code is in files with moderate complexity"),Q(2),sn("",e.data.riskProfile.highRisk,"% of overall code is in files with high complexity"),Q(2),sn("",e.data.riskProfile.veryHighRisk,"% of overall code is in files with extreme complexity"),Q(2),sd("title","Low Risk (",e.data.riskProfile.lowRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.lowRisk),Q(),sn(" ",e.data.riskProfile.lowRisk,"% "),Q(),sd("title","Moderate Risk (",e.data.riskProfile.moderateRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.moderateRisk),Q(),sn(" ",e.data.riskProfile.moderateRisk,"% "),Q(),sd("title","High Risk (",e.data.riskProfile.highRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.highRisk),Q(),sn(" ",e.data.riskProfile.highRisk,"% "),Q(),sd("title","Very High Risk (",e.data.riskProfile.veryHighRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.veryHighRisk),Q(),sn(" ",e.data.riskProfile.veryHighRisk,"% ")}}function X4e(n,t){1&n&&(D(0,"span"),ye(1," Could not calculate Risk Profile. At least one of the metrics rloc (real lines of code) or complexity (cyclomatic complexity) is not available. "),U(),xe(2,"br")(3,"br"),D(4,"span"),ye(5," Be aware that complexity was previously named mcc. Old maps which still contain mcc instead of complexity need to be regenerated for the risk profile to work. "),U())}let K4e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-high-risk-profile"]],inputs:{data:"data"},decls:5,vars:4,consts:[["menu","matMenu"],["icon","fa-bar-chart",3,"title","matMenuTriggerFor"],[1,"cc-ai-drop-down","cc-high-risk-profile"],[1,"title"],[1,"text-content"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[1,"sub-title"],[1,"fa","fa-lightbulb-o"],[1,"cc-risk-profiles"],[1,"cc-risk-profile","cc-low-risk",3,"ccRiskProfileBar","title"],[1,"cc-risk-profile","cc-moderate-risk",3,"ccRiskProfileBar","title"],[1,"cc-risk-profile","cc-high-risk",3,"ccRiskProfileBar","title"],[1,"cc-risk-profile","cc-very-high-risk",3,"ccRiskProfileBar","title"]],template:function(i,r){if(1&i&&(xe(0,"cc-ribbon-bar-menu-button",1),D(1,"mat-menu",2,0),pt(3,j4e,31,20)(4,X4e,6,0),U()),2&i){const o=Lo(2);_e("title","Open High Risk Profile")("matMenuTriggerFor",o),Q(3),Tt(3,void 0!==r.data.riskProfile?3:-1),Q(),Tt(4,void 0===r.data.riskProfile?4:-1)}},dependencies:[Su,wb,oI,$4e],styles:["ul[_ngcontent-%COMP%]{margin:0}.cc-risk-profiles[_ngcontent-%COMP%]{margin:0 -10px -10px;display:flex}.cc-risk-profile[_ngcontent-%COMP%]{height:36px;text-align:center;justify-content:center;align-items:center;overflow:hidden}.cc-risk-profile.cc-low-risk[_ngcontent-%COMP%]{background-color:#5cb34d}.cc-risk-profile.cc-moderate-risk[_ngcontent-%COMP%]{background-color:#eef432}.cc-risk-profile.cc-high-risk[_ngcontent-%COMP%]{background-color:#cc2900}.cc-risk-profile.cc-very-high-risk[_ngcontent-%COMP%]{background-color:#9c0e6a}.sub-title[_ngcontent-%COMP%]{font-size:16px}"]})}}return n})();function Y4e(n,t){if(1&n&&xe(0,"cc-suspicious-metrics",0)(1,"cc-high-risk-profile",0),2&n){const e=t;_e("data",e),Q(),_e("data",e)}}let Z4e=(()=>{class n{constructor(e){this.store=e,this.data$=this.store.select(v4e)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-artificial-intelligence"]],decls:2,vars:3,consts:[[3,"data"]],template:function(i,r){if(1&i&&(pt(0,Y4e,2,2),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.data$))?0:-1,o)}},dependencies:[W4e,K4e,Kn],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();const J4e=["trigger"],eOe=["panel"],tOe=[[["mat-select-trigger"]],"*"],nOe=["mat-select-trigger","*"];function iOe(n,t){if(1&n&&(D(0,"span",4),ye(1),U()),2&n){const e=Le();Q(),br(e.placeholder)}}function rOe(n,t){1&n&&Vn(0)}function oOe(n,t){if(1&n&&(D(0,"span",11),ye(1),U()),2&n){const e=Le(2);Q(),br(e.triggerValue)}}function sOe(n,t){if(1&n&&(D(0,"span",10),pt(1,rOe,1,0)(2,oOe,2,1),U()),2&n){const e=Le();Q(),Tt(1,e.customTrigger?1:2)}}function aOe(n,t){if(1&n){const e=Dn();D(0,"div",12,1),ze("@transformPanel.done",function(r){return Ot(e),Rt(Le()._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){return Ot(e),Rt(Le()._handleKeydown(r))}),Vn(2,1),U()}if(2&n){const e=Le();hh("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),_e("ngClass",e.panelClass)("@transformPanel","showing"),pi("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const lOe={transformPanelWrap:Dh("transformPanelWrap",[Zl("* => void",QR("@transformPanel",[VR()],{optional:!0}))]),transformPanel:Dh("transformPanel",[Dc("void",jo({opacity:0,transform:"scale(1, 0.8)"})),Zl("void => showing",Fc("120ms cubic-bezier(0, 0, 0.2, 1)",jo({opacity:1,transform:"scale(1, 1)"}))),Zl("* => void",Fc("100ms linear",jo({opacity:0})))])};let KJ=0;const YJ=new dt("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition()}}),dOe=new dt("MAT_SELECT_CONFIG"),uOe={provide:YJ,deps:[Ls],useFactory:function cOe(n){return()=>n.scrollStrategies.reposition()}},ZJ=new dt("MatSelectTrigger");class hOe{constructor(t,e){this.source=t,this.value=e}}let Gm=(()=>{class n{_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const r=this.panel.nativeElement,o=function f1e(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),o=0;for(let s=0;se+i?Math.max(0,n-i+t):e}(s.offsetTop,s.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new hOe(this,e)}get focused(){return this._focused||this._panelOpen}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(HB.required)??!1}set required(e){this._required=e,this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=e}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u,h,f,A,y){this._viewportRuler=e,this._changeDetectorRef=i,this._elementRef=s,this._dir=a,this._parentFormField=d,this.ngControl=u,this._liveAnnouncer=A,this._defaultOptions=y,this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._panelOpen=!1,this._compareWith=(_,b)=>_===b,this._uid="mat-select-"+KJ++,this._triggerAriaLabelledBy=null,this._destroy=new Ln,this.stateChanges=new Ln,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+KJ++,this._panelDoneAnimatingStream=new Ln,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._multiple=!1,this.disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._initialized=new Ln,this.optionSelectionChanges=RR(()=>{const _=this.options;return _?_.changes.pipe(gd(_),gh(()=>Yl(..._.map(b=>b.onSelectionChange)))):this._initialized.pipe(gh(()=>this.optionSelectionChanges))}),this.openedChange=new Fn,this._openedStream=this.openedChange.pipe(qi(_=>_),Qe(()=>{})),this._closedStream=this.openedChange.pipe(qi(_=>!_),Qe(()=>{})),this.selectionChange=new Fn,this.valueChange=new Fn,this._trackedModal=null,this._skipPredicate=_=>!this.panelOpen&&_.disabled,this.ngControl&&(this.ngControl.valueAccessor=this),null!=y?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=y.typeaheadDebounceInterval),this._errorStateTracker=new NR(o,u,c,l,this.stateChanges),this._scrollStrategyFactory=f,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(h)||0,this.id=this.id}ngOnInit(){this._selectionModel=new $T(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(d1(),oo(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(oo(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(oo(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(gd(null),oo(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&ER(this._trackedModal,"aria-owns",i),t$(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(ER(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,r=40===i||38===i||37===i||39===i,o=13===i||32===i,s=this._keyManager;if(!s.isTyping()&&o&&!Ad(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,r=e.keyCode,o=40===r||38===r,s=i.isTyping();if(o&&e.altKey)e.preventDefault(),this.close();else if(s||13!==r&&32!==r||!i.activeItem||Ad(e))if(!s&&this._multiple&&65===r&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&o&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe($o(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return null!=r.value&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof CR?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new vye(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Yl(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(oo(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Yl(...this.options.map(i=>i._stateChanges)).pipe(oo(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const r=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;i=this.multiple?this.selected.map(r=>r.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static{this.\u0275fac=function(i){return new(i||n)($(bR),$(vo),$(In),$(_$),$(Nn),$(Eh,8),$(s1,8),$(a1,8),$(IN,8),$(iu,10),zl("tabindex"),$(YJ),$(Nye),$(dOe,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,ZJ,5),Gr(o,du,5),Gr(o,S$,5)),2&i){let s;an(s=ln())&&(r.customTrigger=s.first),an(s=ln())&&(r.options=s),an(s=ln())&&(r.optionGroups=s)}},viewQuery:function(i,r){if(1&i&&(ti(J4e,5),ti(eOe,5),ti(jW,5)),2&i){let o;an(o=ln())&&(r.trigger=o.first),an(o=ln())&&(r.panel=o.first),an(o=ln())&&(r._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){1&i&&ze("keydown",function(s){return r._handleKeydown(s)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),2&i&&(pi("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),Un("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[Ct.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ba(e)],hideSingleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Jn],placeholder:"placeholder",required:[Ct.HasDecoratorInputTransform,"required","required",Jn],multiple:[Ct.HasDecoratorInputTransform,"multiple","multiple",Jn],disableOptionCentering:[Ct.HasDecoratorInputTransform,"disableOptionCentering","disableOptionCentering",Jn],compareWith:"compareWith",value:"value",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[Ct.HasDecoratorInputTransform,"typeaheadDebounceInterval","typeaheadDebounceInterval",ba],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],standalone:!0,features:[ui([{provide:TN,useExisting:n},{provide:E$,useExisting:n}]),rs,xr,Nr],ngContentSelectors:nOe,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(1&i){const o=Dn();Yr(tOe),D(0,"div",2,0),ze("click",function(){return Ot(o),Rt(r.open())}),D(3,"div",3),pt(4,iOe,2,1,"span",4)(5,sOe,3,1),U(),D(6,"div",5)(7,"div",6),Ul(),D(8,"svg",7),xe(9,"path",8),U()()()(),pt(10,aOe,3,9,"ng-template",9),ze("backdropClick",function(){return Ot(o),Rt(r.close())})("attach",function(){return Ot(o),Rt(r._onAttached())})("detach",function(){return Ot(o),Rt(r.close())})}if(2&i){const o=Lo(1);Q(3),pi("id",r._valueId),Q(),Tt(4,r.empty?4:5),Q(6),_e("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[CR,jW,nu],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}'],encapsulation:2,data:{animation:[lOe.transformPanel]},changeDetection:0})}}return n})(),JJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-select-trigger"]],standalone:!0,features:[ui([{provide:ZJ,useExisting:n}])]})}}return n})(),eee=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[uOe],imports:[mn,q1,T$,fr,U1,cx,T$,fr]})}}return n})();const tee=Kt(mb,Yw,(n,t)=>n.get(t));class fOe{constructor(){this.vertexShaderCode=p(1812),this.fragmentShaderCode=p(1190)}}class mOe{constructor(t){this._buildings=new Array,this.mapSize=t,this.scales=new se(1,1,1)}add(t){this._buildings.push(t)}get buildings(){return this._buildings}setScales(t){this.scales=new se(t.x,t.y,t.z)}getBuildingByPath(t){return this.buildings.find(e=>e.node.path===t)}intersect(t){let e,i=Number.POSITIVE_INFINITY;const r=this.scales.clone().multiplyScalar(this.mapSize).multiply(new se(-1,0,-1));for(const o of this._buildings){const s=o.boundingBox.clone();if(s.min.multiply(this.scales),s.max.multiply(this.scales),s.translate(r),this.rayIntersectsAxisAlignedBoundingBox(t,s)){const a=t.intersectBox(s,new se);if(a){const l=a.distanceTo(t.origin);l=o}}class pOe{constructor(t,e,i,r){this._id=t,this._boundingBox=e,this._color=r,this._defaultColor=r,this._deltaColor="#000000",this._defaultDeltaColor="#000000",this._node=i}getCenterPoint(t){return new se(this._node.x0-t+this._node.width/2,this._node.z0+this._node.height,this._node.y0-t+this._node.length/2)}decreaseLightness(t){this._color=this._decreaseLightnessForColor(this._defaultColor,t),this._node.deltas&&(this._deltaColor=this._decreaseLightnessForColor(this._defaultDeltaColor,t))}_decreaseLightnessForColor(t,e){const i=lr.hexToHSL(t);return i.decreaseLightness(e),i.getLightness()<10?i.setLightness(10):i.setLightness(i.getLightness()),i.toHex()}getColorVector(){return lr.getVector3(this._color)}getDefaultColorVector(){return lr.getVector3(this._defaultColor)}getDeltaColorVector(){return lr.getVector3(this._deltaColor)}getDefaultDeltaColorVector(){return lr.getVector3(this._defaultDeltaColor)}resetColor(){this._color=this._defaultColor,this._deltaColor=this._defaultDeltaColor}equals(t){return this._id===t._id}get id(){return this._id}get boundingBox(){return this._boundingBox}get color(){return this._color}get node(){return this._node}get deltaColor(){return this._deltaColor}get defaultDeltaColor(){return this._defaultDeltaColor}setColor(t){this._color=t}setNode(t){this._node=t}setInitialDeltaColor(t){this._defaultDeltaColor=t,this._deltaColor=t}setDeltaColor(t){this._deltaColor=t}}var cI=function(n){return n[n.left=0]="left",n[n.right=1]="right",n[n.bottom=2]="bottom",n[n.top=3]="top",n[n.back=4]="back",n[n.front=5]="front",n}(cI||{});const AOe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],nee=[1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1];function iee(n,t,e,i,r,o,s){o.add(new pOe(r,new Us(new se(e.x,e.y,e.z),new se(e.x+e.width,e.y+e.height,e.z+e.depth)),t,i)),n.uvs.set(nee,r*nee.length),function gOe(n,t,e){const{x:i,y:r,z:o,width:s,height:a,depth:l}=t,c=i+s,d=r+a,u=o+l;let h=4*e*6*3;n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=o}(n.positions,e,r),function bOe(n,t,e,i,r,o){const{y:s,height:a}=t,c=i/(s+a-s);let d=6*r*4,u=3*d,h=6*r*6;const f=lr.getVector3Array(e);for(let A=0;A<6;A++){const y=_Oe(A,n),_=AOe[A],b=d,M=d+1,C=d+2,E=d+3;o.isHeight.set(y,d);for(const H=d+4;d{class n{static{this.MINIMAL_BUILDING_HEIGHT=1}build(e,i,r,o){const s=new mOe(us);this.floorGradient=lr.gradient("#333333","#DDDDDD",this.getMaxNodeDepth(e)),this.materials=[i];const a=e.length,h=4*a*6,f={positions:new Float32Array(3*h),uvs:new Float32Array(2*h),normals:new Float32Array(3*h),colors:new Float32Array(3*h),indices:new Uint32Array(6*a*6),ids:new Float32Array(h),deltas:new Float32Array(h),isHeight:new Float32Array(h)};for(const[A,y]of e.entries())y.isLeaf?this.addBuilding(f,y,A,s,r,o):this.addFloor(f,y,A,s);return{mesh:this.buildMeshFromIntermediateVertexData(f),desc:s}}getMaxNodeDepth(e){return e.reduce((i,{depth:r})=>Math.max(r,i),0)}mapNodeToLocalBox(e){return{x:e.x0,y:e.z0,z:e.y0,width:e.width,height:e.height,depth:e.length}}ensureMinHeightUnlessDeltaIsNegative(e,i){return i<=0?e:Math.max(e,n.MINIMAL_BUILDING_HEIGHT)}addFloor(e,i,r,o){const s=this.getMarkingColorWithGradient(i);iee(e,i,this.mapNodeToLocalBox(i),s,r,o,0)}getMarkingColorWithGradient(e){if(e.markingColor){const r=lr.getNumber(e.markingColor)&(e.depth%2==0?14540253:16777215);return lr.convertNumberToHex(r)}return this.floorGradient[e.depth]}addBuilding(e,i,r,o,s,a){const l=this.mapNodeToLocalBox(i);l.height=this.ensureMinHeightUnlessDeltaIsNegative(i.height,i.heightDelta);let c=0;a&&i.deltas&&i.deltas[s.dynamicSettings.heightMetric]&&i.heightDelta&&(c=i.heightDelta,!i.flat&&c<0&&(l.height+=Math.abs(c))),iee(e,i,l,i.color,r,o,c)}buildMeshFromIntermediateVertexData(e){const o=new Float32Array(e.colors),s=new gi;return s.setAttribute("position",new tr(e.positions,3)),s.setAttribute("normal",new tr(e.normals,3)),s.setAttribute("isHeight",new tr(e.isHeight,1)),s.setAttribute("uv",new tr(e.uvs,2)),s.setAttribute("color",new tr(e.colors,3)),s.setAttribute("deltaColor",new tr(o,3)),s.setAttribute("subGeomIdx",new tr(e.ids,1)),s.setAttribute("delta",new tr(e.deltas,1)),s.setIndex(new tr(e.indices,1)),s.addGroup(0,Number.POSITIVE_INFINITY,0),new ki(s,this.materials)}}return n})(),yOe=(()=>{class n{static{this.NUM_OF_COLOR_VECTOR_FIELDS=3}static{this.NUM_OF_VERTICES=24}static{this.LIGHTNESS_INCREASE=-10}static{this.LIGHTNESS_DECREASE=20}constructor(e,i,r){this.initMaterial(),this.geomGen=new vOe,this.material.precision="lowp";const o=this.geomGen.build(e,this.material,i,r);this.threeMesh=o.mesh,this.mapGeomDesc=o.desc,this.nodes=e,this.initDeltaColorsOnMesh(i)}getThreeMesh(){return this.threeMesh}getNodes(){return this.nodes}selectBuilding(e,i){e.setColor(i),e.setDeltaColor(i),this.setVertexColor(e.id,e.getColorVector(),e.getDeltaColorVector()),this.updateVertices()}clearSelection(e){e.resetColor(),this.setVertexColor(e.id,e.getDefaultColorVector(),e.getDefaultDeltaColorVector()),this.updateVertices()}getMeshDescription(){return this.mapGeomDesc}getBuildingByPath(e){return this.mapGeomDesc.getBuildingByPath(e)}checkMouseRayMeshIntersection(e,i){const r=this.calculatePickingRay(e,i);return this.getMeshDescription().intersect(r)}setScale(e){this.mapGeomDesc.setScales(e)}highlightBuilding(e,i,r,o){const s=Ca.buildingArrayToMap(e);for(const a of this.mapGeomDesc.buildings)this.isBuildingSelected(i,a)||(s.get(a.id)||o.get(a.id)?a.decreaseLightness(n.LIGHTNESS_INCREASE):this.adjustSurroundingBuildingColors(e,a,r),this.setVertexColor(a.id,a.getColorVector(),a.getDeltaColorVector()));this.updateVertices()}clearHighlight(e){for(const i of this.mapGeomDesc.buildings)this.isBuildingSelected(e,i)||this.setVertexColor(i.id,i.getDefaultColorVector(),i.getDefaultDeltaColorVector());this.updateVertices()}adjustSurroundingBuildingColors(e,i,r){if(r.appSettings.isPresentationMode){const o=e[0].getCenterPoint(us).distanceTo(i.getCenterPoint(us));this.decreaseLightnessByDistance(i,o)}else i.decreaseLightness(n.LIGHTNESS_DECREASE)}initDeltaColorsOnMesh(e){if(this.mapGeomDesc.buildings[0]?.node.deltas){for(const i of this.mapGeomDesc.buildings)this.setNewDeltaColor(i,e),this.setVertexColor(i.id,i.getColorVector(),i.getDeltaColorVector());this.updateVertices()}}setNewDeltaColor(e,i){const{appSettings:{mapColors:r},dynamicSettings:{heightMetric:o}}=i,{node:s}=e;if(s.flat)e.setInitialDeltaColor(r.flat);else if(s.deltas){const a=s.deltas[o];a>0&&e.setInitialDeltaColor(r.positiveDelta),a<0&&e.setInitialDeltaColor(r.negativeDelta)}}isBuildingSelected(e,i){return e&&i.equals(e)}decreaseLightnessByDistance(e,i){i>800?e.decreaseLightness(40):i>400?e.decreaseLightness(30):i>250?e.decreaseLightness(20):i>100?e.decreaseLightness(15):i>50&&e.decreaseLightness(10)}setVertexColor(e,i,r){const o=n.NUM_OF_VERTICES,s=e*o,a=this.threeMesh.geometry.getAttribute("color"),l=this.threeMesh.geometry.getAttribute("deltaColor");for(let c=s;cthis.height?this.height:this.width}isVertical(){return this.height>this.width}area(){return this.width*this.height}getBottomRight(){return this.bottomRight}}class HN{constructor(t){this.height=0,this.width=0,this.FIXED_MARGIN=.5,this.mapNode=t}getNode(){return this.mapNode}createMarginatedRectangle(t){const e=new nt(t.x+this.FIXED_MARGIN,t.y+this.FIXED_MARGIN);return new Wm(e,this.width-2*this.FIXED_MARGIN,this.height-2*this.FIXED_MARGIN)}}var VN=function(n){return n[n.Horizontal=0]="Horizontal",n[n.Vertical=1]="Vertical",n}(VN||{});class ree extends HN{constructor(){super(...arguments),this.spacer=2}getStreetThickness(){const t=this.mapNode.path.split("/"),e=this.mapNode.path.startsWith("/root/")&&3===t.length&&""!==t[2];return"/root"===this.mapNode.path||e?this.calculateRootStreetThickness(this.mapNode):this.calculateNonRootThickness(this.mapNode)}calculateNonRootThickness(t){return 2+5e-4*t.attributes.unary}calculateRootStreetThickness(t){return 8+.001*t.attributes.unary}}function dI(n,t){let e=n.attributes[t]||0;if(0===e&&n.children&&n.children.length>0)for(const i of n.children)e+=dI(i,t);return e}const Eb={calculateSize:dI,mergeDirectories:function wOe(n,t){let e=n;const i=dI(n,t);for(const r of n.children)if(!No(r)&&i===dI(r,t)){const s=e.name;e=r,e.name=`${s}/${r.name}`;break}return e},buildNodeFrom:function xOe(n,t,e,i,r){const o=!(n.children&&n.children.length>0),s=NT(n,i),a=Ca.getHeightValue(i,n,e,s),l=Math.abs(o?Math.max(t*a,Ca.MIN_BUILDING_HEIGHT):Ca.FOLDER_HEIGHT),c=n.rect.height,d=n.rect.topLeft.x,u=n.rect.topLeft.y,h=n.zOffset*Ca.FOLDER_HEIGHT;return{name:n.name,id:n.id,width:n.rect.width,height:l,length:c,depth:n.zOffset,mapNodeDepth:100,x0:d,z0:h,y0:u,isLeaf:o,attributes:n.attributes,edgeAttributes:n.edgeAttributes,deltas:n.deltas,heightDelta:n.deltas?.[i.dynamicSettings.heightMetric]?t*n.deltas[i.dynamicSettings.heightMetric]:0,visible:KL(n,o,i,s),path:n.path,link:n.link,markingColor:f2(n,i.fileSettings.markedPackages),flat:s,color:YL(n,i,Jh(i),r,s),incomingEdgePoint:LT(n.rect.width,l,c,new se(d,h,u),us),outgoingEdgePoint:LT(n.rect.width,l,c,new se(d,h,u),us)}}};var $m=function(n){return n[n.RIGHT=0]="RIGHT",n[n.LEFT=1]="LEFT",n}($m||{});class tg extends ree{constructor(t,e,i=$m.RIGHT){super(t),this.children=[],this.topRow=[],this.bottomRow=[],this.children=e,this.orientation=i}calculateDimension(t){for(const e of this.children)e.calculateDimension(t);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=Eb.calculateSize(this.mapNode,t),this.width=Math.max(this.getLength(this.topRow),this.getLength(this.bottomRow)),this.height=this.getMaxHeight(this.topRow)+this.getStreetThickness()+this.getMaxHeight(this.bottomRow)+this.spacer}layout(t,e){const i=this.getMaxHeight(this.topRow),r=this.layoutTopRow(e,i,t),o=this.layoutBottomRow(e,i,t);return[...r,this.layoutStreet(e,i),...o]}layoutTopRow(t,e,i){const r=new nt(t.x,t.y),o=[];if(this.orientation===$m.LEFT){const s=this.getLength(this.topRow);r.x+=this.width-s}for(let s=0;sMath.max(e,i.height),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===$m.LEFT?this.calculateLeftStreetOverhang(t):this.calculateRightStreetOverhang(t)}calculateLeftStreetOverhang(t){const e=this.topRow[0],i=this.bottomRow[0],r=e instanceof Sb&&e.streetRect?e.streetRect.topLeft.x-t.x:this.width-this.getLength(this.topRow),o=i instanceof Sb&&i.streetRect?i.streetRect.topLeft.x-t.x:this.width-this.getLength(this.bottomRow);return r>0&&o>0?Math.min(r,o):0}calculateRightStreetOverhang(t){const e=this.topRow.at(-1),i=this.bottomRow.at(-1),r=t.x+this.width,o=e instanceof Sb&&e.streetRect?r-e.streetRect.getBottomRight().x:this.width-this.getLength(this.topRow),s=i instanceof Sb&&i.streetRect?r-i.streetRect.getBottomRight().x:this.width-this.getLength(this.bottomRow);return o>0&&s>0?Math.min(o,s):0}}var jm=function(n){return n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n}(jm||{});class Sb extends ree{constructor(t,e,i,r=jm.UP){super(t),this.children=[],this.leftRow=[],this.rightRow=[],this.children=e,this.orientation=r}calculateDimension(t){for(const e of this.children)e.calculateDimension(t);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=Eb.calculateSize(this.mapNode,t),this.width=this.getMaxWidth(this.leftRow)+this.getStreetThickness()+this.getMaxWidth(this.rightRow)+2*this.spacer,this.height=Math.max(this.getLength(this.leftRow),this.getLength(this.rightRow))}layout(t,e){const i=this.getMaxWidth(this.leftRow),r=this.layoutLeftRow(e,i,t),o=this.layoutRightRow(e,i,t);return[...r,this.layoutStreet(e,i),...o]}layoutLeftRow(t,e,i){const r=new nt(t.x,t.y),o=[];if(this.orientation===jm.UP){const s=this.getLength(this.leftRow);r.y+=this.height-s}for(let s=0;se.mapNode.type===i.mapNode.type?0:e.mapNode.type===qa.FILE?-1:1)}splitChildrenToRows(t){this.sortChildrenByType(t);let e=0,i=0;for(const r of t)e+=r.height;for(const r of t)i<=e/2?(r instanceof tg&&(r.orientation=$m.LEFT),this.leftRow.push(r),i+=r.height):this.rightRow.push(r)}rearrangeRows(){this.orientation===jm.UP?this.leftRow.reverse():this.rightRow.reverse()}getMaxWidth(t){return t.reduce((e,i)=>Math.max(e,i.width),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===jm.UP?this.calculateTopStreetOverhang(t):this.calculateBottomStreetOverhang(t)}calculateTopStreetOverhang(t){const e=this.leftRow[0],i=this.rightRow[0],r=e instanceof tg&&e.streetRect?e.streetRect.topLeft.y-t.y:this.height-this.getLength(this.leftRow),o=i instanceof tg&&i.streetRect?i.streetRect.topLeft.y-t.y:this.height-this.getLength(this.rightRow);return r>0&&o>0?Math.min(r,o):0}calculateBottomStreetOverhang(t){const e=this.leftRow.at(-1),i=this.rightRow.at(-1),r=t.y+this.height,o=e instanceof tg&&e.streetRect?r-e.streetRect.getBottomRight().y:this.height-this.getLength(this.leftRow),s=i instanceof tg&&i.streetRect?r-i.streetRect.getBottomRight().y:this.height-this.getLength(this.rightRow);return o>0&&s>0?Math.min(o,s):0}}class COe extends HN{constructor(t){super(t)}calculateDimension(t){this.metricValue=Eb.calculateSize(this.mapNode,t);const e=Math.sqrt(this.metricValue);this.width=this.height=e}layout(t,e){return[{...this.mapNode,value:this.metricValue,rect:this.createMarginatedRectangle(e),zOffset:0}]}}class MOe extends HN{constructor(t){super(t),this.treeMapNodes=[]}calculateDimension(t){this.metricName=t,this.metricValue=Ca.calculateSize(this.mapNode,t),this.width=Math.sqrt(this.metricValue),this.height=Math.sqrt(this.metricValue)}}class oee{constructor(t){this.nodes=[],this.nodes=t}totalScaledSize(t,e,i,r){return t.reduce((o,s)=>o+this.scaledSize(s,i,r,e),0)}totalSize(t){return this.nodes.reduce((e,i)=>e+Ca.calculateSize(i,t),0)}min(t,e,i,r){return t.reduce((o,s)=>Math.min(o,this.scaledSize(s,i,r,e)),Number.MAX_VALUE)}max(t,e,i,r){return t.reduce((o,s)=>Math.max(o,this.scaledSize(s,i,r,e)),Number.MIN_VALUE)}populate(t,e,i,r){for(const o of t){const s=this.worstAspectRatio(this.nodes,e,i,r);if(!(this.worstAspectRatio([...this.nodes,o],e,i,r)0?A/u:0,_=new Wm(new nt(a,t.topLeft.y),y,u);h.push({...f,value:"File"===f.type?e:0,rect:this.applyNodeMargin(_,o),zOffset:r}),a+=y}return h}worstAspectRatio(t,e,i,r){const o=e.width,s=e.area(),a=this.totalScaledSize(t,r,i,s),l=this.min(t,r,i,s),c=this.max(t,r,i,s),d=Math.pow(o,2),u=Math.pow(a,2);return Math.max(d*c/u,u/(d*l))}}var zN=function(n){return n[n.topToBottom=0]="topToBottom",n[n.bottomToTop=1]="bottomToTop",n}(zN||{});class EOe extends oee{constructor(t){super(t)}layout(t,e,i,r,o,s=zN.topToBottom){let a=t.topLeft.y;s!==zN.topToBottom&&this.nodes.reverse();const l=this.nodes,c=t.area(),d=t.height,u=this.totalScaledSize(l,i,e,c)/d,h=[];for(const f of l){const A=this.scaledSize(f,e,c,i),y=u>0?A/u:0,_=new Wm(new nt(t.topLeft.x,a),u,y);h.push({...f,value:"File"===f.type?e:0,rect:this.applyNodeMargin(_,o),zOffset:r}),a+=y}return h}worstAspectRatio(t,e,i,r){const o=e.height,s=e.area(),a=this.totalScaledSize(t,r,i,s),l=this.min(t,r,i,s),c=this.max(t,r,i,s),d=o**2,u=a**2;return Math.max(d*c/u,u/(d*l))}}class SOe extends MOe{constructor(t){super(t)}layout(t,e=new nt(0,0)){const i=this.createMarginatedRectangle(e),r={...this.mapNode,value:this.metricValue,rect:i,zOffset:0},o=this.mapNode.children.filter(s=>Ca.calculateSize(s,this.metricName)>0);return this.treeMapNodes.push(r),o.length>0&&this.createNodes(o,i,this.metricValue,1,t),this.treeMapNodes}createNodes(t,e,i,r,o){let s=0,a=new Wm(new nt(e.topLeft.x,e.topLeft.y),e.width,e.height),l=i;const c=this.orderBySizeDescending(t);do{const d=this.createStrip(a,c.slice(s),l),u=d.totalSize(this.metricName);if(u>0){const h=this.createStripNodes(d,a,l,r,o);this.createChildrenNodes(h,r,o),a=this.remainingRectangle(a,d,l,a.area()),l-=u}s+=d.nodes.length}while(s0){const o=r.children.filter(s=>Ca.calculateSize(s,this.metricName)>0);if(o.length>0){const s=Ca.calculateSize(r,this.metricName);this.createNodes(o,r.rect,s,e+1,i)}}}orderBySizeDescending(t){return t.sort((e,i)=>Ca.calculateSize(i,this.metricName)-Ca.calculateSize(e,this.metricName))}}class ng{static createStreetLayoutNodes(t,e,i,r){const o=p2(e.files),s=i.find(A=>A.name===e.dynamicSettings.heightMetric).maxValue*o,a=e.dynamicSettings.areaMetric,l=Eb.mergeDirectories(t,a),d=this.createBoxes(l,a,e,VN.Vertical,1,e.appSettings.maxTreeMapFiles),u=new tg(l,d,0);return u.calculateDimension(a),u.layout(.02*e.dynamicSettings.margin,new nt(0,0)).map(A=>Eb.buildNodeFrom(A,this.calculateHeightScale(t,us,s),s,e,r))}static createBoxes(t,e,i,r,o,s){const a=[],l=i.dynamicSettings.areaMetric;for(let c of t.children){if(No(c)){a.push(new COe(c));continue}if(Ch(c.path,i.fileSettings.blacklist,"exclude"))continue;const d=i.appSettings.layoutAlgorithm,u=ng.countFileDescendants(c);if(d===hu.TreeMapStreet&&u<=s){const h=ng.createTreeMap(c);a.push(h)}else{c=Eb.mergeDirectories(c,l);const h=ng.createBoxes(c,e,i,1-r,o+1,s),f=ng.createStreet(c,r,h,o);a.push(f)}}return a}static createStreet(t,e,i,r){return e===VN.Horizontal?new tg(t,i,r):new Sb(t,i,r)}static createTreeMap(t){return new SOe(t)}static countFileDescendants(t){let e=0;for(const i of t.children)e+=No(i)?1:ng.countFileDescendants(i);return e}static calculateHeightScale(t,e,i){return 2*e/i*(1e-4*t.attributes.unary+.005*Math.sqrt(t.attributes.unary))}}const aee=Kt(so,n=>n.amountOfEdgePreviews),IOe=Kt(Xs,tf,aee,(n,t,e)=>new Set(FOe(n.nodeEdgeMetricsMap,t,e))),FOe=(n,t,e)=>{const i=[];if(0===e)return i;const r=n.get(t);if(void 0===r)return i;for(const o of r.keys())if(i.push(o),i.length===e)break;return i},DOe=Kt(k1,n=>n.edges),BOe=Kt(IOe,DOe,tf,(n,t,e)=>{const i=lu(t);return((n,t,e)=>{for(const i of t)if(i.visible=fu.none,void 0!==i.attributes[e]){const r=n.has(i.fromNodeName),o=n.has(i.toNodeName);r&&o?i.visible=fu.both:r?i.visible=fu.from:o&&(i.visible=fu.to)}})(n,i,e),i});let POe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.state=i,this.threeSceneService=r,this.idToBuildingService=o,this.VERTICES_PER_LINE=5,this.arrows=new Array,this.HIGHLIGHT_BUILDING_DELAY=1,this.debounceCalculation=Eu(s=>this.resetEdgesOfBuildings(s),this.HIGHLIGHT_BUILDING_DELAY),this.subscription=this.store.select(Yw).pipe(Dr(s=>{if(null!==s){const a=this.idToBuildingService.get(s);this.onBuildingHovered(a)}else this.onBuildingUnhovered()})).subscribe(),this.resetEdgesOfBuildings=s=>{this.isEdgeApplicableForBuilding(s)&&(this.clearArrows(),this.showEdgesOfBuildings(s)),this.scale()},this.onBuildingSelected=s=>{this.isEdgeApplicableForBuilding(s.building)&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()},this.onBuildingDeselected=()=>{this.clearArrows(),this.addEdgePreview()},this.threeSceneService.subscribe("onBuildingSelected",this.onBuildingSelected),this.threeSceneService.subscribe("onBuildingDeselected",this.onBuildingDeselected)}ngOnDestroy(){this.subscription.unsubscribe()}onBuildingHovered(e){this.debounceCalculation(e)}onBuildingUnhovered(){const{isEdgeMetricVisible:e}=this.state.getValue().appSettings;e&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()}clearArrows(){this.arrows=[],this.threeSceneService.edgeArrows.children.length=0}addArrow(e,i,r){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),a=100*o.edgeHeight;if(e.attributes?.[s.heightMetric]&&i.attributes?.[s.heightMetric]){const l=this.createCurve(i,e,a),c=lr.getNumber(o.mapColors[r?"outgoingEdge":"incomingEdge"]);this.highlightBuilding(r?e:i),this.setCurveColor(l,c)}}addEdgePreview(){const e=BOe(this.state.getValue());for(const i of e){const r=this.map.get(i.fromNodeName),o=this.map.get(i.toNodeName);if(r&&o&&i.visible!==fu.none&&i.visible){const s=100*this.state.getValue().appSettings.edgeHeight,a=this.createCurve(r,o,s);this.previewMode(a,i.visible)}}}addEdgeMapBasedOnNodes(e){this.map=this.getNodesAsMap(e)}scale(){const{scaling:e}=this.state.getValue().appSettings;for(const i of this.arrows)i.scale.x=e.x,i.scale.y=e.y,i.scale.z=e.z}isEdgeApplicableForBuilding(e){return this.state.getValue().appSettings.isEdgeMetricVisible&&e&&!e.node.flat}showEdgesOfBuildings(e){const i=new Map,r=this.threeSceneService.getSelectedBuilding();if(r){const{node:o}=r;i.set(o.path,o)}if(e){const{node:o}=e;i.set(o.path,o)}i.size>0?this.buildPairingEdges(i):this.addEdgePreview()}buildPairingEdges(e){const{edges:i}=this.state.getValue().fileSettings;for(const r of i){const o=this.map.get(r.fromNodeName);if(void 0===o)continue;const s=this.map.get(r.toNodeName);void 0!==s&&(e.has(o.path)?(this.addArrow(s,o,!0),this.threeSceneService.highlightBuildings()):e.has(s.path)&&(this.addArrow(s,o,!1),this.threeSceneService.highlightBuildings()))}}createCurve(e,i,r){const o=e.outgoingEdgePoint.clone(),s=i.incomingEdgePoint.clone(),a=Math.max(o.y+i.height,s.y+1)+r;return o.setY(a),s.setY(a),new gY(e.outgoingEdgePoint,o,s,i.incomingEdgePoint)}highlightBuilding(e){const i=this.threeSceneService.getMapMesh().getMeshDescription().getBuildingByPath(e.path);this.threeSceneService.addBuildingToHighlightingList(i)}setCurveColor(e,i,r=50){const o=e.getPoints(r),s=this.buildLine(o,i);s.add(this.buildArrow(o)),this.threeSceneService.edgeArrows.add(s),this.arrows.push(s)}previewMode(e,i){if(i===fu.both||i===fu.from){const r=this.makeArrowFromBezier(e,!1);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}if(i===fu.both||i===fu.to){const r=this.makeArrowFromBezier(e,!0);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}}getNodesAsMap(e){const i=new Map;for(const r of e)i.set(r.path,r);return i}makeArrowFromBezier(e,i,r=50){const o=e.getPoints(r),{incomingEdge:s,outgoingEdge:a}=this.state.getValue().appSettings.mapColors,l=i?s:a,c=i?o.slice(r+1-this.VERTICES_PER_LINE):o.slice(0,o.length-(r+1-this.VERTICES_PER_LINE));return this.buildEdge(c,lr.getNumber(l))}buildEdge(e,i){const r=this.buildLine(e,i);return r.add(this.buildArrow(e)),r}buildLine(e,i=0){const r=new gi;r.setFromPoints(e);const o=new xa({color:i,linewidth:1});return new wd(r,o)}buildArrow(e,i=0,r=10,o=10){const s=e.at(-1).clone().sub(e.at(-2).clone()).normalize(),a=e.at(-1).clone();return s.y<0&&(a.y+=r+1),new BDe(s,a,r+1,i,r,o)}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Vc),ve(jw))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),lee=(()=>{class n{constructor(e,i,r,o,s,a,l){this.store=e,this.state=i,this.threeSceneService=r,this.codeMapLabelService=o,this.codeMapArrowService=s,this.threeStatsService=a,this.codeMapMouseEventService=l,this.nodesByColor={positive:[],neutral:[],negative:[]},this.onIsLoadingFileChanged=c=>{c?this.threeSceneService?.dispose():this.threeStatsService?.resetPanels()},this.subscription=this.store.select(k4).pipe(Dr(this.onIsLoadingFileChanged)).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}render(e){const i=this.getNodes(e),r=this.sortNodes(i);this.unflattenedNodes=r.filter(({flat:o})=>!o),this.setNewMapMesh(i,r),this.getNodesMatchingColorSelector(this.unflattenedNodes),this.setLabels(this.unflattenedNodes),this.setArrows(r)}setNewMapMesh(e,i){const r=this.state.getValue(),o=new yOe(i,r,ou(r.files));this.threeSceneService.setMapMesh(e,o)}scaleMap(){this.codeMapMouseEventService.unhoverNode(),this.codeMapLabelService.scale(),this.codeMapArrowService.scale(),this.threeSceneService.scaleHeight(),this.codeMapLabelService.clearLabels(),this.setLabels(this.unflattenedNodes)}getNodes(e){const i=this.state.getValue(),r=Xs(i).nodeMetricData,{appSettings:{layoutAlgorithm:o},files:s}=i,a=ou(s);switch(o){case hu.StreetMap:case hu.TreeMapStreet:return ng.createStreetLayoutNodes(e,i,r,a);case hu.SquarifiedTreeMap:return function s3e(n,t,e,i){const r=p2(t.files),o=e.find(d=>d.name===t.dynamicSettings.heightMetric)?.maxValue*r,s=e.find(d=>d.name===t.dynamicSettings.areaMetric)?.maxValue*r,a=2*us/o;if(TZ(n)){const d=yo(n),u=[Ca.buildRootFolderForFixedFolders(d.data,a,t,i)],h=2*us+FZ(d)*(t.dynamicSettings.margin/CZ),f=h/u[0].width,A=h/u[0].length;return function a3e(n,t,e){n.x0*=e,n.y0*=t,n.width*=e,n.length*=t}(u[0],f,A),[...u,...SZ(d,t,f,A,0,0,a,o,s,i,r)]}const l=IZ(n,t,r,s),c=[];for(const d of l.treeMap)c.push(Ca.buildNodeFrom(d,a,o,t,i));return c}(e,i,r,a);default:return[]}}sortNodes(e){return e.filter(i=>i.length>0&&i.width>0).sort((i,r)=>r.height-i.height)}getNodesMatchingColorSelector(e){const i=this.state.getValue().dynamicSettings;this.nodesByColor={positive:[],negative:[],neutral:[]};for(const r of e)if(r.isLeaf){const o=r.attributes[i.colorMetric];"unary"===i.colorMetric?this.nodesByColor.positive.push(r):null!==o&&(oc.isLeaf).slice(0,s);this.setBuildingLabel(l,a)}}}setArrows(e){this.codeMapArrowService.clearArrows(),this.codeMapArrowService.addEdgeMapBasedOnNodes(e),this.codeMapArrowService.addEdgePreview()}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Vc),ve(HZ),ve(POe),ve(NZ),ve(Zw))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),uI=(()=>{class n{constructor(e,i){this.store=e,this.codeMapRenderService=i}createNodeObservable(){return Sh([this.store.select(tee),this.store.select(Um),this.createTopLevelNodeObservable()]).pipe(Qe(([o,s,a])=>o??s??a))}createTopLevelNodeObservable(){return Sh([this.store.select(Hc),this.store.select(lc)]).pipe(qi(([e])=>!!e.unifiedMapNode),Qe(([e])=>this.findTopLevelNode(e)))}findTopLevelNode(e){const i=this.codeMapRenderService.getNodes(e.unifiedMapNode),r=this.codeMapRenderService.sortNodes(i);return r.reduce((o,s)=>o.attributes.unary>s.attributes.unary?o:s,r[0])}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(lee))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),cee=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.attributeType="nodes",this.isNodeALeaf=r=>{if(r)return this.isNode(r)?r.isLeaf:No(r)}}ngOnInit(){this.isNodeALeaf$=this.nodeSelectionService.createNodeObservable().pipe(Qe(e=>this.isNodeALeaf(e))),this.attributeType$=this.store.select(((n,t)=>Kt(GT,WL,(e,i)=>"relative"===i[n][e[t]]?"x\u0342":"\u03a3"))(this.attributeType,this.metricFor))}isNode(e){return"isLeaf"in e}static{this.\u0275fac=function(i){return new(i||n)($($t),$(uI))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-chooser-type"]],inputs:{metricFor:"metricFor",attributeType:"attributeType"},decls:4,vars:6,consts:[[3,"hidden"]],template:function(i,r){1&i&&(D(0,"span",0),qe(1,"async"),ye(2),qe(3,"async"),U()),2&i&&(_e("hidden",rt(1,2,r.isNodeALeaf$)),Q(2),sn(" ",rt(3,4,r.attributeType$),"\n"))},dependencies:[Kn],encapsulation:2})}}return n})();const OOe=["*"];let dee=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-rounded-box"]],inputs:{backgroundColor:"backgroundColor"},ngContentSelectors:OOe,decls:3,vars:2,consts:[[1,"metric-value"],[1,"rounded-box"]],template:function(i,r){1&i&&(Yr(),D(0,"div",0)(1,"div",1),Vn(2),U()()),2&i&&(Q(),zi("background-color",r.backgroundColor))},styles:[".metric-value[_ngcontent-%COMP%]{height:25px}.metric-value[_ngcontent-%COMP%] .rounded-box[_ngcontent-%COMP%]{background-color:#e6e6e6;border-radius:2px;padding:2px 5px;display:inline-block}"]})}}return n})();function LOe(n,t){if(1&n&&(D(0,"cc-rounded-box",1),qe(1,"async"),ye(2),qe(3,"async"),U()),2&n){let e;const i=Le(),r=Le();_e("backgroundColor",r.calculateBackgroundColor(i.deltas[rt(1,2,r.primaryMetricNames$)[r.metricFor]])),Q(2),sn(" \u0394",null==(e=i.deltas[rt(3,4,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()," ")}}function NOe(n,t){if(1&n&&(D(0,"cc-rounded-box"),xe(1,"cc-metric-chooser-type",0),D(2,"span"),ye(3),qe(4,"async"),U()(),pt(5,LOe,4,6,"cc-rounded-box",1)),2&n){let e;const i=t,r=Le();Q(),_e("metricFor",r.metricFor),Q(2),br(null==(e=i.attributes[rt(4,3,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()),Q(2),Tt(5,i.deltas?5:-1)}}let UOe=(()=>{class n{constructor(e,i){this.nodeSelectionService=e,this.store=i,this.node$=this.nodeSelectionService.createNodeObservable(),this.primaryMetricNames$=this.store.select(GT)}calculateBackgroundColor(e){return"heightMetric"===this.metricFor&&e>0?"#b1d8a8":e<0?"#ffcccc":"#e6e6e6"}static{this.\u0275fac=function(i){return new(i||n)($(uI),$($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-chooser-value"]],inputs:{metricFor:"metricFor"},decls:2,vars:3,consts:[[3,"metricFor"],[3,"backgroundColor"]],template:function(i,r){if(1&i&&(pt(0,NOe,6,5),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.node$))?0:-1,o)}},dependencies:[cee,dee,Kn],styles:["[_nghost-%COMP%]{display:flex;gap:2px}"]})}}return n})(),HOe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase();return e.filter(o=>{let s=o.name;return("complexity"===o.name||"sonar_complexity"===o.name)&&(s+=" (formerly mcc)"),s.toLocaleLowerCase().includes(r)})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"filterMetricDataBySearchTerm",type:n,pure:!0})}}return n})();const VOe=["searchTermInput"],QOe=["matSelect"],zOe=["*"];function qOe(n,t){1&n&&xe(0,"i"),2&n&&cl("fa "+Le(2).icon)}function GOe(n,t){1&n&&ye(0," (formerly mcc) ")}function WOe(n,t){1&n&&(D(0,"span",11),ye(1),U()),2&n&&(Q(),sn(" ",t," "))}function $Oe(n,t){if(1&n&&(D(0,"mat-option",9),qe(1,"attributeDescriptorTooltip"),ye(2),pt(3,GOe,1,0),D(4,"span",10),ye(5),U(),xe(6,"br"),pt(7,WOe,2,1,"span",11),U()),2&n){let e;const i=t.$implicit,r=Le();_e("value",i.name)("title",Io(1,6,r[i.name],i.name)),Q(2),sn(" ",i.name," "),Q(),Tt(3,"complexity"==i.name||"sonar_complexity"==i.name?3:-1),Q(2),sn("(",i.maxValue,")"),Q(2),Tt(7,(e=null==r[i.name]?null:r[i.name].description)?7:-1,e)}}function jOe(n,t){if(1&n){const e=Dn();D(0,"mat-select",3,0),ze("selectionChange",function(r){return Ot(e),Rt(Le().handleMetricChanged(r.value))})("openedChange",function(r){return Ot(e),Rt(Le().handleOpenedChanged(r))}),D(2,"mat-select-trigger"),pt(3,qOe,1,2,"i",4),ye(4),U(),D(5,"mat-form-field",5),xe(6,"i",6),D(7,"input",7,1),ld("ngModelChange",function(r){Ot(e);const o=Le();return eu(o.searchTerm,r)||(o.searchTerm=r),Rt(r)}),ze("keydown",function(r){return Ot(e),Rt(Le().handleKeyDown(r))}),U()(),D(9,"div",8),Or(10,$Oe,8,9,"mat-option",9,qr),qe(12,"async"),qe(13,"filterMetricDataBySearchTerm"),U()()}if(2&n){const e=Le();_e("value",e.selectedMetricName)("disabled",e.isDisabled),Q(3),_e("ngIf",e.icon),Q(),br(e.selectedMetricName),Q(3),_e("placeholder",e.searchPlaceholder),ad("ngModel",e.searchTerm),Q(3),Lr(Io(13,8,rt(12,6,e.metricData$),e.searchTerm))}}function XOe(n,t){1&n&&xe(0,"cc-metric-chooser-value",12),2&n&&_e("metricFor",Le(2).metricFor)}function KOe(n,t){1&n&&Vn(0)}function YOe(n,t){1&n&&pt(0,XOe,1,1,"cc-metric-chooser-value",12)(1,KOe,1,0),2&n&&Tt(0,Le().metricFor?0:1)}let ux=(()=>{class n{constructor(e){this.store=e,this.type="node",this.isDisabled=!1,this.searchTerm="",this.attributeDescriptors$=this.store.select(WT),this.hideMetricSum=!1}ngOnInit(){this.metricData$=this.store.select(Xs).pipe(Qe(e=>"node"===this.type?e.nodeMetricData:e.edgeMetricData))}ngAfterViewInit(){this.matOptions.changes.subscribe(e=>{this.setFirstItemActiveOnSearch(e)})}setFirstItemActiveOnSearch(e){const i=e.filter(s=>s._selected),r=e.filter(s=>s.value.toLowerCase().startsWith(this.searchTerm.toLowerCase())).sort((s,a)=>s.value.localeCompare(a.value)),o=this.searchTerm.trim().length>0;setTimeout(()=>{o&&0===i.length&&0===r.length?this.matSelect._keyManager.setActiveItem(0):o&&0===i.length&&r.length>0&&this.matSelect._keyManager.setActiveItem(r[0]);try{document.querySelector(".mdc-list-item--selected").scrollIntoView()}catch{}})}handleOpenedChanged(e){e?(this.searchTermInput.nativeElement.focus(),this.hideMetricSum=!0):(this.searchTerm="",this.hideMetricSum=!1)}handleKeyDown(e){const{key:i}=e;"ArrowDown"!==i&&"ArrowUp"!==i&&"Enter"!==i&&"Escape"!==i&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-chooser"]],viewQuery:function(i,r){if(1&i&&(ti(VOe,5),ti(QOe,5),ti(du,5)),2&i){let o;an(o=ln())&&(r.searchTermInput=o.first),an(o=ln())&&(r.matSelect=o.first),an(o=ln())&&(r.matOptions=o)}},hostVars:2,hostBindings:function(i,r){2&i&&Un("hide-metric-value",r.hideMetricSum)},inputs:{metricFor:"metricFor",icon:"icon",selectedMetricName:"selectedMetricName",searchPlaceholder:"searchPlaceholder",handleMetricChanged:"handleMetricChanged",type:"type",isDisabled:"isDisabled"},ngContentSelectors:zOe,decls:3,vars:4,consts:[["matSelect",""],["searchTermInput",""],["panelClass","cc-metric-chooser",3,"value","disabled"],["panelClass","cc-metric-chooser",3,"selectionChange","openedChange","value","disabled"],[3,"class",4,"ngIf"],[1,"cc-metric-chooser-search-field"],["matPrefix","",1,"fa","fa-search","search-icon"],["matInput","","type","text",3,"ngModelChange","keydown","placeholder","ngModel"],[1,"cc-metric-chooser-option-container"],[3,"value","title"],[1,"metric-max-value"],[1,"metric-subtitle"],[3,"metricFor"]],template:function(i,r){if(1&i&&(Yr(),pt(0,jOe,14,11,"mat-select",2),qe(1,"async"),pt(2,YOe,2,1)),2&i){let o;Tt(0,(o=rt(1,2,r.attributeDescriptors$))?0:-1,o),Q(2),Tt(2,r.hideMetricSum?-1:2)}},dependencies:[eA,Md,EJ,Gm,JJ,du,qm,im,$0,X0,UOe,Kn,jT,HOe],styles:["[_nghost-%COMP%]{display:flex;width:100%}[_nghost-%COMP%]:hover cc-metric-chooser-value[_ngcontent-%COMP%]{display:none}i.fa[_ngcontent-%COMP%]{padding-right:8px}cc-metric-chooser-value[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{color:#000!important}"]})}}return n})(),ZOe=(()=>{class n{constructor(e){this.store=e,this.areaMetric$=this.store.select(bb)}handleAreaMetricChanged(e){this.store.dispatch(vh({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-area-metric-chooser"]],decls:2,vars:4,consts:[["icon","fa-arrows-alt","metricFor","areaMetric","searchPlaceholder","Area Metric (highest value)","title","Change area metric",3,"selectedMetricName","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),qe(1,"async")),2&i&&_e("selectedMetricName",rt(1,2,r.areaMetric$))("handleMetricChanged",r.handleAreaMetricChanged)},dependencies:[ux,Kn],encapsulation:2})}}return n})();const JOe=Kt(lc,n=>n.margin),eLe=Kt(so,n=>n.enableFloorLabels),tLe=Kt(so,n=>n.invertArea),nLe=["input"],iLe=["label"],rLe=["*"],oLe=new dt("mat-checkbox-default-options",{providedIn:"root",factory:uee});function uee(){return{color:"accent",clickAction:"check-indeterminate"}}var Ma=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Ma||{});const sLe={provide:js,useExisting:ei(()=>Xm),multi:!0};class aLe{}let lLe=0;const hee=uee();let Xm=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new aLe;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=s,this._options=a,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Fn,this.indeterminateChange=new Fn,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=Ma.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||hee,this.color=this._options.color||hee.color,this.tabIndex=parseInt(o)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++lLe}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=e,i&&(this._transitionCheckState(this._indeterminate?Ma.Indeterminate:this.checked?Ma.Checked:Ma.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==e&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ma.Checked:Ma.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case Ma.Init:if(i===Ma.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ma.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ma.Unchecked:return i===Ma.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ma.Checked:return i===Ma.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ma.Indeterminate:return i===Ma.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(vo),$(In),zl("tabindex"),$(_s,8),$(oLe,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(ti(nLe,5),ti(iLe,5),ti(Ih,5)),2&i){let o;an(o=ln())&&(r._inputElement=o.first),an(o=ln())&&(r._labelElement=o.first),an(o=ln())&&(r.ripple=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:14,hostBindings:function(i,r){2&i&&(Zd("id",r.id),pi("tabindex",null)("aria-label",null)("aria-labelledby",null),cl(r.color?"mat-"+r.color:"mat-accent"),Un("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked))},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],id:"id",required:[Ct.HasDecoratorInputTransform,"required","required",Jn],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?void 0:ba(e)],color:"color",checked:[Ct.HasDecoratorInputTransform,"checked","checked",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],indeterminate:[Ct.HasDecoratorInputTransform,"indeterminate","indeterminate",Jn]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[ui([sLe,{provide:ys,useExisting:n,multi:!0}]),rs,xr,Nr],ngContentSelectors:rLe,decls:15,vars:19,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const o=Dn();Yr(),D(0,"div",3),ze("click",function(a){return Ot(o),Rt(r._preventBubblingFromLabel(a))}),D(1,"div",4,0)(3,"div",5),ze("click",function(){return Ot(o),Rt(r._onTouchTargetClick())}),U(),D(4,"input",6,1),ze("blur",function(){return Ot(o),Rt(r._onBlur())})("click",function(){return Ot(o),Rt(r._onInputClick())})("change",function(a){return Ot(o),Rt(r._onInteractionEvent(a))}),U(),xe(6,"div",7),D(7,"div",8),Ul(),D(8,"svg",9),xe(9,"path",10),U(),Yg(),xe(10,"div",11),U(),xe(11,"div",12),U(),D(12,"label",13,2),Vn(14),U()()}if(2&i){const o=Lo(2);_e("labelPosition",r.labelPosition),Q(4),Un("mdc-checkbox--selected",r.checked),_e("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled)("id",r.inputId)("required",r.required)("tabIndex",r.disabled?-1:r.tabIndex),pi("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("name",r.name)("value",r.value),Q(7),_e("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),Q(),_e("for",r.inputId)}},dependencies:[Ih,k$],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return n})(),fee=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Xm,fr,fr]})}}return n})();const qN=(n,t,e)=>{const i=Number.parseInt(n.target.value);return ie?e:i},uLe=["knob"],hLe=["valueIndicatorContainer"];function fLe(n,t){if(1&n&&(D(0,"div",2,1)(2,"div",5)(3,"span",6),ye(4),U()()()),2&n){const e=Le();Q(4),br(e.valueIndicatorText)}}const mLe=["trackActive"],pLe=["*"];function ALe(n,t){if(1&n&&xe(0,"div"),2&n){const e=t.$implicit,i=t.$index,r=Le(3);cl(0===e?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),zi("transform",r._calcTickMarkTransform(i))}}function gLe(n,t){1&n&&Or(0,ALe,1,4,"div",8,qr),2&n&&Lr(Le(2)._tickMarks)}function _Le(n,t){if(1&n&&(D(0,"div",6,1),pt(2,gLe,2,0),U()),2&n){const e=Le();Q(2),Tt(2,e._cachedWidth?2:-1)}}function bLe(n,t){if(1&n&&xe(0,"mat-slider-visual-thumb",7),2&n){const e=Le();_e("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var fi=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(fi||{}),Tb=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(Tb||{});const hI=new dt("_MatSlider"),mee=new dt("_MatSliderThumb"),pee=new dt("_MatSliderRangeThumb"),Aee=new dt("_MatSliderVisualThumb");let vLe=(()=>{class n{constructor(e,i,r,o){this._cdr=e,this._ngZone=i,this._slider=o,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=Qt(ro),this._onPointerMove=s=>{if(this._sliderInput._isFocused)return;const a=this._hostElement.getBoundingClientRect(),l=this._slider._isCursorOnSliderThumb(s,a);this._isHovered=l,l?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)},this._onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)},this._onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")},this._onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")},this._onDragStart=s=>{0===s.button&&(this._isActive=!0,this._showActiveRipple())},this._onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()},this._hostElement=r.nativeElement}ngAfterViewInit(){this._ripple.radius=24,this._sliderInput=this._slider._getInput(this.thumbPosition),this._sliderInputEl=this._sliderInput._hostElement;const e=this._sliderInputEl;this._ngZone.runOutsideAngular(()=>{e.addEventListener("pointermove",this._onPointerMove),e.addEventListener("pointerdown",this._onDragStart),e.addEventListener("pointerup",this._onDragEnd),e.addEventListener("pointerleave",this._onMouseLeave),e.addEventListener("focus",this._onFocus),e.addEventListener("blur",this._onBlur)})}ngOnDestroy(){const e=this._sliderInputEl;e&&(e.removeEventListener("pointermove",this._onPointerMove),e.removeEventListener("pointerdown",this._onDragStart),e.removeEventListener("pointerup",this._onDragEnd),e.removeEventListener("pointerleave",this._onMouseLeave),e.removeEventListener("focus",this._onFocus),e.removeEventListener("blur",this._onBlur))}_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(e){return e?.state===fl.FADING_IN||e?.state===fl.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===fi.START?fi.END:fi.START)._showValueIndicator(),!this._slider._globalRippleOptions?.disabled||i))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:e,centered:!0,persistent:!0})}_hideRipple(e){if(e?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();const i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===fi.START?fi.END:fi.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static{this.\u0275fac=function(i){return new(i||n)($(vo),$(In),$(Nn),$(hI))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(ti(Ih,5),ti(uLe,5),ti(hLe,5)),2&i){let o;an(o=ln())&&(r._ripple=o.first),an(o=ln())&&(r._knob=o.first),an(o=ln())&&(r._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[ui([{provide:Aee,useExisting:n}]),Nr],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-mdc-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,r){1&i&&(pt(0,fLe,5,1,"div",2),xe(1,"div",3,0)(3,"div",4)),2&i&&(Tt(0,r.discrete?0:-1),Q(3),_e("matRippleDisabled",!0))},dependencies:[Ih],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}}return n})(),gee=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e;const i=this._getInput(fi.END),r=this._getInput(fi.START);i&&(i.disabled=this._disabled),r&&(r.disabled=this._disabled)}get discrete(){return this._discrete}set discrete(e){this._discrete=e,this._updateValueIndicatorUIs()}get min(){return this._min}set min(e){const i=isNaN(e)?this._min:e;this._min!==i&&this._updateMin(i)}_updateMin(e){const i=this._min;this._min=e,this._isRange?this._updateMinRange({old:i,new:e}):this._updateMinNonRange(e),this._onMinMaxOrStepChange()}_updateMinRange(e){const i=this._getInput(fi.END),r=this._getInput(fi.START),o=i.value,s=r.value;r.min=e.new,i.min=Math.max(e.new,r.value),r.max=Math.min(i.max,i.value),r._updateWidthInactive(),i._updateWidthInactive(),e.newe.old?this._onTranslateXChangeBySideEffect(r,i):this._onTranslateXChangeBySideEffect(i,r),o!==i.value&&this._onValueChange(i),s!==r.value&&this._onValueChange(r)}_updateMaxNonRange(e){const i=this._getInput(fi.END);if(i){const r=i.value;i.max=e,i._updateThumbUIByValue(),this._updateTrackUI(i),r!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(e){const i=isNaN(e)?this._step:e;this._step!==i&&this._updateStep(i)}_updateStep(e){this._step=e,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){const e=this._getInput(fi.END),i=this._getInput(fi.START),r=e.value,o=i.value,s=i.value;e.min=this._min,i.max=this._max,e.step=this._step,i.step=this._step,this._platform.SAFARI&&(e.value=e.value,i.value=i.value),e.min=Math.max(this._min,i.value),i.max=Math.min(this._max,e.value),i._updateWidthInactive(),e._updateWidthInactive(),e.value`${l}`,this._rippleRadius=24,this.startValueIndicatorText="",this.endValueIndicatorText="",this._isRange=!1,this._isRtl=!1,this._hasViewInitialized=!1,this._tickMarkTrackWidth=0,this._hasAnimation=!1,this._resizeTimer=null,this._platform=Qt(ro),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===a,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const e=this._getInput(fi.END),i=this._getInput(fi.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();const r=this._getThumb(fi.END);this._rippleRadius=r._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(e,i):this._initUINonRange(e),this._updateTrackUI(e),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(e){e.initProps(),e.initUI(),this._updateValueIndicatorUI(e),this._hasViewInitialized=!0,e._updateThumbUIByValue()}_initUIRange(e,i){e.initProps(),e.initUI(),i.initProps(),i.initUI(),e._updateMinMax(),i._updateMinMax(),e._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,e._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl="rtl"===this._dir.value,this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){const e=this._getInput(fi.END),i=this._getInput(fi.START);e._setIsLeftThumb(),i._setIsLeftThumb(),e.translateX=e._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateWidthInactive(),i._updateWidthInactive(),e._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(fi.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(fi.START)._isActive||this._getThumb(fi.END)._isActive}_getValue(e=fi.END){const i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(fi.START)?._skipUIUpdate&&!this._getInput(fi.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(e){const i=this._trackActive.nativeElement.style;i.left=e.left,i.right=e.right,i.transformOrigin=e.transformOrigin,i.transform=e.transform}_calcTickMarkTransform(e){return`translateX(${e*(this._tickMarkTrackWidth/(this._tickMarks.length-1))}px`}_onTranslateXChange(e){this._hasViewInitialized&&(this._updateThumbUI(e),this._updateTrackUI(e),this._updateOverlappingThumbUI(e))}_onTranslateXChangeBySideEffect(e,i){this._hasViewInitialized&&(e._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(e){this._hasViewInitialized&&(this._updateValueIndicatorUI(e),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){const e=this._getInput(fi.END),i=this._getInput(fi.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{const e=this._getInput(fi.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const e=this._getInput(fi.START),i=this._getInput(fi.END);return!(!e||!i)&&i.translateX-e.translateX<20}_updateOverlappingThumbClassNames(e){const i=e.getSibling(),r=this._getThumb(e.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),r._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(e){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(e))}_updateThumbUI(e){this._skipUpdate()||(this._getThumb(e.thumbPosition===fi.END?fi.END:fi.START)._hostElement.style.transform=`translateX(${e.translateX}px)`)}_updateValueIndicatorUI(e){if(this._skipUpdate())return;const i=this.displayWith(e.value);if(this._hasViewInitialized?e._valuetext=i:e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===fi.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;const r=this._getThumb(e.thumbPosition);i.length<3?r._hostElement.classList.add("mdc-slider__thumb--short-value"):r._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){const e=this._getInput(fi.END),i=this._getInput(fi.START);e&&this._updateValueIndicatorUI(e),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;const e=this._step&&this._step>0?this._step:1,r=(Math.floor(this.max/e)*e-this.min)/(this.max-this.min);this._tickMarkTrackWidth=this._cachedWidth*r-6}_updateTrackUI(e){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(e):this._updateTrackUINonRange(e))}_updateTrackUIRange(e){const i=e.getSibling();if(!i||!this._cachedWidth)return;const r=Math.abs(i.translateX-e.translateX)/this._cachedWidth;this._setTrackActiveStyles(e._isLeftThumb&&this._cachedWidth?{left:"auto",right:this._cachedWidth-i.translateX+"px",transformOrigin:"right",transform:`scaleX(${r})`}:{left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${r})`})}_updateTrackUINonRange(e){this._setTrackActiveStyles(this._isRtl?{left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-e.fillPercentage})`}:{left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${e.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||void 0===this.step||void 0===this.min||void 0===this.max)return;const e=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(e):this._updateTickMarkUINonRange(e),this._isRtl&&this._tickMarks.reverse()}_updateTickMarkUINonRange(e){const i=this._getValue();let r=Math.max(Math.floor((i-this.min)/e),0),o=Math.max(Math.floor((this.max-i)/e),0);this._isRtl?r++:o++,this._tickMarks=Array(r).fill(Tb.ACTIVE).concat(Array(o).fill(Tb.INACTIVE))}_updateTickMarkUIRange(e){const i=this._getValue(),r=this._getValue(fi.START),o=Math.max(Math.floor((r-this.min)/e),0),s=Math.max(Math.floor((i-r)/e)+1,0),a=Math.max(Math.floor((this.max-i)/e),0);this._tickMarks=Array(o).fill(Tb.INACTIVE).concat(Array(s).fill(Tb.ACTIVE),Array(a).fill(Tb.INACTIVE))}_getInput(e){return e===fi.END&&this._input?this._input:this._inputs?.length?e===fi.START?this._inputs.first:this._inputs.last:void 0}_getThumb(e){return e===fi.END?this._thumbs?.last:this._thumbs?.first}_setTransition(e){this._hasAnimation=!this._platform.IOS&&e&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(e,i){const r=i.width/2,l=e.clientY-(i.y+r);return Math.pow(e.clientX-(i.x+r),2)+Math.pow(l,2)fI),multi:!0};let fI=(()=>{class n{get value(){return ba(this._hostElement.value,0)}set value(e){const i=(e=isNaN(e)?0:e)+"";this._hasSetInitialValue?this._isActive||this._setValue(i):this._initialValue=i}_setValue(e){this._hostElement.value=e,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(void 0===this._translateX&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(e){this._translateX=e}get min(){return ba(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return ba(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return ba(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return Jn(this._hostElement.disabled)}set disabled(e){this._hostElement.disabled=e,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?0===this._translateX?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_setIsFocused(e){this._isFocused=e}constructor(e,i,r,o){this._ngZone=e,this._elementRef=i,this._cdr=r,this._slider=o,this.valueChange=new Fn,this.dragStart=new Fn,this.dragEnd=new Fn,this.thumbPosition=fi.END,this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new Ln,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=Qt(ro),this._hostElement=i.nativeElement,this._ngZone.runOutsideAngular(()=>{this._hostElement.addEventListener("pointerdown",this._onPointerDown.bind(this)),this._hostElement.addEventListener("pointermove",this._onPointerMove.bind(this)),this._hostElement.addEventListener("pointerup",this._onPointerUp.bind(this))})}ngOnDestroy(){this._hostElement.removeEventListener("pointerdown",this._onPointerDown),this._hostElement.removeEventListener("pointermove",this._onPointerMove),this._hostElement.removeEventListener("pointerup",this._onPointerUp),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,void 0===this._initialValue?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(e){if(!this.disabled&&0===e.button){if(this._platform.IOS){const i=this._slider._isCursorOnSliderThumb(e,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());return this._isActive=i,this._updateWidthActive(),void this._slider._updateDimensions()}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(e,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(e),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(e){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(e)},0)}_fixValue(e){const i=e.clientX-this._slider._cachedLeft,r=this._slider._cachedWidth,o=0===this._slider.step?1:this._slider.step,s=Math.floor((this._slider.max-this._slider.min)/o),c=Math.round((this._slider._isRtl?1-i/r:i/r)*s)/s*(this._slider.max-this._slider.min)+this._slider.min,d=Math.round(c/o)*o;if(d===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation}));this.value=d,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation})}_onPointerMove(e){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(e)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(e){const i=this._tickMarkOffset;return Math.max(Math.min(e,this._slider._cachedWidth-this._tickMarkOffset),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset}_calcTranslateXByPointerEvent(e){return e.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-2*this._tickMarkOffset}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(e){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(e)}_updateThumbUIByPointerEvent(e,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(e)),this._updateThumbUI(i)}_updateThumbUI(e){this._slider._setTransition(!!e?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(e){(this._isControlInitialized||null!==e)&&(this.value=e)}registerOnChange(e){this._onChangeFn=e,this._isControlInitialized=!0}registerOnTouched(e){this._onTouchedFn=e}setDisabledState(e){this.disabled=e}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static{this.\u0275fac=function(i){return new(i||n)($(In),$(Nn),$(vo),$(hI))}}static{this.\u0275dir=Wt({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&ze("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&pi("aria-valuetext",r._valuetext)},inputs:{value:[Ct.HasDecoratorInputTransform,"value","value",ba]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[ui([wLe,{provide:mee,useExisting:n}]),rs]})}}return n})(),GN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,u_]})}}return n})(),mI=(()=>{class n{constructor(){this.step=1,this.disabled=!1}handleSliderOnChange(e){e!==this.value&&this.onChange(e)}handleInputOnChange(e){const i=qN(e,this.min,this.max);i!==this.value&&!Number.isNaN(i)&&this.onChange(i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-slider"]],inputs:{value:"value",min:"min",max:"max",label:"label",step:"step",disabled:"disabled",onChange:"onChange"},decls:8,vars:10,consts:[[1,"cc-slider-container"],[1,"label"],[1,"slider-with-input"],[3,"disabled","step","min","max"],["matSliderThumb","",3,"input","value"],["appearance","outline","subscriptSizing","dynamic"],["matInput","","type","number",3,"input","value","disabled","min","max"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"mat-label",1),ye(2),U(),D(3,"div",2)(4,"mat-slider",3)(5,"input",4),ze("input",function(s){return r.handleInputOnChange(s)}),U()(),D(6,"mat-form-field",5)(7,"input",6),ze("input",function(s){return r.handleInputOnChange(s)}),U()()()()),2&i&&(Q(2),br(r.label),Q(2),_e("disabled",r.disabled)("step",r.step)("min",r.min)("max",r.max),Q(),_e("value",r.value),Q(2),_e("value",r.value)("disabled",r.disabled)("min",r.min)("max",r.max))},dependencies:[Md,Cd,qm,gee,fI],styles:["[_nghost-%COMP%]{width:100%;margin-top:8px;display:inline-block}"]})}}return n})();const WN={positive:!1,negative:!1,neutral:!1},MLe=wi(WN,An(A1,UT(WN))),ELe=wi(!0,An(E1,Xi(!0))),SLe=wi(!1,An(M1,Xi(!1))),_ee=hn("SET_SORTING_ORDER_ASCENDING",{_as:"props",_p:void 0}),XN=hn("TOGGLE_SORTING_ORDER_ASCENDING"),TLe=wi(!0,An(_ee,Xi(!0)),An(XN,n=>!n)),ILe=wi(!0,An(cA,Xi(!0))),FLe=wi(!0,An(r_,Xi(!0))),DLe=wi(!0,An(JE,Xi(!0))),kLe=wi(!1,An(S1,Xi(!1))),BLe=wi(!1,An(y1,Xi(!1))),PLe=wi(!1,An(v1,Xi(!1))),RLe=wi(!1,An(_1,Xi(!1))),OLe=wi(!1,An(KE,Xi(!1))),LLe=wi(!1,An(jE,Xi(!1))),s5=hu.SquarifiedTreeMap,NLe=wi(s5,An(w1,Xi(s5))),ULe=wi(100,An(x1,Xi(100))),l5=gA.Standard,HLe=wi(l5,An(C1,Xi(l5))),VLe=wi(!1,An($E,Xi(!1))),QLe=wi(!1,An(b1,Xi(!1))),zLe=wi(!0,An(kP,(n,t)=>t.value),An(XE,n=>!n)),qLe=wi(!1,An(BP,(n,t)=>t.value),An(PP,n=>!n)),yee=hn("SET_IS_FILE_EXPLORER_PINNED",{_as:"props",_p:void 0}),u5=hn("TOGGLE_IS_FILE_EXPLORER_PINNED"),$Le=lA({colorLabels:MLe,showMetricLabelNodeName:ELe,showMetricLabelNameValue:SLe,sortingOrderAscending:TLe,isSearchPanelPinned:wi(!1,An(yee,Xi(!1)),An(u5,n=>!n)),isLoadingFile:ILe,isLoadingMap:FLe,mapColors:d3e,resetCameraIfNewFileIsLoaded:DLe,showOnlyBuildingsWithEdges:kLe,isEdgeMetricVisible:zLe,isWhiteBackground:BLe,invertHeight:PLe,invertArea:QLe,hideFlatBuildings:RLe,scaling:IPe,edgeHeight:TPe,amountOfEdgePreviews:SPe,amountOfTopLabels:CPe,isPresentationMode:OLe,experimentalFeaturesEnabled:LLe,screenshotToClipboardEnabled:VLe,layoutAlgorithm:NLe,maxTreeMapFiles:ULe,sharpnessMode:HLe,isColorMetricLinkedToHeightMetric:qLe,enableFloorLabels:wi(!0,An(g1,Xi(!0)))}),jLe={colorLabels:WN,showMetricLabelNodeName:!0,showMetricLabelNameValue:!1,sortingOrderAscending:!0,isSearchPanelPinned:!1,isLoadingFile:!0,isLoadingMap:!0,mapColors:Cu,resetCameraIfNewFileIsLoaded:!0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,isWhiteBackground:!1,invertHeight:!1,invertArea:!1,hideFlatBuildings:!1,scaling:nI,edgeHeight:4,amountOfEdgePreviews:1,amountOfTopLabels:1,isPresentationMode:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:s5,maxTreeMapFiles:100,sharpnessMode:l5,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0};function wee(n,t){return n.filter(e=>!JA(e,t))}function xee(n,t){return Cee(n,t)?n:[...n,lu(t)]}function Cee(n,t){return n.some(e=>JA(e,t))}const YLe=(n,{path:t,color:e})=>{const i=GL(n,t);(!i||i.color!==e)&&n.set(t,{path:t,color:e});for(const[r,o]of n)if(o.path===t)o.color!==e&&n.delete(r);else if(o.path.startsWith(t)){const s=GL(n,o.path);s&&s.color===o.color&&n.delete(r)}},Mee=(n,t)=>{const e=n.findIndex(r=>r.path===t);if(-1!==e)return e;let i=-1;for(let r=0;r{const e=new Map(n.map(i=>[i.path,i]));for(const i of t.packages)YLe(e,i);return[...e.values()]}),An(o2,(n,t)=>{const e=Mee(n,t.path);return-1!==e?function XLe(n,t){return[...n.slice(0,t),...n.slice(t+1)]}(n,e):n})),p5=[],JLe=wi(p5,An(VP,Xi(p5)),An(dW,(n,t)=>xee(n,t.edge)),An(uW,(n,t)=>wee(n,t.edge))),A5={nodes:{},edges:{}},eNe=wi(A5,An(OP,Xi(A5)),An(LP,(n,t)=>({...n,[t.category]:{...n[t.category],[t.name]:t.attributeType}}))),g5=[],tNe=wi(g5,An(NP,Xi(g5)),An(UP,(n,t)=>xee(n,t.item)),An(t2,(n,t)=>function KLe(n,t){const e=[...n];for(const i of t)Cee(e,i)||e.push(i);return e}(n,t.items)),An(n2,(n,t)=>wee(n,t.item))),_5={},iNe=lA({markedPackages:ZLe,edges:JLe,attributeTypes:eNe,attributeDescriptors:wi(_5,An(RP,Xi(_5))),blacklist:tNe}),rNe={markedPackages:m5,edges:p5,attributeTypes:A5,attributeDescriptors:_5,blacklist:g5},b5=hm.weightedGradient,oNe=wi(b5,An(J0,Xi(b5))),v5=Q2.NAME,sNe=wi(v5,An(e2,Xi(v5))),aNe=wi(null,An(yh,Xi(null))),w5={from:0,to:0},lNe=wi(w5,An(ru,UT(w5))),cNe=wi("",An(am,Xi("")),An(P1,()=>"")),Eee=hn("SET_ALL_FOCUSED_NODES",{_as:"props",_p:void 0}),AI=hn("FOCUS_NODE",{_as:"props",_p:void 0}),hx=hn("UNFOCUS_ALL_NODES"),gI=hn("UNFOCUS_NODE");function See(n){return n?`/${n.split("/").reduce((e,i)=>(""===i||"."===i||(".."===i?e.pop():e.push(i)),e),[]).join("/")}`:void 0}function Tee(n,t){if(!n||!t)return!1;const e=See(n),i=See(t),r=i.endsWith("/")?i:`${i}/`;return e.startsWith(r)}const Iee=[],pNe=lA({colorMode:oNe,sortingOption:sNe,edgeMetric:aNe,colorRange:lNe,margin:FPe,searchPattern:cNe,focusedNodePath:wi(Iee,An(Eee,(n,t)=>[...t.value]),An(hx,()=>[]),An(AI,(n,t)=>t.value===mu.rootPath?n:Tee(t.value,n[0])?[t.value,...n]:[t.value]),An(gI,n=>n.slice(1))),heightMetric:wi(null,An(wh,Xi(null))),distributionMetric:wi(null,An(T1,Xi(null))),colorMetric:wi(null,An(pd,Xi(null))),areaMetric:wi(null,An(vh,Xi(null)))}),ANe={colorMode:b5,sortingOption:v5,edgeMetric:null,colorRange:w5,margin:50,searchPattern:"",focusedNodePath:Iee,heightMetric:null,distributionMetric:null,colorMetric:null,areaMetric:null},S5=[],gNe=wi(S5,An(B1,Xi(S5)),An(kW,(n,t)=>[...n,{file:t.file,selectedAs:er.None}]),An(oR,(n,t)=>function _Ne(n,t){const e=n.filter(r=>r.file.fileMeta.fileName!==t);return e.some(r=>r.selectedAs===er.Partial)||(e[0]={...e[0],selectedAs:er.Partial}),e}(n,t.fileName)),An(g2,(n,t)=>function bNe(n,t,e){return n.map(i=>c2(i.file,t)?{...i,selectedAs:er.Reference}:e&&c2(i.file,e)?{...i,selectedAs:er.Comparison}:{...i,selectedAs:er.None})}(n,t.referenceFile,t.comparisonFile)),An(uR,(n,t)=>function vNe(n,t){return n.map(e=>c2(e.file,t)?{...e,selectedAs:er.Reference}:e.selectedAs===er.Comparison?e:{...e,selectedAs:er.None})}(n,t.file)),An(dR,(n,t)=>function yNe(n,t){return n.map(e=>e.file===t?{...e,selectedAs:er.Comparison}:e.selectedAs===er.Reference?e:{...e,selectedAs:er.None})}(n,t.file)),An(cR,n=>function wNe(n){return n.map(t=>t.selectedAs===er.Reference?{...t,selectedAs:er.Comparison}:t.selectedAs===er.Comparison?{...t,selectedAs:er.Reference}:t)}(n)),An(P1,(n,t)=>Fee(n,t.files.map(e=>e.fileMeta.fileName))),An(sR,(n,t)=>Fee(n,t.fileNames)),An(lR,n=>n.map(t=>({...t,selectedAs:t.selectedAs===er.Partial?er.None:er.Partial}))),An(aR,n=>n.map(t=>({...t,selectedAs:er.Partial}))));function Fee(n,t){return n.map(e=>({...e,selectedAs:t.includes(e.file.fileMeta.fileName)?er.Partial:er.None}))}const xNe=wi(null,An(Ab,Xi(null))),CNe=wi(null,An(gb,(n,t)=>t.value)),TNe={fileSettings:iNe,appSettings:$Le,dynamicSettings:pNe,files:gNe,appStatus:lA({hoveredNodeId:xNe,selectedBuildingId:wi(null,An(JL,Xi(null))),rightClickedNodeData:CNe})},kee={fileSettings:rNe,appSettings:jLe,dynamicSettings:ANe,files:S5,appStatus:{hoveredNodeId:null,selectedBuildingId:null,rightClickedNodeData:null}},INe=n=>(t,e)=>function DPe(n){return n.type===xb.type}(e)?Bee(lu(t),e.value):n(t,e),FNe=new Set(["fileSettings.attributeTypes","fileSettings.attributeDescriptors","fileSettings.blacklist","fileSettings.edges","fileSettings.markedPackages","dynamicSettings.focusedNodePath","files"]);function Bee(n,t,e=[]){for(const[i,r]of Object.entries(t)){if(null==r||!DNe(n,i))continue;const o=[...e,i],s=o.join(".");n[i]="object"!=typeof r||FNe.has(s)?r:Bee(n[i],r,o)}return n}function DNe(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function PNe(n,t){if(1&n&&(D(0,"span",2),ye(1),U()),2&n){const e=Le();Q(),sn(" ",e.label,"")}}let fx=(()=>{class n{constructor(e,i){this.store=e,this.state=i}applyDefaultSettings(){const e=((n,t)=>{const e={};let i=0;for(const r of n){const o=r.split(".");let s=kee,a=e;for(const[l,c]of o.entries())void 0!==s[c]&&(a[c]||(a[c]={},i++),l===o.length-1?a[c]=s[c]:(s=s[c],a=a[c]))}return 0!==i&&CN(e),n.includes("appSettings.amountOfTopLabels")&&(e.appSettings.amountOfTopLabels=xN(JT(t))),e})(this.settingsKeys,this.state.getValue());this.store.dispatch(xb({value:e})),this.callback&&this.callback()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Zr))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-reset-settings-button"]],inputs:{settingsKeys:"settingsKeys",tooltip:"tooltip",label:"label",callback:"callback"},decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"reset-settings-button-label"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.applyDefaultSettings()}),xe(1,"i",1),pt(2,PNe,2,1,"span",2),U()),2&i&&(_e("title",r.tooltip),Q(2),Tt(2,r.label?2:-1))},styles:["button[_ngcontent-%COMP%]{color:#1b9cfc;background:none;align-items:center;display:flex;gap:4px;margin:0;padding:0}button[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:40px;width:40px;font-size:18px}button[_ngcontent-%COMP%]:hover .fa[_ngcontent-%COMP%]{border-radius:100%;background-color:#9e9e9e33}"]})}}return n})();const RNe=()=>["dynamicSettings.margin","appSettings.invertArea","appSettings.enableFloorLabels"];let ONe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.margin$=this.store.select(JOe),this.enableFloorLabels$=this.store.select(eLe),this.isInvertedArea$=this.store.select(tLe),this.applyDebouncedMargin=Eu(i=>{this.store.dispatch(e_({value:i}))},n.DEBOUNCE_TIME)}setEnableFloorLabel(e){this.store.dispatch(g1({value:e.checked}))}toggleInvertingArea(e){this.store.dispatch(b1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-area-settings-panel"]],decls:10,vars:14,consts:[[1,"options"],["title","Amount of space between buildings in percent","label","Margin",3,"value","onChange","min","max"],[3,"change","checked"],["tooltip","Reset area metric settings to their defaults","label","Reset area metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(D(0,"div",0),xe(1,"cc-slider",1),qe(2,"async"),D(3,"mat-checkbox",2),qe(4,"async"),ze("change",function(s){return r.setEnableFloorLabel(s)}),ye(5,"Enable Floor Labels"),U(),D(6,"mat-checkbox",2),qe(7,"async"),ze("change",function(s){return r.toggleInvertingArea(s)}),ye(8,"Invert Area"),U(),xe(9,"cc-reset-settings-button",3),U()),2&i&&(Q(),_e("value",rt(2,7,r.margin$))("onChange",r.applyDebouncedMargin)("min",1)("max",100),Q(2),_e("checked",rt(4,9,r.enableFloorLabels$)),Q(3),_e("checked",rt(7,11,r.isInvertedArea$)),Q(3),_e("settingsKeys",fh(13,RNe)))},dependencies:[Xm,mI,fx,Kn],styles:["[_nghost-%COMP%]{text-align:left;max-height:300px}[_nghost-%COMP%] .options[_ngcontent-%COMP%]{display:flex;flex-direction:column}"]})}}return n})();const LNe=Kt(so,n=>n.amountOfTopLabels),Pee=Kt(so,n=>n.colorLabels),NNe=Kt(Pee,n=>n.negative||n.neutral||n.positive),UNe=Kt(so,n=>n.showMetricLabelNodeName),HNe=Kt(so,n=>n.showMetricLabelNameValue),VNe=Kt(so,n=>n.scaling),QNe=Kt(so,n=>n.invertHeight),zNe=()=>["appSettings.amountOfTopLabels","appSettings.scaling.y","appSettings.invertHeight"];function qNe(n,t){if(1&n){const e=Dn();D(0,"mat-checkbox",1),qe(1,"async"),ze("change",function(r){return Ot(e),Rt(Le().setInvertHeight(r))}),ye(2," Invert Height "),U()}2&n&&_e("checked",rt(1,1,Le().invertHeight$))}let GNe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.amountOfTopLabels$=this.store.select(LNe),this.isLabelsSliderDisabled$=this.store.select(NNe),this.showMetricLabelNodeName$=this.store.select(UNe),this.showMetricLabelNodeValue$=this.store.select(HNe),this.scaling$=this.store.select(VNe),this.invertHeight$=this.store.select(QNe),this.isDeltaState$=this.store.select(Hm),this.applyDebouncedTopLabels=Eu(i=>{this.store.dispatch(sm({value:i}))},n.DEBOUNCE_TIME),this.applyDebouncedScalingY=Eu(i=>{this.store.dispatch(Z0({value:{y:i}}))},n.DEBOUNCE_TIME)}setShowMetricLabelNodeName(e){this.store.dispatch(E1({value:e.checked}))}setShowMetricLabelNameValue(e){this.store.dispatch(M1({value:e.checked}))}setInvertHeight(e){this.store.dispatch(v1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-height-settings-panel"]],decls:16,vars:32,consts:[["label","Labels",1,"cc-height-settings-panel-row",3,"disabled","title","min","max","value","onChange"],[3,"change","checked"],["title","Height","label","Height",1,"cc-height-settings-panel-row",3,"step","min","max","value","onChange"],[3,"checked"],["tooltip","Reset height metric settings to their defaults","label","Reset height metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(xe(0,"cc-slider",0),qe(1,"async"),qe(2,"async"),qe(3,"async"),qe(4,"async"),D(5,"mat-checkbox",1),qe(6,"async"),ze("change",function(s){return r.setShowMetricLabelNodeName(s)}),ye(7,"Show label node names\n"),U(),D(8,"mat-checkbox",1),qe(9,"async"),ze("change",function(s){return r.setShowMetricLabelNameValue(s)}),ye(10,"Show label node metrics\n"),U(),xe(11,"cc-slider",2),qe(12,"async"),pt(13,qNe,3,3,"mat-checkbox",3),qe(14,"async"),xe(15,"cc-reset-settings-button",4)),2&i&&(_e("disabled",rt(1,15,r.isLabelsSliderDisabled$))("title",rt(2,17,r.isLabelsSliderDisabled$)?"Disabled because color labels are used":"Display the labels of the "+rt(3,19,r.amountOfTopLabels$)+" highest buildings")("min",0)("max",50)("value",rt(4,21,r.amountOfTopLabels$))("onChange",r.applyDebouncedTopLabels),Q(5),_e("checked",rt(6,23,r.showMetricLabelNodeName$)),Q(3),_e("checked",rt(9,25,r.showMetricLabelNodeValue$)),Q(3),_e("step",1)("min",1)("max",5)("value",rt(12,27,r.scaling$).y)("onChange",r.applyDebouncedScalingY),Q(2),Tt(13,rt(14,29,r.isDeltaState$)?-1:13),Q(2),_e("settingsKeys",fh(31,zNe)))},dependencies:[Xm,mI,fx,Kn],encapsulation:2})}}return n})(),WNe=(()=>{class n{constructor(e){this.store=e,this.heightMetric$=this.store.select(ex)}handleHeightMetricChanged(e){this.store.dispatch(wh({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-height-metric-chooser"]],decls:2,vars:4,consts:[["icon","fa-arrows-v","metricFor","heightMetric","searchPlaceholder","Height Metric (highest value)","title","Change height metric",3,"selectedMetricName","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),qe(1,"async")),2&i&&_e("selectedMetricName",rt(1,2,r.heightMetric$))("handleMetricChanged",r.handleHeightMetricChanged)},dependencies:[ux,Kn],encapsulation:2})}}return n})();const F5=Kt(so,n=>n.isColorMetricLinkedToHeightMetric);let $Ne=(()=>{class n{constructor(e){this.store=e,this.isColorMetricLinkedToHeightMetric$=this.store.select(F5)}toggleIsColorMetricLinkedToHeightMetric(){this.store.dispatch(PP())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-link-color-metric-to-height-metric-button"]],decls:4,vars:6,consts:[[1,"cc-link-metrics-button",3,"click","title"],[3,"ngClass"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),ze("click",function(){return r.toggleIsColorMetricLinkedToHeightMetric()}),xe(2,"i",1),qe(3,"async"),U()),2&i&&(Ua("title",rt(1,2,r.isColorMetricLinkedToHeightMetric$)?"Unlink Height and Color Metric":"Link Height and Color Metric"),Q(2),_e("ngClass",rt(3,4,r.isColorMetricLinkedToHeightMetric$)?"fa fa-chain-broken":"fa fa-link"))},dependencies:[nu,Kn],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;height:100%}[_nghost-%COMP%] .cc-link-metrics-button[_ngcontent-%COMP%]{width:50px;height:100%;padding:0;margin:0;background-color:transparent}[_nghost-%COMP%] .cc-link-metrics-button[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{color:#444}[_nghost-%COMP%] .cc-link-metrics-button[_ngcontent-%COMP%]:hover{background-color:#c8c8c8}"]})}}return n})(),jNe=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Nm),this.isColorMetricLinkedToHeightMetric$=this.store.select(F5)}handleColorMetricChanged(e){this.store.dispatch(pd({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-metric-chooser"]],decls:4,vars:10,consts:[["icon","fa-paint-brush","metricFor","colorMetric","searchPlaceholder","Color Metric (highest value)",3,"selectedMetricName","handleMetricChanged","isDisabled"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),qe(1,"async"),qe(2,"async"),qe(3,"async")),2&i&&(_e("selectedMetricName",rt(1,4,r.colorMetric$))("handleMetricChanged",r.handleColorMetricChanged)("isDisabled",rt(2,6,r.isColorMetricLinkedToHeightMetric$)),pi("title",rt(3,8,r.isColorMetricLinkedToHeightMetric$)?"Currently linked to height metric":"Change color metric"))},dependencies:[ux,Kn],encapsulation:2})}}return n})();const Ree=Kt(lc,n=>n.colorMode),XNe=Kt(pb,Hm,n=>({leftColor:n.positive,middleColor:n.neutral,rightColor:n.negative})),KNe=Kt(Jh,gJ,(n,t)=>({values:n.values,min:n.minValue,max:n.maxValue,from:t.from,to:t.to}));function Oee(n,t){let e;if(void 0===t)for(const i of n)null!=i&&(e=i)&&(e=i);else{let i=-1;for(let r of n)null!=(r=t(r,++i,n))&&(e=r)&&(e=r)}return e}function ZNe(n){return n}function JNe(n){return"translate("+n+",0)"}function e5e(n){return"translate(0,"+n+")"}function t5e(n){return t=>+n(t)}function n5e(n,t){return t=Math.max(0,n.bandwidth()-2*t)/2,n.round()&&(t=Math.round(t)),e=>+n(e)+t}function i5e(){return!this.__axis}function vI(n,t){var e=[],i=null,r=null,o=6,s=6,a=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=1===n||4===n?-1:1,d=4===n||2===n?"x":"y",u=1===n||3===n?JNe:e5e;function h(f){var A=i??(t.ticks?t.ticks.apply(t,e):t.domain()),y=r??(t.tickFormat?t.tickFormat.apply(t,e):ZNe),_=Math.max(o,0)+a,b=t.range(),M=+b[0]+l,C=+b[b.length-1]+l,E=(t.bandwidth?n5e:t5e)(t.copy(),l),L=f.selection?f.selection():f,N=L.selectAll(".domain").data([null]),H=L.selectAll(".tick").data(A,t).order(),j=H.exit(),R=H.enter().append("g").attr("class","tick"),B=H.select("line"),ee=H.select("text");N=N.merge(N.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),H=H.merge(R),B=B.merge(R.append("line").attr("stroke","currentColor").attr(d+"2",c*o)),ee=ee.merge(R.append("text").attr("fill","currentColor").attr(d,c*_).attr("dy",1===n?"0em":3===n?"0.71em":"0.32em")),f!==L&&(N=N.transition(f),H=H.transition(f),B=B.transition(f),ee=ee.transition(f),j=j.transition(f).attr("opacity",1e-6).attr("transform",function(we){return isFinite(we=E(we))?u(we+l):this.getAttribute("transform")}),R.attr("opacity",1e-6).attr("transform",function(we){var Ee=this.parentNode.__axis;return u((Ee&&isFinite(Ee=Ee(we))?Ee:E(we))+l)})),j.remove(),N.attr("d",4===n||2===n?s?"M"+c*s+","+M+"H"+l+"V"+C+"H"+c*s:"M"+l+","+M+"V"+C:s?"M"+M+","+c*s+"V"+l+"H"+C+"V"+c*s:"M"+M+","+l+"H"+C),H.attr("opacity",1).attr("transform",function(we){return u(E(we)+l)}),B.attr(d+"2",c*o),ee.attr(d,c*_).text(y),L.filter(i5e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===n?"start":4===n?"end":"middle"),L.each(function(){this.__axis=E})}return h.scale=function(f){return arguments.length?(t=f,h):t},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(f){return arguments.length?(e=null==f?[]:Array.from(f),h):e.slice()},h.tickValues=function(f){return arguments.length?(i=null==f?null:Array.from(f),h):i&&i.slice()},h.tickFormat=function(f){return arguments.length?(r=f,h):r},h.tickSize=function(f){return arguments.length?(o=s=+f,h):o},h.tickSizeInner=function(f){return arguments.length?(o=+f,h):o},h.tickSizeOuter=function(f){return arguments.length?(s=+f,h):s},h.tickPadding=function(f){return arguments.length?(a=+f,h):a},h.offset=function(f){return arguments.length?(l=+f,h):l},h}function s5e(){}function k5(n){return null==n?s5e:function(){return this.querySelector(n)}}function c5e(){return[]}function Nee(n){return null==n?c5e:function(){return this.querySelectorAll(n)}}function Uee(n){return function(){return this.matches(n)}}function Hee(n){return function(t){return t.matches(n)}}var h5e=Array.prototype.find;function m5e(){return this.firstElementChild}var A5e=Array.prototype.filter;function g5e(){return Array.from(this.children)}function Vee(n){return new Array(n.length)}function yI(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}function x5e(n,t,e,i,r,o){for(var a,s=0,l=t.length,c=o.length;st?1:n>=t?0:NaN}yI.prototype={constructor:yI,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};var B5="http://www.w3.org/1999/xhtml";const Qee={svg:"http://www.w3.org/2000/svg",xhtml:B5,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function wI(n){var t=n+="",e=t.indexOf(":");return e>=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),Qee.hasOwnProperty(t)?{space:Qee[t],local:n}:n}function H5e(n){return function(){this.removeAttribute(n)}}function V5e(n){return function(){this.removeAttributeNS(n.space,n.local)}}function Q5e(n,t){return function(){this.setAttribute(n,t)}}function z5e(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function q5e(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function G5e(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function zee(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function $5e(n){return function(){this.style.removeProperty(n)}}function j5e(n,t,e){return function(){this.style.setProperty(n,t,e)}}function X5e(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Ib(n,t){return n.style.getPropertyValue(t)||zee(n).getComputedStyle(n,null).getPropertyValue(t)}function Y5e(n){return function(){delete this[n]}}function Z5e(n,t){return function(){this[n]=t}}function J5e(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function qee(n){return n.trim().split(/^|\s+/)}function P5(n){return n.classList||new Gee(n)}function Gee(n){this._node=n,this._names=qee(n.getAttribute("class")||"")}function Wee(n,t){for(var e=P5(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Kee=[null];function uc(n,t){this._groups=n,this._parents=t}function Yee(){return new uc([[document.documentElement]],Kee)}uc.prototype=Yee.prototype={constructor:uc,select:function a5e(n){"function"!=typeof n&&(n=k5(n));for(var t=this._groups,e=t.length,i=new Array(e),r=0;r=C&&(C=M+1);!(L=_[C])&&++C=0;)(s=i[r])&&(o&&4^s.compareDocumentPosition(o)&&o.parentNode.insertBefore(s,o),o=s);return this},sort:function k5e(n){function t(u,h){return u&&h?n(u.__data__,h.__data__):!u-!h}n||(n=B5e);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?$5e:"function"==typeof t?X5e:j5e)(n,t,e??"")):Ib(this.node(),n)},property:function eUe(n,t){return arguments.length>1?this.each((null==t?Y5e:"function"==typeof t?J5e:Z5e)(n,t)):this.node()[n]},classed:function rUe(n,t){var e=qee(n+"");if(arguments.length<2){for(var i=P5(this.node()),r=-1,o=e.length;++r=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}})}(n+""),o=i.length;if(!(arguments.length<2)){for(a=t?DUe:FUe,r=0;r{}};function Zee(){for(var i,n=0,t=arguments.length,e={};n=0&&(i=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:i}})}(n+"",e),o=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++o0)for(var r,o,e=new Array(r),i=0;i=0&&n._call.call(void 0,t),n=n._next;--Fb}()}finally{Fb=0,function GUe(){for(var n,e,t=CI,i=1/0;t;)t._call?(i>t._time&&(i=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:CI=e);_x=n,O5(i)}(),ig=0}}function qUe(){var n=bx.now(),t=n-MI;t>ete&&(EI-=t,MI=n)}function O5(n){Fb||(Ax&&(Ax=clearTimeout(Ax)),n-ig>24?(n<1/0&&(Ax=setTimeout(ite,n-bx.now()-EI)),gx&&(gx=clearInterval(gx))):(gx||(MI=bx.now(),gx=setInterval(qUe,ete)),Fb=1,tte(ite)))}function rte(n,t,e){var i=new SI;return i.restart(r=>{i.stop(),n(r+t)},t=null==t?0:+t,e),i}SI.prototype=nte.prototype={constructor:SI,restart:function(n,t,e){if("function"!=typeof n)throw new TypeError("callback is not a function");e=(null==e?R5():+e)+(null==t?0:+t),!this._next&&_x!==this&&(_x?_x._next=this:CI=this,_x=this),this._call=n,this._time=e,O5()},stop:function(){this._call&&(this._call=null,this._time=1/0,O5())}};var WUe=VUe("start","end","cancel","interrupt"),$Ue=[],ote=0,TI=3;function FI(n,t,e,i,r,o){var s=n.__transition;if(s){if(e in s)return}else n.__transition={};!function jUe(n,t,e){var r,i=n.__transition;function s(c){var d,u,h,f;if(1!==e.state)return l();for(d in i)if((f=i[d]).name===e.name){if(f.state===TI)return rte(s);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",n,n.__data__,f.index,f.group),delete i[d]):+dote)throw new Error("too late; already scheduled");return e}function Tu(n,t){var e=Ed(n,t);if(e.state>TI)throw new Error("too late; already running");return e}function Ed(n,t){var e=n.__transition;if(!e||!(e=e[t]))throw new Error("transition not found");return e}function Sd(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}var DI,lte=180/Math.PI,H5={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cte(n,t,e,i,r,o){var s,a,l;return(s=Math.sqrt(n*n+t*t))&&(n/=s,t/=s),(l=n*e+t*i)&&(e-=n*l,i-=t*l),(a=Math.sqrt(e*e+i*i))&&(e/=a,i/=a,l/=a),n*i180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(r(u)+"rotate(",null,i)-2,x:Sd(c,d)})):d&&u.push(r(u)+"rotate("+d+i)}(c.rotate,d.rotate,u,h),function a(c,d,u,h){c!==d?h.push({i:u.push(r(u)+"skewX(",null,i)-2,x:Sd(c,d)}):d&&u.push(r(u)+"skewX("+d+i)}(c.skewX,d.skewX,u,h),function l(c,d,u,h,f,A){if(c!==u||d!==h){var y=f.push(r(f)+"scale(",null,",",null,")");A.push({i:y-4,x:Sd(c,u)},{i:y-2,x:Sd(d,h)})}else(1!==u||1!==h)&&f.push(r(f)+"scale("+u+","+h+")")}(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(f){for(var _,A=-1,y=h.length;++A>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?BI(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?BI(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=o8e.exec(n))?new vl(t[1],t[2],t[3],1):(t=s8e.exec(n))?new vl(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=a8e.exec(n))?BI(t[1],t[2],t[3],t[4]):(t=l8e.exec(n))?BI(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=c8e.exec(n))?_te(t[1],t[2]/100,t[3]/100,1):(t=d8e.exec(n))?_te(t[1],t[2]/100,t[3]/100,t[4]):hte.hasOwnProperty(n)?pte(hte[n]):"transparent"===n?new vl(NaN,NaN,NaN,0):null}function pte(n){return new vl(n>>16&255,n>>8&255,255&n,1)}function BI(n,t,e,i){return i<=0&&(n=t=e=NaN),new vl(n,t,e,i)}function PI(n,t,e,i){return 1===arguments.length?function f8e(n){return n instanceof vx||(n=rg(n)),n?new vl((n=n.rgb()).r,n.g,n.b,n.opacity):new vl}(n):new vl(n,t,e,i??1)}function vl(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function Ate(){return`#${sg(this.r)}${sg(this.g)}${sg(this.b)}`}function gte(){const n=RI(this.opacity);return`${1===n?"rgb(":"rgba("}${og(this.r)}, ${og(this.g)}, ${og(this.b)}${1===n?")":`, ${n})`}`}function RI(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function og(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function sg(n){return((n=og(n))<16?"0":"")+n.toString(16)}function _te(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new Td(n,t,e,i)}function bte(n){if(n instanceof Td)return new Td(n.h,n.s,n.l,n.opacity);if(n instanceof vx||(n=rg(n)),!n)return new Td;if(n instanceof Td)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),s=NaN,a=o-r,l=(o+r)/2;return a?(s=t===o?(e-i)/a+6*(e0&&l<1?0:s,new Td(s,a,l,n.opacity)}function Td(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function vte(n){return(n=(n||0)%360)<0?n+360:n}function OI(n){return Math.max(0,Math.min(1,n||0))}function z5(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}function yte(n,t,e,i,r){var o=n*n,s=o*n;return((1-3*n+3*o-s)*t+(4-6*o+3*s)*e+(1+3*n+3*o-3*s)*i+s*r)/6}Q5(vx,rg,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:fte,formatHex:fte,formatHex8:function u8e(){return this.rgb().formatHex8()},formatHsl:function h8e(){return bte(this).formatHsl()},formatRgb:mte,toString:mte}),Q5(vl,PI,ute(vx,{brighter(n){return n=null==n?kI:Math.pow(kI,n),new vl(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new vl(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new vl(og(this.r),og(this.g),og(this.b),RI(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ate,formatHex:Ate,formatHex8:function m8e(){return`#${sg(this.r)}${sg(this.g)}${sg(this.b)}${sg(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:gte,toString:gte})),Q5(Td,function p8e(n,t,e,i){return 1===arguments.length?bte(n):new Td(n,t,e,i??1)},ute(vx,{brighter(n){return n=null==n?kI:Math.pow(kI,n),new Td(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new Td(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new vl(z5(n>=240?n-240:n+120,r,i),z5(n,r,i),z5(n<120?n+240:n-120,r,i),this.opacity)},clamp(){return new Td(vte(this.h),OI(this.s),OI(this.l),RI(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const n=RI(this.opacity);return`${1===n?"hsl(":"hsla("}${vte(this.h)}, ${100*OI(this.s)}%, ${100*OI(this.l)}%${1===n?")":`, ${n})`}`}}));const q5=n=>()=>n;function xte(n,t){var e=t-n;return e?function wte(n,t){return function(e){return n+e*t}}(n,e):q5(isNaN(n)?t:n)}const LI=function n(t){var e=function b8e(n){return 1==(n=+n)?xte:function(t,e){return e-t?function _8e(n,t,e){return n=Math.pow(n,e),t=Math.pow(t,e)-n,e=1/e,function(i){return Math.pow(n+i*t,e)}}(t,e,n):q5(isNaN(t)?e:t)}}(t);function i(r,o){var s=e((r=PI(r)).r,(o=PI(o)).r),a=e(r.g,o.g),l=e(r.b,o.b),c=xte(r.opacity,o.opacity);return function(d){return r.r=s(d),r.g=a(d),r.b=l(d),r.opacity=c(d),r+""}}return i.gamma=n,i}(1);function Cte(n){return function(t){var s,a,e=t.length,i=new Array(e),r=new Array(e),o=new Array(e);for(s=0;s=1?(e=1,t-1):Math.floor(e*t),r=n[i],o=n[i+1];return yte((e-i/t)*t,i>0?n[i-1]:2*r-o,r,o,ie&&(o=t.slice(e,o),a[s]?a[s]+=o:a[++s]=o),(i=i[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,l.push({i:s,x:Sd(i,r)})),e=W5.lastIndex;return e=0&&(t=t.slice(0,e)),!t||"start"===t})}(t)?U5:Tu;return function(){var s=o(this,n),a=s.on;a!==i&&(r=(i=a).copy()).on(t,e),s.on=r}}(e,n,t))},attr:function T8e(n,t){var e=wI(n),i="transform"===e?e8e:Ete;return this.attrTween(n,"function"==typeof t?(e.local?S8e:E8e)(e,i,V5(this,"attr."+n,t)):null==t?(e.local?x8e:w8e)(e):(e.local?M8e:C8e)(e,i,t))},attrTween:function B8e(n,t){var e="attr."+n;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;var i=wI(n);return this.tween(e,(i.local?D8e:k8e)(i,t))},style:function o6e(n,t,e){var i="transform"==(n+="")?JUe:Ete;return null==t?this.styleTween(n,function t6e(n,t){var e,i,r;return function(){var o=Ib(this,n),s=(this.style.removeProperty(n),Ib(this,n));return o===s?null:o===e&&s===i?r:r=t(e=o,i=s)}}(n,i)).on("end.style."+n,Ste(n)):"function"==typeof t?this.styleTween(n,function i6e(n,t,e){var i,r,o;return function(){var s=Ib(this,n),a=e(this),l=a+"";return null==a&&(this.style.removeProperty(n),l=a=Ib(this,n)),s===l?null:s===i&&l===r?o:(r=l,o=t(i=s,a))}}(n,i,V5(this,"style."+n,t))).each(function r6e(n,t){var e,i,r,a,o="style."+t,s="end."+o;return function(){var l=Tu(this,n),c=l.on,d=null==l.value[o]?a||(a=Ste(t)):void 0;(c!==e||r!==d)&&(i=(e=c).copy()).on(s,r=d),l.on=i}}(this._id,n)):this.styleTween(n,function n6e(n,t,e){var i,o,r=e+"";return function(){var s=Ib(this,n);return s===r?null:s===i?o:o=t(i=s,e)}}(n,i,t),e).on("end.style."+n,null)},styleTween:function l6e(n,t,e){var i="style."+(n+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==t)return this.tween(i,null);if("function"!=typeof t)throw new Error;return this.tween(i,function a6e(n,t,e){var i,r;function o(){var s=t.apply(this,arguments);return s!==r&&(i=(r=s)&&function s6e(n,t,e){return function(i){this.style.setProperty(n,t.call(this,i),e)}}(n,s,e)),i}return o._value=t,o}(n,t,e??""))},text:function u6e(n){return this.tween("text","function"==typeof n?function d6e(n){return function(){var t=n(this);this.textContent=t??""}}(V5(this,"text",n)):function c6e(n){return function(){this.textContent=n}}(null==n?"":n+""))},textTween:function m6e(n){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==n)return this.tween(t,null);if("function"!=typeof n)throw new Error;return this.tween(t,function f6e(n){var t,e;function i(){var r=n.apply(this,arguments);return r!==e&&(t=(e=r)&&function h6e(n){return function(t){this.textContent=n.call(this,t)}}(r)),t}return i._value=n,i}(n))},remove:function K8e(){return this.on("end.remove",function X8e(n){return function(){var t=this.parentNode;for(var e in this.__transition)if(+e!==n)return;t&&t.removeChild(this)}}(this._id))},tween:function i8e(n,t){var e=this._id;if(n+="",arguments.length<2){for(var s,i=Ed(this.node(),e).tween,r=0,o=i.length;r2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(r?"interrupt":"cancel",n,n.__data__,i.index,i.group),delete e[s]):o=!1;o&&delete n.__transition}}(this,n)})},px.prototype.transition=function w6e(n){var t,e;n instanceof af?(t=n._id,n=n._name):(t=Tte(),(e=v6e).time=R5(),n=null==n?null:n+"");for(var i=this._groups,r=i.length,o=0;o1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Pb(n){return(n=HI(Math.abs(n)))?n[1]:NaN}["w","e"].map(xx),["n","s"].map(xx),["n","w","e","s","nw","ne","sw","se"].map(xx);var Pte,B6e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function VI(n){if(!(t=B6e.exec(n)))throw new Error("invalid format: "+n);var t;return new Y5({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Y5(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function Rte(n,t){var e=HI(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}VI.prototype=Y5.prototype,Y5.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Ote={"%":(n,t)=>(100*n).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:function F6e(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)},e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Rte(100*n,t),r:Rte,s:function R6e(n,t){var e=HI(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Pte=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,s=i.length;return o===s?i:o>s?i+new Array(o-s+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+HI(n,Math.max(0,t+o-1))[0]},X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function Lte(n){return n}var QI,zI,Hte,Nte=Array.prototype.map,Ute=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];!function L6e(n){QI=function O6e(n){var t=void 0===n.grouping||void 0===n.thousands?Lte:function D6e(n,t){return function(e,i){for(var r=e.length,o=[],s=0,a=n[0],l=0;r>0&&a>0&&(l+a+1>i&&(a=Math.max(1,i-l)),o.push(e.substring(r-=a,r+a)),!((l+=a+1)>i));)a=n[s=(s+1)%n.length];return o.reverse().join(t)}}(Nte.call(n.grouping,Number),n.thousands+""),e=void 0===n.currency?"":n.currency[0]+"",i=void 0===n.currency?"":n.currency[1]+"",r=void 0===n.decimal?".":n.decimal+"",o=void 0===n.numerals?Lte:function k6e(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}(Nte.call(n.numerals,String)),s=void 0===n.percent?"%":n.percent+"",a=void 0===n.minus?"\u2212":n.minus+"",l=void 0===n.nan?"NaN":n.nan+"";function c(u){var h=(u=VI(u)).fill,f=u.align,A=u.sign,y=u.symbol,_=u.zero,b=u.width,M=u.comma,C=u.precision,E=u.trim,L=u.type;"n"===L?(M=!0,L="g"):Ote[L]||(void 0===C&&(C=12),E=!0,L="g"),(_||"0"===h&&"="===f)&&(_=!0,h="0",f="=");var N="$"===y?e:"#"===y&&/[boxX]/.test(L)?"0"+L.toLowerCase():"",H="$"===y?i:/[%p]/.test(L)?s:"",j=Ote[L],R=/[defgprs%]/.test(L);function B(ee){var ne,Ie,te,we=N,Ee=H;if("c"===L)Ee=j(ee)+Ee,ee="";else{var Ae=(ee=+ee)<0||1/ee<0;if(ee=isNaN(ee)?l:j(Math.abs(ee),C),E&&(ee=function P6e(n){e:for(var r,t=n.length,e=1,i=-1;e0&&(i=0)}return i>0?n.slice(0,i)+n.slice(r+1):n}(ee)),Ae&&0==+ee&&"+"!==A&&(Ae=!1),we=(Ae?"("===A?A:a:"-"===A||"("===A?"":A)+we,Ee=("s"===L?Ute[8+Pte/3]:"")+Ee+(Ae&&"("===A?")":""),R)for(ne=-1,Ie=ee.length;++ne(te=ee.charCodeAt(ne))||te>57){Ee=(46===te?r+ee.slice(ne+1):ee.slice(ne))+Ee,ee=ee.slice(0,ne);break}}M&&!_&&(ee=t(ee,1/0));var le=we.length+ee.length+Ee.length,Pe=le>1)+we+ee+Ee+Pe.slice(le);break;default:ee=Pe+we+ee+Ee}return o(ee)}return C=void 0===C?6:/[gprs]/.test(L)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C)),B.toString=function(){return u+""},B}return{format:c,formatPrefix:function d(u,h){var f=c(((u=VI(u)).type="f",u)),A=3*Math.max(-8,Math.min(8,Math.floor(Pb(h)/3))),y=Math.pow(10,-A),_=Ute[8+A/3];return function(b){return f(y*b)+_}}}}(n),zI=QI.format,Hte=QI.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const N6e=Math.sqrt(50),U6e=Math.sqrt(10),H6e=Math.sqrt(2);function qI(n,t,e){const i=(t-n)/Math.max(0,e),r=Math.floor(Math.log10(i)),o=i/Math.pow(10,r),s=o>=N6e?10:o>=U6e?5:o>=H6e?2:1;let a,l,c;return r<0?(c=Math.pow(10,-r)/s,a=Math.round(n*c),l=Math.round(t*c),a/ct&&--l,c=-c):(c=Math.pow(10,r)*s,a=Math.round(n/c),l=Math.round(t/c),a*ct&&--l),lt?1:n>=t?0:NaN}function z6e(n,t){return null==n||null==t?NaN:tn?1:t>=n?0:NaN}function Vte(n){let t,e,i;function r(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<0?c=u+1:d=u}while(cGI(n(a),l),i=(a,l)=>n(a)-l):(t=n===GI||n===z6e?n:q6e,e=n,i=n),{left:r,center:function s(a,l,c=0,d=a.length){const u=r(a,l,c,d-1);return u>c&&i(a[u-1],l)>-i(a[u],l)?u-1:u},right:function o(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<=0?c=u+1:d=u}while(c0))return[];if((n=+n)==(t=+t))return[n];const i=t=r))return[];const a=o-r+1,l=new Array(a);if(i)if(s<0)for(let c=0;c0;){if((c=Z5(s,a,e))===l)return i[r]=s,i[o]=a,t(i);if(c>0)s=Math.floor(s/c)*c,a=Math.ceil(a/c)*c;else{if(!(c<0))break;s=Math.ceil(s*c)/c,a=Math.floor(a*c)/c}l=c}return n},n}function tU(){var n=function s7e(){return function o7e(){var i,r,o,a,l,c,n=qte,t=qte,e=J5,s=Rb;function d(){var h=Math.min(n.length,t.length);return s!==Rb&&(s=function t7e(n,t){var e;return n>t&&(e=n,n=t,t=e),function(i){return Math.max(n,Math.min(t,i))}}(n[0],n[h-1])),a=h>2?i7e:n7e,l=c=null,u}function u(h){return null==h||isNaN(h=+h)?o:(l||(l=a(n.map(i),t,e)))(i(s(h)))}return u.invert=function(h){return s(r((c||(c=a(t,n.map(i),Sd)))(h)))},u.domain=function(h){return arguments.length?(n=Array.from(h,e7e),d()):n.slice()},u.range=function(h){return arguments.length?(t=Array.from(h),d()):t.slice()},u.rangeRound=function(h){return t=Array.from(h),e=Z6e,d()},u.clamp=function(h){return arguments.length?(s=!!h||Rb,d()):s!==Rb},u.interpolate=function(h){return arguments.length?(e=h,d()):e},u.unknown=function(h){return arguments.length?(o=h,u):o},function(h,f){return i=h,r=f,d()}}()(Rb,Rb)}();return n.copy=function(){return function r7e(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}(n,tU())},a7e.apply(n,arguments),h7e(n)}function Gte(n){return"string"==typeof n?new uc([[document.querySelector(n)]],[document.documentElement]):new uc([[n]],Kee)}function Ob(n){return function(){return n}}function Wte(n){this._context=n}function m7e(n){return new Wte(n)}Wte.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(n,t){switch(n=+n,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,t):this._context.moveTo(n,t);break;case 1:this._point=2;default:this._context.lineTo(n,t)}}};const nU=Math.PI,iU=2*nU,ag=1e-6,p7e=iU-ag;function $te(n){this._+=n[0];for(let t=1,e=n.length;t=0))throw new Error(`invalid digits: ${n}`);if(t>15)return $te;const e=10**t;return function(i){this._+=i[0];for(let r=1,o=i.length;rag)if(Math.abs(u*l-c*d)>ag&&o){let f=i-s,A=r-a,y=l*l+c*c,_=f*f+A*A,b=Math.sqrt(y),M=Math.sqrt(h),C=o*Math.tan((nU-Math.acos((y+h-_)/(2*b*M)))/2),E=C/M,L=C/b;Math.abs(E-1)>ag&&this._append`L${t+E*d},${e+E*u}`,this._append`A${o},${o},0,0,${+(u*f>d*A)},${this._x1=t+L*l},${this._y1=e+L*c}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,i,r,o,s){if(t=+t,e=+e,s=!!s,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=i*Math.cos(r),l=i*Math.sin(r),c=t+a,d=e+l,u=1^s,h=s?r-o:o-r;null===this._x1?this._append`M${c},${d}`:(Math.abs(this._x1-c)>ag||Math.abs(this._y1-d)>ag)&&this._append`L${c},${d}`,i&&(h<0&&(h=h%iU+iU),h>p7e?this._append`A${i},${i},0,1,${u},${t-a},${e-l}A${i},${i},0,1,${u},${this._x1=c},${this._y1=d}`:h>ag&&this._append`A${i},${i},0,${+(h>=nU)},${u},${this._x1=t+i*Math.cos(o)},${this._y1=e+i*Math.sin(o)}`)}rect(t,e,i,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function b7e(n){return n[0]}function v7e(n){return n[1]}function $I(n,t){this._context=n,this._t=t}function w7e(n){return new $I(n,0)}function Lb(n,t,e){this.k=n,this.x=t,this.y=e}$I.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(n,t){switch(n=+n,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,t):this._context.moveTo(n,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(n,t);else{var e=this._x*(1-this._t)+n*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,t)}}this._x=n,this._y=t}},Lb.prototype={constructor:Lb,scale:function(n){return 1===n?this:new Lb(this.k*n,this.x,this.y)},translate:function(n,t){return 0===n&0===t?this:new Lb(this.k,this.x+this.k*n,this.y+this.k*t)},apply:function(n){return[n[0]*this.k+this.x,n[1]*this.k+this.y]},applyX:function(n){return n*this.k+this.x},applyY:function(n){return n*this.k+this.y},invert:function(n){return[(n[0]-this.x)/this.k,(n[1]-this.y)/this.k]},invertX:function(n){return(n-this.x)/this.k},invertY:function(n){return(n-this.y)/this.k},rescaleX:function(n){return n.copy().domain(n.range().map(this.invertX,this).map(n.invert,n))},rescaleY:function(n){return n.copy().domain(n.range().map(this.invertY,this).map(n.invert,n))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new Lb(1,0,0);let F7e=(()=>{class n{ngOnChanges(){this.values.length>0&&(this.percentileRanks=this.isAttributeDirectionInversed?this.calculateReversedPercentileRanks(this.values):this.calculatePercentileRanks(this.values),this.renderDiagram())}renderDiagram(){this.initializeDiagramDimesions(),this.clearDiagramContainer();const e=this.createSvg(),i=this.createGroup(e),r=this.createXScale(),o=this.createYScale();this.drawAxes(i,r,o),this.drawFrame(i),this.drawLabels(i),this.drawAreas(i,r),this.drawLine(i)}initializeDiagramDimesions(){this.frameWidth=296,this.frameBuffer=10,this.frameHeight=80,this.marginTop=10,this.marginBottom=10,this.marginLeft=66,this.marginRight=54,this.diagramWidth=this.frameWidth-this.marginLeft-this.marginRight,this.diagramHeight=this.frameHeight-this.marginTop-this.marginBottom,this.yLabelYOffset=-47}clearDiagramContainer(){Gte("#cc-range-diagram-container").selectAll("*").remove()}createSvg(){return Gte("#cc-range-diagram-container").append("svg")}createGroup(e){return e.append("g").attr("transform",`translate(${this.marginLeft}, ${this.marginTop})`)}drawFrame(e){e.append("path").attr("d",`M ${-this.frameBuffer} ${-this.frameBuffer} h${this.diagramWidth+2*this.frameBuffer} v${this.diagramHeight+2*this.frameBuffer} h${-this.diagramWidth-2*this.frameBuffer} v${-this.diagramHeight-2*this.frameBuffer}`).attr("fill","none").attr("stroke","#888").attr("stroke-width","1px")}drawAxes(e,i,r){e.append("g").attr("id","axis-x").attr("transform",`translate(0,${this.diagramHeight+this.frameBuffer})`).call(function r5e(n){return vI(3,n)}(i).ticks(5)).attr("color","#888"),e.append("g").attr("id","axis-y").attr("transform",`translate(${-this.frameBuffer}, 0)`).call(function o5e(n){return vI(4,n)}(r).ticks(5).tickFormat(function(o){return o>=1e4?`${zI(".0f")(o/1e3)}k`:o>=1e3?`${zI(".1f")(o/1e3)}k`:o.toString()})).attr("color","#888")}createXScale(){return tU().domain(function YNe(n,t){let e,i;if(void 0===t)for(const r of n)null!=r&&(void 0===e?r>=r&&(e=i=r):(e>r&&(e=r),i=o&&(e=i=o):(e>o&&(e=o),ie.x)).range([0,this.diagramWidth])}createYScale(){const e=[0,Oee(this.percentileRanks,r=>r.y)],i=[Oee(this.percentileRanks,r=>r.y),0];return tU().domain(this.isAttributeDirectionInversed?i:e).range([this.diagramHeight,0])}drawLabels(e){const o=(this.diagramHeight+2*this.frameBuffer)/2-this.frameBuffer;e.append("text").attr("id","y-label").attr("class","y label").attr("transform","rotate(-90)").attr("x",-o).attr("y",this.yLabelYOffset).attr("text-anchor","middle").attr("fill","#888").text(`${this.colorMetric}`),e.append("text").attr("id","x-label").attr("class","x label").attr("text-anchor","middle").attr("x",this.diagramWidth/2).attr("y",this.diagramHeight+this.marginTop+this.marginBottom+2*this.frameBuffer).attr("fill","#888").text(`Quantiles (% of ${this.colorMetric})`)}drawAreas(e,i){const r=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentRightValue):this.calculatePercentileFromMetricValue(this.currentLeftValue)),o=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentLeftValue):this.calculatePercentileFromMetricValue(this.currentRightValue));e.append("rect").attr("class","left-area").attr("x",0).attr("y",-this.frameBuffer).attr("width",r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.rightColor:this.leftColor).style("fill-opacity","0.3"),e.append("rect").attr("class","middle-area").attr("x",r).attr("y",-this.frameBuffer).attr("width",o-r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.middleColor).style("fill-opacity","0.3"),e.append("rect").attr("class","right-area").attr("x",o).attr("y",-this.frameBuffer).attr("width",this.diagramWidth-o).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.leftColor:this.rightColor).style("fill-opacity","0.3")}drawLine(e){e.append("path").attr("id","diagram-path").datum(this.percentileRanks).attr("fill","none").attr("stroke","#888").attr("stroke-width",1).attr("d",function y7e(n,t){var e=Ob(!0),i=null,r=m7e,o=null,s=function _7e(n){let t=3;return n.digits=function(e){if(!arguments.length)return t;if(null==e)t=null;else{const i=Math.floor(e);if(!(i>=0))throw new RangeError(`invalid digits: ${e}`);t=i}return n},()=>new WI(t)}(a);function a(l){var c,u,f,d=(l=function f7e(n){return"object"==typeof n&&"length"in n?n:Array.from(n)}(l)).length,h=!1;for(null==i&&(o=r(f=s())),c=0;c<=d;++c)!(cthis.createXScale()(i.x)).y(i=>this.createYScale()(i.y)))}calculatePercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c<=s).length/r*100;o.push({x:l,y:s})}return o}calculateReversedPercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a).reverse(),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c>=s).length/r*100;o.push({x:l,y:s})}return o.sort((s,a)=>s.x-a.x)}calculatePercentileFromMetricValue(e){if(e===this.minValue)return 0;if(e===this.maxValue)return 100;let i=null;for(const r of this.percentileRanks){if(!(r.ye))return i;i=r.x}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-color-range-diagram"]],inputs:{minValue:"minValue",maxValue:"maxValue",colorMetric:"colorMetric",values:"values",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[xr],decls:1,vars:0,consts:[["id","cc-range-diagram-container",1,"cc-range-diagram-container"]],template:function(i,r){1&i&&xe(0,"div",0)},styles:["#slider-label-left[_ngcontent-%COMP%], #slider-label-right[_ngcontent-%COMP%], #x-label[_ngcontent-%COMP%], #y-label[_ngcontent-%COMP%], #axis-x[_ngcontent-%COMP%], #axis-y[_ngcontent-%COMP%]{font-size:11px}#slider-label-left[text-anchor].end[_ngcontent-%COMP%], #slider-label-right[text-anchor].end[_ngcontent-%COMP%], #x-label[text-anchor].end[_ngcontent-%COMP%], #y-label[text-anchor].end[_ngcontent-%COMP%], #axis-x[text-anchor].end[_ngcontent-%COMP%], #axis-y[text-anchor].end[_ngcontent-%COMP%]{text-anchor:end}#slider-label-left[text-anchor].start[_ngcontent-%COMP%], #slider-label-right[text-anchor].start[_ngcontent-%COMP%], #x-label[text-anchor].start[_ngcontent-%COMP%], #y-label[text-anchor].start[_ngcontent-%COMP%], #axis-x[text-anchor].start[_ngcontent-%COMP%], #axis-y[text-anchor].start[_ngcontent-%COMP%]{text-anchor:start}#slider-label-left[_ngcontent-%COMP%]{font-size:11px;fill:#888;text-anchor:end;dominant-baseline:hanging}#slider-label-right[_ngcontent-%COMP%]{font-size:11px;fill:#888;text-anchor:start;dominant-baseline:hanging}.cc-range-diagram-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:130px}[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})();const k7e=({thumbX:n,minValue:t,maxValue:e,sliderWidth:i})=>Math.round(t+n*((e-t)/i)),Xte=({newThumbScreenX:n,sliderBoundingClientRectX:t,thumbRadius:e,sliderWidth:i,minValue:r,maxValue:o})=>{const s=n-t+e;return{updatedThumbX:s,upcomingValue:k7e({thumbX:s,minValue:r,maxValue:o,sliderWidth:i})}},R7e=["minLabel"],O7e=["maxLabel"],L7e=["currentLeftLabel"],N7e=["currentRightLabel"],U7e=["combinedCurrentLeftRightLabel"];let H7e=(()=>{class n{constructor(e){this.changeDetector=e,this.hideMinLabel=!1,this.hideMaxLabel=!1,this.doLeftRightLabelOverlap=!1}ngAfterViewChecked(){this.updateLabelDisplays()}updateLabelDisplays(){const e=this.minLabel.nativeElement.getBoundingClientRect().width,i=this.currentLeftLabel.nativeElement.getBoundingClientRect().width;this.currentLeftLabelLeftPosition=this.sliderRangePosition.leftEnd-i/2;const r=this.currentRightLabel.nativeElement.getBoundingClientRect().width,o=this.sliderWidth-this.maxLabel.nativeElement.getBoundingClientRect().width;this.currentRightLabelLeftPosition=this.sliderRangePosition.rightStart-r/2,this.hideMinLabel=this.currentLeftLabelLeftPosition<=e+4,this.hideMaxLabel=this.currentRightLabelLeftPosition+r+4>=o;const s=this.currentLeftLabelLeftPosition+i;this.doLeftRightLabelOverlap=s+4>=this.currentRightLabelLeftPosition;const a=(s+this.currentRightLabelLeftPosition)/2,l=this.combinedCurrentLeftRightLabel.nativeElement.getBoundingClientRect().width;this.combinedCurrentLeftRightLabelLeftPosition=a-l/2,this.changeDetector.detectChanges()}static{this.\u0275fac=function(i){return new(i||n)($(vo))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-range-slider-labels"]],viewQuery:function(i,r){if(1&i&&(ti(R7e,5),ti(O7e,5),ti(L7e,5),ti(N7e,5),ti(U7e,5)),2&i){let o;an(o=ln())&&(r.minLabel=o.first),an(o=ln())&&(r.maxLabel=o.first),an(o=ln())&&(r.currentLeftLabel=o.first),an(o=ln())&&(r.currentRightLabel=o.first),an(o=ln())&&(r.combinedCurrentLeftRightLabel=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",leftValueLabel:"leftValueLabel",rightValueLabel:"rightValueLabel",sliderRangePosition:"sliderRangePosition",sliderWidth:"sliderWidth"},decls:15,vars:26,consts:[["minLabel",""],["currentLeftLabel",""],["currentRightLabel",""],["combinedCurrentLeftRightLabel",""],["maxLabel",""],[1,"cc-range-slider-label"]],template:function(i,r){1&i&&(D(0,"div",5,0),ye(2),U(),D(3,"div",5,1),ye(5),U(),D(6,"div",5,2),ye(8),U(),D(9,"div",5,3),ye(11),U(),D(12,"div",5,4),ye(14),U()),2&i&&(zi("left",0,"px")("visibility",r.hideMinLabel?"hidden":"visible"),Q(2),sn(" ",r.minValue,"\n"),Q(),zi("left",r.currentLeftLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),Q(2),sn(" ",r.leftValueLabel,"\n"),Q(),zi("left",r.currentRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),Q(2),sn(" ",r.rightValueLabel,"\n"),Q(),zi("left",r.combinedCurrentLeftRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"visible":"hidden"),Q(2),Jd(" ",r.leftValueLabel," - ",r.rightValueLabel,"\n"),Q(),zi("right",0,"px")("visibility",r.hideMaxLabel?"hidden":"visible"),Q(2),sn(" ",r.maxValue,"\n"))},styles:["[_nghost-%COMP%] .cc-range-slider-label[_ngcontent-%COMP%]{position:absolute;top:-25px;line-height:24px;font-size:14px;color:#aeaeae}"],changeDetection:0})}}return n})();const V7e=["rangeSliderContainer"],Q7e=["leftThumb"],z7e=["rightThumb"];let q7e=(()=>{class n{constructor(){this.sliderWidth=150,this.sliderRangePosition={leftEnd:0,rightStart:0},this.thumbRadius=7,this.currentlySliding=void 0,this.resetCurrentlySlidingOnNextMouseUp=e=>{const i=()=>{this.currentlySliding=void 0,document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",e)};document.addEventListener("mouseup",i)},this.handleLeftThumbMoved=e=>{const i=(({deltaX:n,thumbScreenX:t,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=t+n;return li&&(l=i),Xte({newThumbScreenX:l,sliderBoundingClientRectX:r,thumbRadius:e,sliderWidth:o,minValue:s,maxValue:a})})({deltaX:e.movementX,thumbScreenX:this.leftThumb.nativeElement.getBoundingClientRect().x,thumbRadius:this.thumbRadius,otherThumbScreenX:this.rightThumb.nativeElement.getBoundingClientRect().x,sliderBoundingClientRectX:this.sliderContainer.nativeElement.getBoundingClientRect().x,sliderWidth:this.sliderWidth,minValue:this.minValue,maxValue:this.maxValue});this.sliderRangePosition={leftEnd:i.updatedThumbX,rightStart:this.sliderRangePosition.rightStart},this.upcomingLeftValue=i.upcomingValue,this.handleValueChange({newLeftValue:i.upcomingValue})},this.handleRightThumbMoved=e=>{const i=(({deltaX:n,thumbScreenX:t,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=t+n;return l>r+o-e&&(l=r+o-e),l{const o=t-n;return o<=0?{leftEnd:r,rightStart:r}:{leftEnd:(e-n)/o*r,rightStart:(i-n)/o*r}})({minValue:this.minValue,maxValue:this.maxValue,currentLeftValue:this.currentLeftValue,currentRightValue:this.currentRightValue,sliderWidth:this.sliderWidth}),e.currentLeftValue&&(this.upcomingLeftValue=this.currentLeftValue),e.currentRightValue&&(this.upcomingRightValue=this.currentRightValue))}setCurrentlySliding(e){switch(this.currentlySliding=e,this.currentlySliding){case"leftThumb":document.addEventListener("mousemove",this.handleLeftThumbMoved),this.rightThumb.nativeElement.style.zIndex="0",this.leftThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleLeftThumbMoved);break;case"rightThumb":document.addEventListener("mousemove",this.handleRightThumbMoved),this.leftThumb.nativeElement.style.zIndex="0",this.rightThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleRightThumbMoved)}}handleCurrentLeftInputChanged(e){const i=qN(e,this.minValue,this.currentRightValue);i!==this.currentLeftValue&&this.handleValueChange({newLeftValue:i})}handleCurrentRightInputChanged(e){const i=qN(e,this.currentLeftValue,this.maxValue);i!==this.currentRightValue&&this.handleValueChange({newRightValue:i})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-color-range-slider"]],viewQuery:function(i,r){if(1&i&&(ti(V7e,5),ti(Q7e,5),ti(z7e,5)),2&i){let o;an(o=ln())&&(r.sliderContainer=o.first),an(o=ln())&&(r.leftThumb=o.first),an(o=ln())&&(r.rightThumb=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",handleValueChange:"handleValueChange",sliderWidth:"sliderWidth",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[xr],decls:15,vars:28,consts:[["rangeSliderContainer",""],["leftThumb",""],["rightThumb",""],[1,"cc-range-slider-container"],["appearance","outline"],["matInput","","type","number",3,"input","value","min","max"],[1,"cc-range-slider-slider"],[1,"cc-range-slider-bar"],[1,"cc-range-slider-slider-thumb",3,"mousedown"],[3,"minValue","maxValue","leftValueLabel","rightValueLabel","sliderRangePosition","sliderWidth"]],template:function(i,r){if(1&i){const o=Dn();D(0,"div",3)(1,"mat-form-field",4)(2,"input",5),ze("input",function(a){return Ot(o),Rt(r.handleCurrentLeftInputChanged(a))}),U()(),D(3,"div",6,0),xe(5,"span",7)(6,"span",7)(7,"span",7),D(8,"div",8,1),ze("mousedown",function(){return Ot(o),Rt(r.setCurrentlySliding("leftThumb"))}),U(),D(10,"div",8,2),ze("mousedown",function(){return Ot(o),Rt(r.setCurrentlySliding("rightThumb"))}),U(),xe(12,"cc-range-slider-labels",9),U(),D(13,"mat-form-field",4)(14,"input",5),ze("input",function(a){return Ot(o),Rt(r.handleCurrentRightInputChanged(a))}),U()()()}2&i&&(Q(2),_e("value",r.currentLeftValue)("min",r.minValue)("max",r.upcomingRightValue),Q(3),zi("width",r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.leftColor),Q(),zi("width",r.sliderRangePosition.rightStart-r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.middleColor),Q(),zi("width",r.sliderWidth-r.sliderRangePosition.rightStart,"px")("border-bottom-color",r.rightColor),Q(),zi("left",r.sliderRangePosition.leftEnd-r.thumbRadius,"px"),Q(2),zi("left",r.sliderRangePosition.rightStart-r.thumbRadius,"px"),Q(2),_e("minValue",r.minValue)("maxValue",r.maxValue)("leftValueLabel",r.upcomingLeftValue)("rightValueLabel",r.upcomingRightValue)("sliderRangePosition",r.sliderRangePosition)("sliderWidth",r.sliderWidth),Q(2),_e("value",r.currentRightValue)("min",r.upcomingLeftValue)("max",r.maxValue))},dependencies:[Md,qm,H7e],styles:["[_nghost-%COMP%] .cc-range-slider-slider[_ngcontent-%COMP%]{display:flex;flex:1;margin:0 8px;position:relative;line-height:48px}[_nghost-%COMP%] .cc-range-slider-slider[_ngcontent-%COMP%] .cc-range-slider-bar[_ngcontent-%COMP%]{display:inline-block;border-bottom-width:4px;border-bottom-style:solid}[_nghost-%COMP%] .cc-range-slider-slider[_ngcontent-%COMP%] .cc-range-slider-slider-thumb[_ngcontent-%COMP%]{cursor:pointer;position:absolute;top:-4px;border-radius:100%;border:7px solid #1b9cfc}"]})}}return n})();const G7e=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta","appSettings.mapColors.selected"],W7e=()=>["appSettings.mapColors.positive","appSettings.mapColors.negative","appSettings.mapColors.neutral","appSettings.mapColors.selected"],$7e=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta"];function j7e(n,t){if(1&n){const e=Dn();D(0,"div"),xe(1,"cc-metric-color-range-slider",4),qe(2,"async"),qe(3,"async"),qe(4,"async"),qe(5,"async"),qe(6,"async"),qe(7,"async"),qe(8,"async"),qe(9,"async"),xe(10,"cc-reset-settings-button",5)(11,"cc-metric-color-range-diagram",6),qe(12,"async"),qe(13,"async"),qe(14,"async"),qe(15,"async"),qe(16,"async"),qe(17,"async"),qe(18,"async"),qe(19,"async"),qe(20,"async"),qe(21,"async"),D(22,"mat-form-field",7)(23,"mat-label"),ye(24,"Gradient Mode"),U(),D(25,"mat-select",8),qe(26,"async"),ze("selectionChange",function(r){return Ot(e),Rt(Le().handleColorModeChange(r.value))}),D(27,"div",9),ze("mousedown",function(r){return Ot(e),Rt(r.stopPropagation())}),D(28,"mat-option",10),ye(29,"Absolute"),U(),D(30,"mat-option",11),ye(31,"Focused Gradient"),U(),D(32,"mat-option",12),ye(33,"Weighted Gradient"),U(),D(34,"mat-option",13),ye(35,"True Gradient"),U()()()()()}if(2&n){const e=Le();Q(),_e("minValue",rt(2,22,e.sliderValues$).min)("maxValue",rt(3,24,e.sliderValues$).max)("currentLeftValue",rt(4,26,e.sliderValues$).from)("currentRightValue",rt(5,28,e.sliderValues$).to)("leftColor",rt(6,30,e.sliderColors$).leftColor)("middleColor",rt(7,32,e.sliderColors$).middleColor)("rightColor",rt(8,34,e.sliderColors$).rightColor)("handleValueChange",e.handleValueChange)("isAttributeDirectionInversed",rt(9,36,e.isAttributeDescriptionInversed$)),Q(9),_e("settingsKeys",fh(60,$7e))("callback",e.resetColorRange),Q(),_e("minValue",rt(12,38,e.sliderValues$).min)("maxValue",rt(13,40,e.sliderValues$).max)("currentLeftValue",rt(14,42,e.sliderValues$).from)("currentRightValue",rt(15,44,e.sliderValues$).to)("leftColor",rt(16,46,e.sliderColors$).leftColor)("middleColor",rt(17,48,e.sliderColors$).middleColor)("rightColor",rt(18,50,e.sliderColors$).rightColor)("colorMetric",rt(19,52,e.colorMetric$))("values",rt(20,54,e.sliderValues$).values)("isAttributeDirectionInversed",rt(21,56,e.isAttributeDescriptionInversed$)),Q(14),_e("value",rt(26,58,e.colorMode$))}}function X7e(n,t){if(1&n){const e=Dn();D(0,"div",1),xe(1,"cc-color-picker-for-map-color",0),D(2,"mat-checkbox",14),qe(3,"async"),ze("change",function(r){return Ot(e),Rt(Le().toggleColorLabel(r,"positive"))}),ye(4,"Show labels"),U()(),D(5,"div",1),xe(6,"cc-color-picker-for-map-color",0),D(7,"mat-checkbox",14),qe(8,"async"),ze("change",function(r){return Ot(e),Rt(Le().toggleColorLabel(r,"neutral"))}),ye(9,"Show labels"),U()(),D(10,"div",1),xe(11,"cc-color-picker-for-map-color",0),D(12,"mat-checkbox",14),qe(13,"async"),ze("change",function(r){return Ot(e),Rt(Le().toggleColorLabel(r,"negative"))}),ye(14,"Show labels"),U()()}if(2&n){const e=Le();Q(),_e("mapColorFor","positive"),Q(),_e("checked",rt(3,6,e.colorLabels$).positive),Q(4),_e("mapColorFor","neutral"),Q(),_e("checked",rt(8,8,e.colorLabels$).neutral),Q(4),_e("mapColorFor","negative"),Q(),_e("checked",rt(13,10,e.colorLabels$).negative)}}function K7e(n,t){1&n&&xe(0,"cc-color-picker-for-map-color",0)(1,"cc-color-picker-for-map-color",0),2&n&&(_e("mapColorFor","positiveDelta"),Q(),_e("mapColorFor","negativeDelta"))}function Y7e(n,t){if(1&n){const e=Dn();D(0,"mat-checkbox",14),ze("change",function(r){return Ot(e),Rt(Le().handleIsColorRangeInvertedChange(r.checked))}),ye(1,"Invert Colors"),U()}2&n&&_e("checked",Le().isColorRangeInverted)}function Z7e(n,t){if(1&n){const e=Dn();D(0,"mat-checkbox",14),ze("change",function(r){return Ot(e),Rt(Le().handleAreDeltaColorsInverted(r.checked))}),ye(1,"Invert Colors"),U()}2&n&&_e("checked",Le().areDeltaColorsInverted)}let J7e=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.colorMode$=this.store.select(Ree),this.colorLabels$=this.store.select(Pee),this.colorMetric$=this.store.select(Nm),this.isDeltaState$=this.store.select(Hm),this.sliderValues$=this.store.select(KNe),this.sliderColors$=this.store.select(XNe),this.isAttributeDescriptionInversed$=this.checkIsAttributeDirectionReversed(),this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1,this.newLeftValue=null,this.newRightValue=null,this.handleValueChange=({newLeftValue:r,newRightValue:o})=>{this.newLeftValue=r??this.newLeftValue,this.newRightValue=o??this.newRightValue,this.updateColorRangeDebounced()},this.updateColorRangeDebounced=Eu(()=>{const r={};null!==this.newLeftValue&&(r.from=this.newLeftValue),null!==this.newRightValue&&(r.to=this.newRightValue),this.store.dispatch(ru({value:r})),this.newLeftValue=null,this.newRightValue=null},400),this.resetInvertColorCheckboxes=()=>{this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1},this.resetColorRange=()=>{const r=Jh(this.state.getValue());this.store.dispatch(ru({value:iI(r)}))}}checkIsAttributeDirectionReversed(){return this.colorMetric$.pipe(Qe(e=>1===this.state.getValue().fileSettings.attributeDescriptors[e]?.direction))}handleColorModeChange(e){this.store.dispatch(J0({value:e}))}toggleColorLabel(e,i){this.store.dispatch(A1({value:{[i]:e.checked}}))}handleIsColorRangeInvertedChange(e){this.isColorRangeInverted=e,this.store.dispatch(YE())}handleAreDeltaColorsInverted(e){this.areDeltaColorsInverted=e,this.store.dispatch(ZE())}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Zr))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-settings-panel"]],decls:13,vars:18,consts:[[3,"mapColorFor"],[1,"color-row"],["tooltip","Reset color values to default","label","Reset colors",3,"settingsKeys","callback"],[3,"checked"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","handleValueChange","isAttributeDirectionInversed"],["tooltip","Reset slider thresholds to default","label","Reset thresholds",3,"settingsKeys","callback"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","colorMetric","values","isAttributeDirectionInversed"],["appearance","outline","subscriptSizing","dynamic",1,"gradient-mode-selector"],[3,"selectionChange","value"],[3,"mousedown"],["value","absolute"],["value","focusedGradient"],["value","weightedGradient"],["value","trueGradient"],[3,"change","checked"]],template:function(i,r){1&i&&(pt(0,j7e,36,61,"div"),qe(1,"async"),qe(2,"async"),pt(3,X7e,15,12),qe(4,"async"),pt(5,K7e,2,2),xe(6,"cc-color-picker-for-map-color",0),D(7,"div",1),xe(8,"cc-reset-settings-button",2),qe(9,"async"),pt(10,Y7e,2,1,"mat-checkbox",3),qe(11,"async"),pt(12,Z7e,2,1),U()),2&i&&(Tt(0,rt(1,6,r.isDeltaState$)||"unary"===rt(2,8,r.colorMetric$)?-1:0),Q(3),Tt(3,rt(4,10,r.isDeltaState$)?5:3),Q(3),_e("mapColorFor","selected"),Q(2),_e("settingsKeys",rt(9,12,r.isDeltaState$)?fh(16,G7e):fh(17,W7e))("callback",r.resetInvertColorCheckboxes),Q(2),Tt(10,rt(11,14,r.isDeltaState$)?12:10))},dependencies:[vN,F7e,q7e,fx,Md,Cd,Gm,du,Xm,Kn],styles:[".gradient-mode-selector[_ngcontent-%COMP%]{--mat-form-field-container-vertical-padding: 8px;--mat-form-field-container-height: 16px;margin:5px 10px;width:93%}.color-row[_ngcontent-%COMP%]{display:flex;align-items:center}cc-color-picker-for-map-color[_ngcontent-%COMP%]{width:50%}cc-reset-settings-button[_ngcontent-%COMP%]{width:50%}"]})}}return n})();const oU=Kt(so,n=>n.isEdgeMetricVisible);function e9e(n,t){1&n&&(D(0,"cc-rounded-box"),xe(1,"cc-metric-chooser-type",3),ye(2),U()),2&n&&(Q(),_e("metricFor","edgeMetric"),Q(),sn(" ",t," "))}function t9e(n,t){if(1&n&&(D(0,"cc-metric-chooser",1),qe(1,"async"),D(2,"div",2),pt(3,e9e,3,2,"cc-rounded-box"),qe(4,"async"),U()()),2&n){let e;const i=Le();Un("is-edge-metric-disabled",!rt(1,6,i.isEdgeMetricVisible$)),_e("selectedMetricName",t)("searchPlaceholder","Edge Metric (highest value)")("handleMetricChanged",i.handleEdgeMetricChanged),Q(3),Tt(3,(e=rt(4,8,i.edgeValue$))?3:-1,e)}}let n9e=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.edgeValue$=this.createEdgeValue(),this.edgeMetric$=this.store.select(tf),this.isEdgeMetricVisible$=this.store.select(oU),this.formatHoveredEdgeValue=(r,o)=>{if(!o)return null;const s=o.edgeAttributes[r];return s?`${this.formatValue(s.incoming)} / ${this.formatValue(s.outgoing)}`:null},this.formatValue=r=>"number"==typeof r?r.toLocaleString():"-"}handleEdgeMetricChanged(e){this.store.dispatch(yh({value:e}))}createEdgeValue(){return Sh([this.store.select(tf),this.nodeSelectionService.createNodeObservable()]).pipe(Qe(([e,i])=>this.formatHoveredEdgeValue(e,i)))}static{this.\u0275fac=function(i){return new(i||n)($($t),$(uI))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-edge-metric-chooser"]],decls:2,vars:3,consts:[["icon","fa-exchange","type","edge","title","Change edge metric",3,"is-edge-metric-disabled","selectedMetricName","searchPlaceholder","handleMetricChanged"],["icon","fa-exchange","type","edge","title","Change edge metric",3,"selectedMetricName","searchPlaceholder","handleMetricChanged"],["hoveredInformation","",1,"cc-metric-chooser-container"],["attributeType","edges",3,"metricFor"]],template:function(i,r){if(1&i&&(pt(0,t9e,5,10,"cc-metric-chooser",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.edgeMetric$))?0:-1,o)}},dependencies:[ux,cee,dee,Kn],styles:["cc-rounded-box[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}"]})}}return n})();const i9e=Kt(so,n=>n.edgeHeight),r9e=Kt(so,n=>n.showOnlyBuildingsWithEdges),o9e=Kt(Xs,tf,(n,t)=>n.nodeEdgeMetricsMap.get(t)?.size??0);let s9e=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isEdgeMetricVisible$=this.store.select(oU)}toggleEdgeMetric(){this.store.dispatch(XE())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-edge-metric-toggle"]],decls:3,vars:3,consts:[[1,"edgeMetricCheckbox",3,"change","checked"]],template:function(i,r){1&i&&(D(0,"mat-checkbox",0),qe(1,"async"),ze("change",function(){return r.toggleEdgeMetric()}),ye(2," Disable edge metric\n"),U()),2&i&&_e("checked",!rt(1,1,r.isEdgeMetricVisible$))},dependencies:[Xm,Kn],encapsulation:2})}}return n})();const a9e=()=>["appSettings.showOnlyBuildingsWithEdges","appSettings.amountOfEdgePreviews","appSettings.edgeHeight"];let l9e=(()=>{class n{constructor(e){this.store=e,this.amountOfBuildingsWithSelectedEdgeMetric$=this.store.select(o9e),this.edgePreviewLabel$=this.amountOfBuildingsWithSelectedEdgeMetric$.pipe(Qe(i=>`Preview the edges of up to ${i} buildings with the highest amount of incoming and outgoing edges`)),this.amountOfEdgePreviews$=this.store.select(aee),this.edgeHeight$=this.store.select(i9e),this.showOnlyBuildingsWithEdges$=this.store.select(r9e),this.applySettingsAmountOfEdgePreviews=i=>{this.store.dispatch(ax({value:i}))},this.applySettingsEdgeHeight=i=>{this.store.dispatch(Y0({value:i}))}}applyShowOnlyBuildingsWithEdges(e){this.store.dispatch(S1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-edge-settings-panel"]],decls:17,vars:35,consts:[[3,"title","label","value","onChange","min","max","disabled"],["title","Adjust the curve height",3,"label","value","onChange","min","max","disabled"],[1,"wrapper"],[3,"mapColorFor"],[3,"change","checked","disabled"],["tooltip","Reset edge metric settings to their defaults","label","Reset edge metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(xe(0,"cc-slider",0),qe(1,"async"),qe(2,"async"),qe(3,"async"),qe(4,"async"),xe(5,"cc-slider",1),qe(6,"async"),qe(7,"async"),D(8,"div",2),xe(9,"cc-color-picker-for-map-color",3)(10,"cc-color-picker-for-map-color",3),U(),D(11,"mat-checkbox",4),qe(12,"async"),qe(13,"async"),ze("change",function(s){return r.applyShowOnlyBuildingsWithEdges(s)}),ye(14," Only show nodes with edges\n"),U(),xe(15,"cc-edge-metric-toggle")(16,"cc-reset-settings-button",5)),2&i&&(_e("title",rt(1,18,r.edgePreviewLabel$))("label","Preview")("value",rt(2,20,r.amountOfEdgePreviews$))("onChange",r.applySettingsAmountOfEdgePreviews)("min",0)("max",rt(3,22,r.amountOfBuildingsWithSelectedEdgeMetric$))("disabled",0===rt(4,24,r.amountOfBuildingsWithSelectedEdgeMetric$)),Q(5),_e("label","Height")("value",rt(6,26,r.edgeHeight$))("onChange",r.applySettingsEdgeHeight)("min",1)("max",9)("disabled",0===rt(7,28,r.amountOfBuildingsWithSelectedEdgeMetric$)),Q(4),_e("mapColorFor","outgoingEdge"),Q(),_e("mapColorFor","incomingEdge"),Q(),_e("checked",rt(12,30,r.showOnlyBuildingsWithEdges$))("disabled",0===rt(13,32,r.amountOfBuildingsWithSelectedEdgeMetric$)),Q(5),_e("settingsKeys",fh(34,a9e)))},dependencies:[fx,mI,Xm,vN,s9e,Kn],encapsulation:2})}}return n})();function c9e(n,t){1&n&&(D(0,"mat-card",8),xe(1,"cc-link-color-metric-to-height-metric-button"),U(),D(2,"cc-ribbon-bar-panel",9),xe(3,"cc-color-metric-chooser"),D(4,"cc-ribbon-bar-panel-settings"),xe(5,"cc-color-settings-panel",4),U()()),2&n&&(Q(2),_e("separator",!0))}function d9e(n,t){1&n&&(D(0,"cc-ribbon-bar-panel",6),xe(1,"cc-edge-metric-chooser"),D(2,"cc-ribbon-bar-panel-settings"),xe(3,"cc-edge-settings-panel",4),U()()),2&n&&_e("separator",!0)}function u9e(n,t){1&n&&(D(0,"cc-ribbon-bar-panel",7)(1,"div",10),xe(2,"i",11),D(3,"span"),ye(4,"Color Settings"),U()(),D(5,"cc-ribbon-bar-panel-settings"),xe(6,"cc-color-settings-panel",4),U()()),2&n&&_e("separator",!0)("isHeaderExpandable",!0)}let h9e=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Hm),this.hasEdgeMetric$=this.store.select(Xs).pipe(Qe(i=>i.edgeMetricData.length>0))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar"]],decls:21,vars:11,consts:[["id","scenario-card","title","Metric Scenarios"],["id","custom-configs-card","title","Custom Views"],["id","ai-card","title","Suspicious Metrics"],["id","area-metric-card","title","Area Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],[1,"cc-metric-settings-panel"],["id","height-metric-card","title","Height Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],["id","edge-metric-card","title","Edge Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],["id","color-settings-card",1,"ribbon-bar-panel-wide",3,"separator","isHeaderExpandable"],["appearance","outlined",1,"color-height-metric-link"],["id","color-metric-card","title","Color Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],[1,"color-settings-header","toggleHeader"],[1,"fa","fa-paint-brush","color-icon"]],template:function(i,r){1&i&&(xe(0,"cc-search-panel"),D(1,"cc-ribbon-bar-panel",0),xe(2,"cc-show-scenarios-button"),U(),D(3,"cc-ribbon-bar-panel",1),xe(4,"cc-custom-configs"),U(),D(5,"cc-ribbon-bar-panel",2),xe(6,"cc-artificial-intelligence"),U(),D(7,"cc-ribbon-bar-panel",3),xe(8,"cc-area-metric-chooser"),D(9,"cc-ribbon-bar-panel-settings"),xe(10,"cc-area-settings-panel",4),U()(),D(11,"cc-ribbon-bar-panel",5),xe(12,"cc-height-metric-chooser"),D(13,"cc-ribbon-bar-panel-settings"),xe(14,"cc-height-settings-panel",4),U()(),pt(15,c9e,6,1),qe(16,"async"),pt(17,d9e,4,1,"cc-ribbon-bar-panel",6),qe(18,"async"),pt(19,u9e,7,2,"cc-ribbon-bar-panel",7),qe(20,"async")),2&i&&(Q(7),_e("separator",!0),Q(4),_e("separator",!0),Q(4),Tt(15,rt(16,5,r.isDeltaState$)?-1:15),Q(2),Tt(17,rt(18,7,r.hasEdgeMetric$)?17:-1),Q(2),Tt(19,rt(20,9,r.isDeltaState$)?19:-1))},dependencies:[rx,wJ,QRe,s4e,Z4e,ZOe,ONe,GNe,WNe,$Ne,jNe,J7e,n9e,l9e,wN,yN,Kn],styles:["[_nghost-%COMP%]{position:fixed;z-index:10;width:100%;display:flex;flex-wrap:nowrap}cc-ribbon-bar-panel[_ngcontent-%COMP%]{flex:0}cc-ribbon-bar-panel.ribbon-bar-panel-wide[_ngcontent-%COMP%]{flex-grow:1}mat-card.color-height-metric-link[_ngcontent-%COMP%]{display:flex;justify-content:center;flex-grow:0;padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd}cc-ribbon-bar-panel[_ngcontent-%COMP%] cc-ribbon-bar-panel-settings[_ngcontent-%COMP%]{font-size:.9em;left:0;right:auto}cc-ribbon-bar-panel[_ngcontent-%COMP%]:last-child cc-ribbon-bar-panel-settings[_ngcontent-%COMP%]{left:auto;right:0}.color-settings-header[_ngcontent-%COMP%]{display:flex;gap:8px;line-height:24px;align-items:baseline}"]})}}return n})();const Kte=()=>{const n=document.createElement("INPUT");return n.setAttribute("type","file"),n.setAttribute("accept",".json,.gz"),n.setAttribute("multiple",""),document.body.appendChild(n),n},Nb="base";function Yte(n,t,e,i,r,o){if(0===n.length)return;const[s]=n;let a={name:s,type:Zte(n)?qa.FILE:qa.FOLDER,attributes:{}};Zte(n)?a=function A9e(n,t,e){const i={...t};return i.attributes={height:e.scale.y},{name:n,type:qa.FOLDER,attributes:{},children:[i]}}(s,a,i):a.children=[],function p9e(n,t){return n.some(e=>e.name===t)}(t,s)?a=t.find(d=>d.name===s):t.push(a);const l=r.find(d=>d.name===e);a.fixedPosition=function g9e(n,t,e,i){let r;if(n.type===qa.FOLDER){const s=t.position.z-t.scale.z/2,l=e.position.z-e.scale.z/2,c=jI((e.position.x-e.scale.x/2-(t.position.x-t.scale.x/2))/t.scale.x*100,2);r={left:jI((l-s)/t.scale.z*100,2),top:c,width:jI(e.scale.z/t.scale.z*100,2),height:jI(e.scale.x/t.scale.x*100,2)}}return n.name===i&&(r=function _9e(n){const t={...n};return t.top=Math.floor(50-t.height/2),t.left=Math.floor(50-t.width/2),t}(r)),r}(a,l,i,o.name);const c=e===Nb?a.name:`${e}.${a.name}`;Yte(n.slice(1),a.children,c,i,r,o)}function Zte(n){return 1===n.length}function jI(n,t){const e=Math.pow(10,t);return Math.round(n*e)/e}function Jte(n){const t=n.replaceAll(".","/"),i=n.split(".").slice(-1);return`/${Nb}/${t}/${i}`}const w9e=JSON.parse('{"$id":"http://example.com/example.json","$schema":"http://json-schema.org/draft-07/schema","default":{},"description":"This is the JSON Schema for the GameObjectsPositions structure","examples":[{"gameObjectPositions":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.TryCatchFinallyTest","position":{"x":66,"y":22.5,"z":177.5},"scale":{"x":1,"y":13,"z":1}}],"cycles":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]}],"required":["gameObjectPositions"],"title":"The root schema","type":"object","properties":{"gameObjectPositions":{"$id":"#/properties/gameObjectPositions","type":"array","title":"The gameObjectPositions schema","description":"Defines the position and scale of GameObjects","default":[],"examples":[[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.SwitchCaseTest","position":{"x":65,"y":22,"z":181},"scale":{"x":2,"y":12,"z":2}}]],"additionalItems":true,"items":{"$id":"#/properties/gameObjectPositions/items","anyOf":[{"$id":"#/properties/gameObjectPositions/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"Defines the properties of a GameObject","default":{},"examples":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}}],"required":["name","position","scale"],"properties":{"name":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/name","type":"string","title":"The name schema","description":"An explanation about the purpose of this instance.","default":"","examples":["root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest"]},"position":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position","type":"object","title":"The position schema","description":"The position in absolute values","default":{},"examples":[{"x":69,"y":18.5,"z":228.5}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/x","type":"number","title":"The x schema","description":"x position","default":0,"examples":[69]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/y","type":"number","title":"The y schema","description":"y position","default":0,"examples":[18.5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/z","type":"number","title":"The z schema","description":"z position","default":0,"examples":[228.5]}},"additionalProperties":true},"scale":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale","type":"object","title":"The scale schema","description":"The scale of GameObjects","default":{},"examples":[{"x":9,"y":5,"z":9}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/x","type":"number","title":"The x schema","description":"x scale","default":0,"examples":[9]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/y","type":"number","title":"The y schema","description":"y scale","default":0,"examples":[5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/z","type":"number","title":"The z schema","description":"z scale","default":0,"examples":[9]}},"additionalProperties":true}},"additionalProperties":true}]}},"cycles":{"$id":"#/properties/cycles","type":"array","title":"The cycles schema","description":"Defines the cycles between GameObjects","default":[],"examples":[[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]],"additionalItems":true,"items":{"$id":"#/properties/cycles/items","anyOf":[{"$id":"#/properties/cycles/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"A cycle between two GameObjects","default":{},"examples":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}],"required":["from","to"],"properties":{"from":{"$id":"#/properties/cycles/items/anyOf/0/properties/from","type":"string","title":"The from schema","description":"from GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser"]},"to":{"$id":"#/properties/cycles/items/anyOf/0/properties/to","type":"string","title":"The to schema","description":"to GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"]}},"additionalProperties":true}]}}},"additionalProperties":true}'),ene=n=>{const t=[];for(let e=0;e{const i=t.name.endsWith(".gz"),r=new FileReader;let o;i?r.readAsArrayBuffer(t):r.readAsText(t,"utf8"),r.onload=s=>{const a=s.target.result.toString();o=i?F4(s.target.result,{to:"string"}):a,a.includes("gameObjectPositions")&&function x9e(n){return new(G$())({allErrors:!0}).validate(w9e,JSON.parse(n))}(a)&&(o=JSON.stringify(function f9e(n){const{gameObjectPositions:t,cycles:e=[]}=JSON.parse(n),i={checksum:"",data:{projectName:"GameObjects",fileChecksum:"",apiVersion:"1.3",nodes:[]}},r=[{name:Nb,type:qa.FOLDER,attributes:{},children:[]}];!function m9e(n){for(const t of n)t.name.startsWith("root")||(t.name=t.name.startsWith(".")?`root${t.name}`:`root.${t.name}`)}(t);const o=t.find(a=>"root"===a.name),s=function y9e(n){const t=Math.max(n.x,n.z);return{name:Nb,position:{x:0,y:0,z:0},scale:{x:t,y:0,z:t}}}(o.scale);t.push(s);for(const a of t){const l=a.name.split(".");l[0]!==Nb&&Yte(l,r[0].children,Nb,a,t,o)}return i.data.nodes=r,i.data.edges=e.map(a=>function b9e(n){return{fromNodeName:Jte(n.from),toNodeName:Jte(n.to),attributes:{coupling:100}}}(a)),i.data.attributeTypes=function v9e(){return{edges:{coupling:um.relative}}}(),i.checksum=u2()(JSON.stringify(i.data)),i}(a)))},r.onloadend=()=>{e(o)}})});return function(e){return n.apply(this,arguments)}}();let tne=(()=>{class n{constructor(e,i){this.store=e,this.loadFileService=i,this.isUploading=!1}uploadFiles(){const e=Kte();e.addEventListener("change",()=>{this.uploadFilesOnEvent(e)}),e.click()}uploadFilesOnEvent(e){var i=this;return k(function*(){try{i.isUploading=!0,i.store.dispatch(cA({value:!0})),i.store.dispatch(r_({value:!0}));const r=yield Promise.all(ene(e.files)),{customConfigs:o,ccFiles:s}=i.splitCustomConfigsAndCCFiles(e.files,r);for(const a of o)Yi.importCustomConfigs(a);s.length>0&&(yield i.loadFileService.loadFiles(s))}catch{i.store.dispatch(cA({value:!1})),i.store.dispatch(r_({value:!1}))}finally{i.isUploading=!1}})()}splitCustomConfigsAndCCFiles(e,i){const r=[],o=[];for(const[s,a]of i.entries()){const l=e[s].name;l.includes(HJ)?r.push(a):o.push({fileName:l,fileSize:e[s].size,content:rR(a)})}return{customConfigs:r,ccFiles:o}}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(f_))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),M9e=(()=>{class n{constructor(e){this.uploadFilesService=e}uploadFiles(){this.uploadFilesService.uploadFiles()}static{this.\u0275fac=function(i){return new(i||n)($(tne))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-upload-files-button"]],decls:1,vars:1,consts:[["title","Load cc.json files",3,"click","icon"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.uploadFiles()}),U()),2&i&&_e("icon","fa fa-folder-open folder-icon")},dependencies:[eg],encapsulation:2})}}return n})();const sU=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function aU(n,t,e,i){n.addEventListener?n.addEventListener(t,e,i):n.attachEvent&&n.attachEvent("on".concat(t),e)}function Cx(n,t,e,i){n.removeEventListener?n.removeEventListener(t,e,i):n.detachEvent&&n.detachEvent("on".concat(t),e)}function nne(n,t){const e=t.slice(0,t.length-1);for(let i=0;i=0;)t[e-1]+=",",t.splice(e,1),e=t.lastIndexOf("");return t}const Mx={backspace:8,"\u232b":8,tab:9,clear:12,enter:13,"\u21a9":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"\u21ea":20,",":188,".":190,"/":191,"`":192,"-":sU?173:189,"=":sU?61:187,";":sU?59:186,"'":222,"[":219,"]":221,"\\":220},Fu={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},lU={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},da={16:!1,18:!1,17:!1,91:!1},Ho={};for(let n=1;n<20;n++)Mx["f".concat(n)]=111+n;let go=[],Ex=null,rne="all";const df=new Map,Sx=n=>Mx[n.toLowerCase()]||Fu[n.toLowerCase()]||n.toUpperCase().charCodeAt(0);function one(n){rne=n||"all"}function Tx(){return rne||"all"}function sne(n){if(typeof n>"u")Object.keys(Ho).forEach(r=>{Array.isArray(Ho[r])&&Ho[r].forEach(o=>XI(o)),delete Ho[r]}),cU(null);else if(Array.isArray(n))n.forEach(r=>{r.key&&XI(r)});else if("object"==typeof n)n.key&&XI(n);else if("string"==typeof n){for(var t=arguments.length,e=new Array(t>1?t-1:0),i=1;i{let{key:t,scope:e,method:i,splitKey:r="+"}=n;ine(t).forEach(s=>{const a=s.split(r),l=a.length,c=a[l-1],d="*"===c?"*":Sx(c);if(!Ho[d])return;e||(e=Tx());const u=l>1?nne(Fu,a):[],h=[];Ho[d]=Ho[d].filter(f=>{const y=(!i||f.method===i)&&f.scope===e&&function E9e(n,t){const e=n.length>=t.length?n:t,i=n.length>=t.length?t:n;let r=!0;for(let o=0;ocU(f))})};function ane(n,t,e,i){if(t.element!==i)return;let r;if(t.scope===e||"all"===t.scope){r=t.mods.length>0;for(const o in da)Object.prototype.hasOwnProperty.call(da,o)&&(!da[o]&&t.mods.indexOf(+o)>-1||da[o]&&-1===t.mods.indexOf(+o))&&(r=!1);(0===t.mods.length&&!da[16]&&!da[18]&&!da[17]&&!da[91]||r||"*"===t.shortcut)&&(t.keys=[],t.keys=t.keys.concat(go),!1===t.method(n,t)&&(n.preventDefault?n.preventDefault():n.returnValue=!1,n.stopPropagation&&n.stopPropagation(),n.cancelBubble&&(n.cancelBubble=!0)))}}function lne(n,t){const e=Ho["*"];let i=n.keyCode||n.which||n.charCode;if(!Du.filter.call(this,n))return;if((93===i||224===i)&&(i=91),-1===go.indexOf(i)&&229!==i&&go.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(a=>{const l=lU[a];n[a]&&-1===go.indexOf(l)?go.push(l):!n[a]&&go.indexOf(l)>-1?go.splice(go.indexOf(l),1):"metaKey"===a&&n[a]&&3===go.length&&(n.ctrlKey||n.shiftKey||n.altKey||(go=go.slice(go.indexOf(l))))}),i in da){da[i]=!0;for(const a in Fu)Fu[a]===i&&(Du[a]=!0);if(!e)return}for(const a in da)Object.prototype.hasOwnProperty.call(da,a)&&(da[a]=n[lU[a]]);n.getModifierState&&(!n.altKey||n.ctrlKey)&&n.getModifierState("AltGraph")&&(-1===go.indexOf(17)&&go.push(17),-1===go.indexOf(18)&&go.push(18),da[17]=!0,da[18]=!0);const r=Tx();if(e)for(let a=0;a1&&(r=nne(Fu,n)),(n="*"===(n=n[n.length-1])?"*":Sx(n))in Ho||(Ho[n]=[]),Ho[n].push({keyup:l,keydown:c,scope:o,mods:r,shortcut:i[a],method:e,key:i[a],splitKey:d,element:s});if(typeof s<"u"&&window){if(!df.has(s)){const f=function(){return lne(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,s)},A=function(){let y=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;lne(y,s),function R9e(n){let t=n.keyCode||n.which||n.charCode;const e=go.indexOf(t);if(e>=0&&go.splice(e,1),n.key&&"meta"===n.key.toLowerCase()&&go.splice(0,go.length),(93===t||224===t)&&(t=91),t in da){da[t]=!1;for(const i in Fu)Fu[i]===t&&(Du[i]=!1)}}(y)};df.set(s,{keydownListener:f,keyupListenr:A,capture:u}),aU(s,"keydown",f,u),aU(s,"keyup",A,u)}if(!Ex){const f=()=>{go=[]};Ex={listener:f,capture:u},aU(window,"focus",f,u)}}}function cU(n){const t=Object.values(Ho).flat();if(t.findIndex(i=>{let{element:r}=i;return r===n})<0){const{keydownListener:i,keyupListenr:r,capture:o}=df.get(n)||{};i&&r&&(Cx(n,"keyup",r,o),Cx(n,"keydown",i,o),df.delete(n))}if((t.length<=0||df.size<=0)&&(Object.keys(df).forEach(r=>{const{keydownListener:o,keyupListenr:s,capture:a}=df.get(r)||{};o&&s&&(Cx(r,"keyup",s,a),Cx(r,"keydown",o,a),df.delete(r))}),df.clear(),Object.keys(Ho).forEach(r=>delete Ho[r]),Ex)){const{listener:r,capture:o}=Ex;Cx(window,"focus",r,o),Ex=null}}const dU={getPressedKeyString:function F9e(){return go.map(n=>(n=>Object.keys(Mx).find(t=>Mx[t]===n))(n)||(n=>Object.keys(Fu).find(t=>Fu[t]===n))(n)||String.fromCharCode(n))},setScope:one,getScope:Tx,deleteScope:function P9e(n,t){let e,i;n||(n=Tx());for(const r in Ho)if(Object.prototype.hasOwnProperty.call(Ho,r))for(e=Ho[r],i=0;i{let{element:a}=s;return cU(a)}):i++;Tx()===n&&one(t||"all")},getPressedKeyCodes:function I9e(){return go.slice(0)},getAllKeyCodes:function D9e(){const n=[];return Object.keys(Ho).forEach(t=>{Ho[t].forEach(e=>{let{key:i,scope:r,mods:o,shortcut:s}=e;n.push({scope:r,shortcut:s,mods:o,keys:i.split("+").map(a=>Sx(a))})})}),n},isPressed:function B9e(n){return"string"==typeof n&&(n=Sx(n)),-1!==go.indexOf(n)},filter:function k9e(n){const t=n.target||n.srcElement,{tagName:e}=t;let i=!0;const r="INPUT"===e&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(r||"TEXTAREA"===e||"SELECT"===e)&&!t.readOnly)&&(i=!1),i},trigger:function O9e(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(Ho).forEach(e=>{Ho[e].filter(r=>r.scope===t&&r.shortcut===n).forEach(r=>{r&&r.method&&r.method()})})},unbind:sne,keyMap:Mx,modifier:Fu,modifierMap:lU};for(const n in dU)Object.prototype.hasOwnProperty.call(dU,n)&&(Du[n]=dU[n]);if(typeof window<"u"){const n=window.hotkeys;Du.noConflict=t=>(t&&window.hotkeys===Du&&(window.hotkeys=n),Du),window.hotkeys=Du}var L9e=p(7239),N9e=p.n(L9e);function uU(){return(uU=k(function*(n){const t=[new ClipboardItem({[n.type]:n})];yield navigator.clipboard.write(t)})).apply(this,arguments)}const cne=Kt(so,n=>n.screenshotToClipboardEnabled);function V9e(n,t){if(1&n){const e=Dn();D(0,"cc-action-icon",2),ze("click",function(){return Ot(e),Rt(Le().makeScreenshotToClipboard())}),U()}if(2&n){const e=Le();Un("disabled",!e.isWriteToClipboardAllowed),Ua("title",e.TITLE_CLIPBOARD_BUTTON),_e("icon","fa fa-camera")}}function Q9e(n,t){if(1&n){const e=Dn();D(0,"cc-action-icon",2),ze("click",function(){return Ot(e),Rt(Le().makeScreenshotToFile())}),U()}2&n&&(Ua("title",Le().TITLE_FILE_BUTTON),_e("icon","fa fa-camera"))}let z9e=(()=>{class n{constructor(e,i,r,o,s){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.store=o,this.state=s,this.SCREENSHOT_HOTKEY_TO_FILE="Ctrl+Alt+S",this.SCREENSHOT_HOTKEY_TO_CLIPBOARD="Ctrl+Alt+F",this.isScreenshotToClipboardEnabled$=this.store.select(cne)}ngOnInit(){this.isWriteToClipboardAllowed=function H9e(){return"clipboard"in navigator&&"write"in navigator.clipboard}(),this.TITLE_CLIPBOARD_BUTTON=this.createTitleClipboardButton(),this.TITLE_FILE_BUTTON=this.createTitleFileButton(),Du(this.SCREENSHOT_HOTKEY_TO_FILE,()=>{this.makeScreenshotToFile()}),Du(this.SCREENSHOT_HOTKEY_TO_CLIPBOARD,()=>{this.makeScreenshotToClipboard()})}makeScreenshotToFile(){var e=this;return k(function*(){const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i);e.downloadScreenshot(o,e.state.getValue().files),e.applyRenderSettings(i,r)})()}makeScreenshotToClipboard(){var e=this;return k(function*(){if(!e.isWriteToClipboardAllowed)return;const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i),s=new Promise(l=>o.toBlob(l));e.applyRenderSettings(i,r);const a=yield s;yield function U9e(n){return uU.apply(this,arguments)}(a)})()}downloadScreenshot(e,i){const r=e.toDataURL("image/png"),o=document.createElement("a");o.download=function _be(n,t){const e=ou(n)?"delta":"",r=l2(n).map(a=>function bbe(n){return n.file.fileMeta.fileName.replace(/(.cc)?.json$/,"")}(a)),o=function vbe(n){return n.length<=3?n.join(a2):[n.at(0),wW,n.at(-1)].join(a2)}(r);return function ybe(n,t,e){const i=[t,n].filter(o=>o.length>0).join(a2),r=255-e.length-iR.length;return i.length<=r?[i,a2,e,iR].join(""):[i.slice(0,r-1),wW,e,iR].join("")}(o,e,t)}(i,"map"),o.href=r,document.body.appendChild(o),o.click(),o.remove()}saveRenderSettings(e){const i=e.getPixelRatio(),r=new tn;return e.getClearColor(r),{pixelRatio:i,clearColor:r}}applyRenderSettings(e,i){const{pixelRatio:r,clearColor:o}=i;e.setPixelRatio(r),e.setClearColor(o),e.render(this.threeSceneService.scene,this.threeCameraService.camera)}buildScreenShotCanvas(e){var i=this;return k(function*(){e.setPixelRatio(window.devicePixelRatio),e.setClearColor(new tn(0,0,0),0),e.render(i.threeSceneService.scene,i.threeCameraService.camera);const r=new Set(["cc-logo","cc-tool-bar","cc-view-cube","cc-ribbon-bar","cc-file-extension-bar","cc-attribute-side-bar","cc-loading-file-progess-spinner"]),o=new Set(["legend-panel-button"]),s=document.querySelector("body")?.offsetHeight,a=document.querySelector("cc-ribbon-bar")?.offsetHeight,l=document.querySelector("cc-tool-bar")?.offsetHeight,c=document.querySelector("cc-file-extension-bar")?.offsetHeight,d=a+l+c,u=yield N9e()(document.querySelector("body"),{removeContainer:!0,backgroundColor:"#00",scrollY:-d,height:s-d,ignoreElements:h=>r.has(h.tagName.toLowerCase())||o.has(h.id)||"10000"===h.style.zIndex});return i.getCroppedCanvas(u)})()}getCroppedCanvas(e){const i=e.getContext("2d"),r=e.width,o=e.height,a=i.getImageData(0,0,r,o).data;let l=r,c=o,d=0,u=0;for(let A=0;A0&&(l=Math.min(l,A),d=Math.max(d,A),c=Math.min(c,y),u=Math.max(u,y));const h=document.createElement("canvas"),f=h.getContext("2d");return h.width=d-l+1,h.height=u-c+1,f.drawImage(e,l,c,h.width,h.height,0,0,h.width,h.height),h}createTitleClipboardButton(){return this.isWriteToClipboardAllowed?`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard) or ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file)`:"Firefox does not support copying to clipboard"}createTitleFileButton(){return`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file) or ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard)`}static{this.\u0275fac=function(i){return new(i||n)($(Mu),$(Vc),$(Ki),$($t),$(Zr))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-screenshot-button"]],decls:4,vars:6,consts:[[3,"icon","title","disabled"],[3,"icon","title"],[3,"click","icon","title"]],template:function(i,r){1&i&&(pt(0,V9e,1,4,"cc-action-icon",0),qe(1,"async"),pt(2,Q9e,1,2,"cc-action-icon",1),qe(3,"async")),2&i&&(Tt(0,rt(1,2,r.isScreenshotToClipboardEnabled$)?0:-1),Q(2),Tt(2,rt(3,4,r.isScreenshotToClipboardEnabled$)?-1:2))},dependencies:[eg,Kn],encapsulation:2})}}return n})();function q9e(n){return`\t\u2022 ${n.filePath} (${n.value})\n`}function G9e(n){return`${n.toUpperCase()}\n`}function X9e(n){return n.type===qa.FILE&&void 0!==n.attributes}function K9e(n,t,e){for(const[i,r]of Object.entries(n.attributes)){const o=t?.[i]?.direction,s={filePath:n.path,value:r};if(e.has(i)){const a=e.get(i);Y9e(a,s,o),e.set(i,a.slice(0,10))}else e.set(i,[s])}}function Y9e(n,t,e){const i=function Z9e(n){return 1===n?(t,e)=>t.value-e.value:(t,e)=>e.value-t.value}(e),r=n.findIndex(o=>i(t,o)<0);-1===r?n.push(t):n.splice(r,0,t)}let dne=(()=>{class n{constructor(e){this.state=e}getClipboardText(){const r=function j9e(n,t){const e=new Map;for(const{data:i}of yo(n))X9e(i)&&K9e(i,t,e);return e}(this.getUnifiedMapNode(),this.state.getValue().fileSettings.attributeDescriptors);return function W9e(n){let t="";for(const[e,i]of n.entries()){t+=G9e(e);for(const r of i)t+=q9e(r)}return t}(r)}getUnifiedMapNode(){const{unifiedMapNode:e}=Hc(this.state.getValue());return e}static{this.\u0275fac=function(i){return new(i||n)(ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),J9e=(()=>{class n{constructor(e){this.copyToClipboardService=e}copyNamesToClipBoard(){var e=this;return k(function*(){yield navigator.clipboard.writeText(e.copyToClipboardService.getClipboardText())})()}static{this.\u0275fac=function(i){return new(i||n)($(dne))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-copy-to-clipboard-button"]],decls:1,vars:0,consts:[["icon","fa fa-clipboard","title","Copy filenames with highest metric values to clipboard",3,"click"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.copyNamesToClipBoard()}),U())},dependencies:[eg],encapsulation:2})}}return n})();class eHe{parse(t,e={}){const i=(e=Object.assign({binary:!1},e)).binary,r=[];let o=0;t.traverse(function(b){if(b.isMesh){const M=b.geometry,C=M.index,E=M.getAttribute("position");o+=null!==C?C.count/3:E.count/3,r.push({object3d:b,geometry:M})}});let s,a=80;if(!0===i){const M=new ArrayBuffer(2*o+3*o*4*4+80+4);s=new DataView(M),s.setUint32(a,o,!0),a+=4}else s="",s+="solid exported\n";const l=new se,c=new se,d=new se,u=new se,h=new se,f=new se;for(let b=0,M=r.length;b>1|(21845&Mo)<<1;Dx[Mo]=((65280&(Km=(61680&(Km=(52428&Km)>>2|(13107&Km)<<2))>>4|(3855&Km)<<4))>>8|(255&Km)<<8)>>1}var ku=function(n,t,e){for(var i=n.length,r=0,o=new el(t);r>l]=c}else for(a=new el(i),r=0;r>15-n[r]);return a},Ym=new $r(288);for(Mo=0;Mo<144;++Mo)Ym[Mo]=8;for(Mo=144;Mo<256;++Mo)Ym[Mo]=9;for(Mo=256;Mo<280;++Mo)Ym[Mo]=7;for(Mo=280;Mo<288;++Mo)Ym[Mo]=8;var kx=new $r(32);for(Mo=0;Mo<32;++Mo)kx[Mo]=5;var Ane=ku(Ym,9,0),_ne=ku(kx,5,0),Bx=function(n){return(n+7)/8|0},Zm=function(n,t,e){return(null==t||t<0)&&(t=0),(null==e||e>n.length)&&(e=n.length),new $r(n.subarray(t,e))},vne=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],gr=function(n,t,e){var i=new Error(t||vne[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,gr),!e)throw i;return i},Bu=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8},Vb=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8,n[i+2]|=e>>16},eF=function(n,t){for(var e=[],i=0;ih&&(h=o[i].s);var f=new el(h+1),A=tF(e[d-1],f,0);if(A>t){i=0;var y=0,_=A-t,b=1<<_;for(o.sort(function(N,H){return f[H.s]-f[N.s]||N.f-H.f});it))break;y+=b-(1<>=_;y>0;){var C=o[i].s;f[C]=0&&y;--i){var E=o[i].s;f[E]==t&&(--f[E],++y)}A=t}return{t:new $r(f),l:A}},tF=function(n,t,e){return-1==n.s?Math.max(tF(n.l,t,e+1),tF(n.r,t,e+1)):t[n.s]=e},mU=function(n){for(var t=n.length;t&&!n[--t];);for(var e=new el(++t),i=0,r=n[0],o=1,s=function(l){e[i++]=l},a=1;a<=t;++a)if(n[a]==r&&a!=t)++o;else{if(!r&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(r),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(r);o=1,r=n[a]}return{c:e.subarray(0,i),n:t}},Qb=function(n,t){for(var e=0,i=0;i>8,n[r+2]=255^n[r],n[r+3]=255^n[r+1];for(var o=0;o4&&!B[Fx[we-1]];--we);var te,Ae,le,Pe,Ee=c+5<<3,ne=Qb(r,Ym)+Qb(o,kx)+s,Ie=Qb(r,h)+Qb(o,y)+s+14+3*we+Qb(H,B)+2*H[16]+3*H[17]+7*H[18];if(l>=0&&Ee<=ne&&Ee<=Ie)return pU(t,d,n.subarray(l,l+c));if(Bu(t,d,1+(Ie15&&(Bu(t,d,cn[j]>>5&127),d+=cn[j]>>12)}}else te=Ane,Ae=Ym,le=_ne,Pe=kx;for(j=0;j255){var ce;Vb(t,d,te[257+(ce=ue>>18&31)]),d+=Ae[ce+257],ce>7&&(Bu(t,d,ue>>23&31),d+=Ub[ce]);var ae=31&ue;Vb(t,d,le[ae]),d+=Pe[ae],ae>3&&(Vb(t,d,ue>>5&8191),d+=Hb[ae])}else Vb(t,d,te[ue]),d+=Ae[ue]}return Vb(t,d,te[256]),d+Ae[256]},yne=new Ix([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),gU=new $r(0),xne=function(){for(var n=new Int32Array(256),t=0;t<256;++t){for(var e=t,i=9;--i;)e=(1&e&&-306674912)^e>>>1;n[t]=e}return n}(),nF=function(){var n=-1;return{p:function(t){for(var e=n,i=0;i>>8;n=e},d:function(){return~n}}},iF=function(n,t,e,i,r){if(!r&&(r={l:1},t.dictionary)){var o=t.dictionary.subarray(-32768),s=new $r(o.length+n.length);s.set(o),s.set(n,o.length),n=s,r.w=o.length}return function(n,t,e,i,r,o){var s=o.z||n.length,a=new $r(i+s+5*(1+Math.ceil(s/7e3))+r),l=a.subarray(i,a.length-r),c=o.l,d=7&(o.r||0);if(t){d&&(l[0]=o.r>>3);for(var u=yne[t-1],h=u>>13,f=8191&u,A=(1<7e3||B>24576)&&(te>423||!c)){d=AU(n,l,0,E,L,N,j,B,we,R-we,d),B=H=j=0,we=R;for(var Ae=0;Ae<286;++Ae)L[Ae]=0;for(Ae=0;Ae<30;++Ae)N[Ae]=0}var le=2,Pe=0,it=f,_t=ne-Ie&32767;if(te>2&&Ee==C(R-_t))for(var Ht=Math.min(h,te)-1,cn=Math.min(32767,R),ce=Math.min(258,te);_t<=cn&&--it&&ne!=Ie;){if(n[R+le]==n[R+le-_t]){for(var ue=0;uele){if(le=ue,Pe=_t,ue>Ht)break;var ae=Math.min(_t,ue-2),Z=0;for(Ae=0;AeZ&&(Z=je,Ie=$e)}}}_t+=(ne=Ie)-(Ie=y[ne])&32767}if(Pe){E[B++]=268435456|KI[le]<<18|fU[Pe];var Nt=31&KI[le],re=31&fU[Pe];j+=Ub[Nt]+Hb[re],++L[257+Nt],++N[re],ee=R+le,++H}else E[B++]=n[R],++L[n[R]]}}for(R=Math.max(R,ee);R=s&&(l[d/8|0]=c,ht=s),d=pU(l,d+1,n.subarray(R,ht))}o.i=s}return Zm(a,0,i+Bx(d)+r)}(n,null==t.level?6:t.level,null==t.mem?r.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(n.length)))):20:12+t.mem,e,i,r)},rF=function(n,t){var e={};for(var i in n)e[i]=n[i];for(var i in t)e[i]=t[i];return e},Do=function(n,t,e){for(;e;++t)n[t]=e,e>>>=8};function sF(n,t){return iF(n,t||{},0,0)}var MU=function(n,t,e,i){for(var r in n){var o=n[r],s=t+r,a=i;Array.isArray(o)&&(a=rF(i,o[1]),o=o[0]),o instanceof $r?e[s]=[o,a]:(e[s+="/"]=[new $r(0),a],MU(o,s,e,i))}},Rne=typeof TextEncoder<"u"&&new TextEncoder,EU=typeof TextDecoder<"u"&&new TextDecoder;try{EU.decode(gU,{stream:!0})}catch{}function ep(n,t){if(t){for(var e=new $r(n.length),i=0;i>1)),s=0,a=function(d){o[s++]=d};for(i=0;io.length){var l=new $r(s+8+(r-i<<1));l.set(o),o=l}var c=n.charCodeAt(i);c<128||t?a(c):c<2048?(a(192|c>>6),a(128|63&c)):c>55295&&c<57344?(a(240|(c=65536+(1047552&c)|1023&n.charCodeAt(++i))>>18),a(128|c>>12&63),a(128|c>>6&63),a(128|63&c)):(a(224|c>>12),a(128|c>>6&63),a(128|63&c))}return Zm(o,0,s)}var Rx=function(n){var t=0;if(n)for(var e in n){var i=n[e].length;i>65535&&gr(9),t+=i+4}return t},aF=function(n,t,e,i,r,o,s,a){var l=i.length,c=e.extra,d=a&&a.length,u=Rx(c);Do(n,t,null!=s?33639248:67324752),t+=4,null!=s&&(n[t++]=20,n[t++]=e.os),n[t]=20,t+=2,n[t++]=e.flag<<1|(o<0&&8),n[t++]=r&&8,n[t++]=255&e.compression,n[t++]=e.compression>>8;var h=new Date(null==e.mtime?Date.now():e.mtime),f=h.getFullYear()-1980;if((f<0||f>119)&&gr(10),Do(n,t,f<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>1),t+=4,-1!=o&&(Do(n,t,e.crc),Do(n,t+4,o<0?-o-2:o),Do(n,t+8,e.size)),Do(n,t+12,l),Do(n,t+14,u),t+=16,null!=s&&(Do(n,t,d),Do(n,t+6,e.attrs),Do(n,t+10,s),t+=14),n.set(i,t),t+=l,u)for(var A in c){var y=c[A],_=y.length;Do(n,t,+A),Do(n,t+2,_),n.set(y,t+4),t+=4+_}return d&&(n.set(a,t),t+=d),t};function bHe(n){return` \n \n \n \n \n \n`}function SU(){return(SU=k(function*(n){const{vertices:t,triangles:e,volumes:i}=function Une(n){const t=[],e=[],i=[],r=new Map,o=new Map;for(const a of n.children)TU(a,t,e,r,1,o,i);return{vertices:t,triangles:e,volumes:i}}(n),r=function yHe(n,t){const i=function xHe(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(n),r=function CHe(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(t);return'\n\n PrusaSlicer-2.7.2\n \n \n \n'+i+r+' \n \n \n \n\n'}(t,e),o=function gHe(n){let t='\n\n \n \n';for(const e of n)t+=bHe(e);return t+=" \n\n",t}(i);return function mHe(n,t){t||(t={});var e={},i=[];MU(n,"",e,t);var r=0,o=0;for(var s in e){var a=e[s],l=a[0],c=a[1],d=0==c.level?0:8,h=(u=ep(s)).length,f=c.comment,A=f&&ep(f),y=A&&A.length,_=Rx(c.extra);h>65535&&gr(11);var b=d?sF(l,c):l,M=b.length,C=nF();C.p(l),i.push(rF(c,{size:l.length,crc:C.d(),c:b,f:u,m:A,u:h!=s.length||A&&f.length!=y,o:r,compression:d})),r+=30+h+_+M,o+=76+2*(h+_)+(y||0)+M}for(var E=new $r(o+22),L=r,N=o-r,H=0;H\n \n \n')},Metadata:{"Slic3r_PE_model.config":ep(o)},"[Content_Types].xml":ep('\n\n \n \n')},{comment:"created by CodeCharta"}).buffer})).apply(this,arguments)}function TU(n,t,e,i,r,o,s,a=void 0){if(!n.visible)return;for(const d of n.children){let u=n.matrix;a&&(u=a.clone().multiply(n.matrix)),TU(d,t,e,i,r,o,s,u)}const l=function Hne(n){const t=new Map;if(n.geometry.attributes.color)for(let e=0;es);t.set(i,r)}return t}(n),c=new Map;for(const[d,u]of l.entries()){const h=e.length;Vne(t,i,c,u,n,a),Qne(n.geometry,e,c,u),zne(n,d,h,e.length-1,s,r,o),r++}}function Vne(n,t,e,i,r,o){const s=r.geometry.attributes.position;for(const a of i){const l=new se(s.getX(a),s.getY(a),s.getZ(a));l.applyMatrix4(r.matrix),o&&l.applyMatrix4(o);const c=``;t.has(c)?e.set(a,t.get(c)):(n.push(c),t.set(c,n.length-1),e.set(a,n.length-1))}}function Qne(n,t,e,i){if(n.index){const r=n.index;for(let o=0;o`;t.push(c)}}}else for(let r=0;r`;t.push(o)}}function zne(n,t,e,i,r,o,s){s.has(t)||s.set(t,s.size+1);const a=s.get(t);r.push({id:o,name:"Map"===n.name?`${n.name} 0x${t}`:n.name,color:t,extruder:a,firstTriangleId:e,lastTriangleId:i})}function IU(n,t){return(n instanceof tr?[n.getX(t),n.getY(t),n.getZ(t)]:[n[t],n[t+1],n[t+2]]).map(i=>Math.round(255*i).toString(16).padStart(2,"0")).join("")}"function"==typeof queueMicrotask?queueMicrotask:"function"==typeof setTimeout&&setTimeout;class FU{constructor(t){this.isFont=!0,this.type="Font",this.data=t}generateShapes(t,e=100){const i=[],r=function SHe(n,t,e){const i=Array.from(n),r=t/e.resolution,o=(e.boundingBox.yMax-e.boundingBox.yMin+e.underlineThickness)*r,s=[];let a=0,l=0;for(let c=0;c{e.geometry=r});const i=new Al;return i.copy(t.defaultMaterial),i.polygonOffset=!0,i.polygonOffsetUnits=1,i.polygonOffsetFactor=.1,e.material=i,e.updateColor(t.numberOfColors),new Promise(r=>{r(e)})})()}changeSize(t){this.boundingBoxCalculated=!1,this.createBaseplateGeometryStrategy.create(t).then(e=>{this.geometry=e})}}class lg extends Fd{constructor(t,e,i=1,r=!0){super(t,e),this.minWidth=i,this.manualVisibility=r}setManualVisibility(t){this.manualVisibility=t,this.updateVisibility()}setCurrentWidth(t){this.currentWidth=t,this.updateVisibility()}updateVisibility(){this.visible=this.manualVisibility&&this.visibleBecauseOfColor&&(!this.currentWidth||this.currentWidth>=this.minWidth)}updateColor(t){this.visibleBecauseOfColor=this.colorChangeStrategy.execute(t,this);for(const e of this.children)e instanceof Fd&&e.updateColor(t);this.updateVisibility()}}class yl{execute(t,e){if(t<=1)return!1;let i;return i=t<4?[1,1,1]:4===t?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class kHe extends lg{constructor(){super("Map",new yl,1,!1)}init(t){var e=this;return k(function*(){e.material=t.originalMapMesh.clone().material,e.originalColors=t.originalMapMesh.geometry.attributes.color;const i=t.originalMapMesh.geometry.clone();return i.computeBoundingBox(),i.rotateX(Math.PI/2),e.updateMapGeometry(t,i),i.computeBoundingBox(),i.rotateZ(-Math.PI/2),e.geometry=i,e})()}updateMapGeometry(t,e){const i=t.width-2*t.mapSideOffset,o=i/e.boundingBox.max.x;return e.scale(o,o,o),e.translate(-i/2,i/2,0),this.updateMapColors(this.originalColors,e,t.numberOfColors),e}updateMapColors(t,e,i){const r=[];for(let o=0;o.75&&a>.75?c=i<4?[1,1,1]:[1,1,0]:s>.45&&a<.1?c=i<4?[1,1,1]:[1,0,0]:s<5&&a>.6?c=i<4?[1,1,1]:[0,1,0]:(console.error("Unknown color"),c=[1,1,1]),r.push(...c)}e.setAttribute("color",new Bn(r,3))}changeSize(t,e){var i=this;return k(function*(){const r=(t.width-2*t.mapSideOffset)/(e-2*t.mapSideOffset);i.geometry.scale(r,r,r)})()}updateColor(t){this.updateMapColors(this.originalColors,this.geometry,t)}}const BHe=Oc;class DU extends _l{constructor(t){super(t),this.defaultDPI=90,this.defaultUnit="px"}load(t,e,i,r){const o=this,s=new xu(o.manager);s.setPath(o.path),s.setRequestHeader(o.requestHeader),s.setWithCredentials(o.withCredentials),s.load(t,function(a){try{e(o.parse(a))}catch(l){r?r(l):console.error(l),o.manager.itemError(t)}},i,r)}parse(t){const e=this;function s(ce,ue,ae,Z,$e,wt,je,Nt){if(0==ue||0==ae)return void ce.lineTo(Nt.x,Nt.y);Z=Z*Math.PI/180,ue=Math.abs(ue),ae=Math.abs(ae);const re=(je.x-Nt.x)/2,ht=(je.y-Nt.y)/2,Ve=Math.cos(Z)*re+Math.sin(Z)*ht,At=-Math.sin(Z)*re+Math.cos(Z)*ht;let ot=ue*ue,vt=ae*ae;const Ce=Ve*Ve,be=At*At,de=Ce/ot+be/vt;if(de>1){const Zt=Math.sqrt(de);ot=(ue*=Zt)*ue,vt=(ae*=Zt)*ae}const Y=ot*be+vt*Ce;let Ut=Math.sqrt(Math.max(0,(ot*vt-Y)/Y));$e===wt&&(Ut=-Ut);const Bt=Ut*ue*At/ae,Vt=-Ut*ae*Ve/ue,$n=Math.cos(Z)*Bt-Math.sin(Z)*Vt+(je.x+Nt.x)/2,fn=Math.sin(Z)*Bt+Math.cos(Z)*Vt+(je.y+Nt.y)/2,xn=a(1,0,(Ve-Bt)/ue,(At-Vt)/ae),Ei=a((Ve-Bt)/ue,(At-Vt)/ae,(-Ve-Bt)/ue,(-At-Vt)/ae)%(2*Math.PI);ce.currentPath.absellipse($n,fn,ue,ae,xn,xn+Ei,0===wt,Z)}function a(ce,ue,ae,Z){const $e=ce*ae+ue*Z,wt=Math.sqrt(ce*ce+ue*ue)*Math.sqrt(ae*ae+Z*Z);let je=Math.acos(Math.max(-1,Math.min(1,$e/wt)));return ce*Z-ue*ae<0&&(je=-je),je}function A(ce,ue){ue=Object.assign({},ue);let ae={};if(ce.hasAttribute("class")){const je=ce.getAttribute("class").split(/\s/).filter(Boolean).map(Nt=>Nt.trim());for(let Nt=0;NtNumber.EPSILON}function R(ce){const ue=ce.elements;return Math.sqrt(ue[0]*ue[0]+ue[1]*ue[1])}function B(ce){const ue=ce.elements;return Math.sqrt(ue[3]*ue[3]+ue[4]*ue[4])}const we=[],Ee={},ne=[],Ie=new xi,te=new xi,Ae=new xi,le=new xi,Pe=new nt,it=new se,_t=new xi,Ht=(new DOMParser).parseFromString(t,"image/svg+xml");return function i(ce,ue){if(1!==ce.nodeType)return;const ae=function E(ce){if(!(ce.hasAttribute("transform")||"use"===ce.nodeName&&(ce.hasAttribute("x")||ce.hasAttribute("y"))))return null;const ue=function L(ce){const ue=new xi,ae=Ie;if("use"===ce.nodeName&&(ce.hasAttribute("x")||ce.hasAttribute("y"))){const Z=C(ce.getAttribute("x")),$e=C(ce.getAttribute("y"));ue.translate(Z,$e)}if(ce.hasAttribute("transform")){const Z=ce.getAttribute("transform").split(")");for(let $e=Z.length-1;$e>=0;$e--){const wt=Z[$e].trim();if(""===wt)continue;const je=wt.indexOf("(");if(je>0&&je=1){let At=0;ht.length>=2&&(At=ht[1]),ae.translate(ht[0],At)}break;case"rotate":if(ht.length>=1){let Ve=0,At=0,ot=0;Ve=ht[0]*Math.PI/180,ht.length>=3&&(At=ht[1],ot=ht[2]),te.makeTranslation(-At,-ot),Ae.makeRotation(Ve),le.multiplyMatrices(Ae,te),te.makeTranslation(At,ot),ae.multiplyMatrices(te,le)}break;case"scale":if(ht.length>=1){const Ve=ht[0];let At=Ve;ht.length>=2&&(At=ht[1]),ae.scale(Ve,At)}break;case"skewX":1===ht.length&&ae.set(1,Math.tan(ht[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===ht.length&&ae.set(1,0,0,Math.tan(ht[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===ht.length&&ae.set(ht[0],ht[2],ht[4],ht[1],ht[3],ht[5],0,0,1)}}ue.premultiply(ae)}}return ue}(ce);return ne.length>0&&ue.premultiply(ne[ne.length-1]),_t.copy(ue),ne.push(ue),ue}(ce);let Z=!1,$e=null;switch(ce.nodeName){case"svg":case"g":ue=A(ce,ue);break;case"style":!function o(ce){if(ce.sheet&&ce.sheet.cssRules&&ce.sheet.cssRules.length)for(let ue=0;ue$e.trim());for(let $e=0;$e""!==je));Ee[Z[$e]]=Object.assign(Ee[Z[$e]]||{},wt)}}}(ce);break;case"path":ue=A(ce,ue),ce.hasAttribute("d")&&($e=function r(ce){const ue=new Om,ae=new nt,Z=new nt,$e=new nt;let wt=!0,je=!1;const Nt=ce.getAttribute("d");if(""===Nt||"none"===Nt)return null;const re=Nt.match(/[a-df-z][^a-df-z]*/gi);for(let ht=0,Ve=re.length;ht0&&(ae.copy($e),ue.currentPath.currentPoint.copy(ae),wt=!0);break;default:console.warn(At)}je=!1}return ue}(ce));break;case"rect":ue=A(ce,ue),$e=function l(ce){const ue=C(ce.getAttribute("x")||0),ae=C(ce.getAttribute("y")||0),Z=C(ce.getAttribute("rx")||ce.getAttribute("ry")||0),$e=C(ce.getAttribute("ry")||ce.getAttribute("rx")||0),wt=C(ce.getAttribute("width")),je=C(ce.getAttribute("height")),Nt=.448084975506,re=new Om;return re.moveTo(ue+Z,ae),re.lineTo(ue+wt-Z,ae),(0!==Z||0!==$e)&&re.bezierCurveTo(ue+wt-Z*Nt,ae,ue+wt,ae+$e*Nt,ue+wt,ae+$e),re.lineTo(ue+wt,ae+je-$e),(0!==Z||0!==$e)&&re.bezierCurveTo(ue+wt,ae+je-$e*Nt,ue+wt-Z*Nt,ae+je,ue+wt-Z,ae+je),re.lineTo(ue+Z,ae+je),(0!==Z||0!==$e)&&re.bezierCurveTo(ue+Z*Nt,ae+je,ue,ae+je-$e*Nt,ue,ae+je-$e),re.lineTo(ue,ae+$e),(0!==Z||0!==$e)&&re.bezierCurveTo(ue,ae+$e*Nt,ue+Z*Nt,ae,ue+Z,ae),re}(ce);break;case"polygon":ue=A(ce,ue),$e=function c(ce){const Z=new Om;let $e=0;return ce.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function ue(wt,je,Nt){const re=C(je),ht=C(Nt);0===$e?Z.moveTo(re,ht):Z.lineTo(re,ht),$e++}),Z.currentPath.autoClose=!0,Z}(ce);break;case"polyline":ue=A(ce,ue),$e=function d(ce){const Z=new Om;let $e=0;return ce.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function ue(wt,je,Nt){const re=C(je),ht=C(Nt);0===$e?Z.moveTo(re,ht):Z.lineTo(re,ht),$e++}),Z.currentPath.autoClose=!1,Z}(ce);break;case"circle":ue=A(ce,ue),$e=function u(ce){const ue=C(ce.getAttribute("cx")||0),ae=C(ce.getAttribute("cy")||0),Z=C(ce.getAttribute("r")||0),$e=new VA;$e.absarc(ue,ae,Z,0,2*Math.PI);const wt=new Om;return wt.subPaths.push($e),wt}(ce);break;case"ellipse":ue=A(ce,ue),$e=function h(ce){const ue=C(ce.getAttribute("cx")||0),ae=C(ce.getAttribute("cy")||0),Z=C(ce.getAttribute("rx")||0),$e=C(ce.getAttribute("ry")||0),wt=new VA;wt.absellipse(ue,ae,Z,$e,0,2*Math.PI);const je=new Om;return je.subPaths.push(wt),je}(ce);break;case"line":ue=A(ce,ue),$e=function f(ce){const ue=C(ce.getAttribute("x1")||0),ae=C(ce.getAttribute("y1")||0),Z=C(ce.getAttribute("x2")||0),$e=C(ce.getAttribute("y2")||0),wt=new Om;return wt.moveTo(ue,ae),wt.lineTo(Z,$e),wt.currentPath.autoClose=!1,wt}(ce);break;case"defs":Z=!0;break;case"use":ue=A(ce,ue);const Nt=(ce.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),re=ce.viewportElement.getElementById(Nt);re?i(re,ue):console.warn("SVGLoader: 'use node' references non-existent node id: "+Nt)}$e&&(void 0!==ue.fill&&"none"!==ue.fill&&$e.color.setStyle(ue.fill,BHe),function N(ce,ue){function ae(je){it.set(je.x,je.y,1).applyMatrix3(ue),je.set(it.x,it.y)}function Z(je){const Nt=je.xRadius,re=je.yRadius,ht=Math.cos(je.aRotation),Ve=Math.sin(je.aRotation),At=new se(Nt*ht,Nt*Ve,0),ot=new se(-re*Ve,re*ht,0),vt=At.applyMatrix3(ue),Ce=ot.applyMatrix3(ue),be=Ie.set(vt.x,Ce.x,0,vt.y,Ce.y,0,0,0,1),de=te.copy(be).invert(),Ut=Ae.copy(de).transpose().multiply(de).elements,Bt=function ee(ce,ue,ae){let Z,$e,wt,je,Nt;const re=ce+ae,ht=ce-ae,Ve=Math.sqrt(ht*ht+4*ue*ue);return re>0?(Z=.5*(re+Ve),Nt=1/Z,$e=ce*Nt*ae-ue*Nt*ue):re<0?$e=.5*(re-Ve):(Z=.5*Ve,$e=-.5*Ve),wt=ht>0?ht+Ve:ht-Ve,Math.abs(wt)>2*Math.abs(ue)?(Nt=-2*ue/wt,je=1/Math.sqrt(1+Nt*Nt),wt=Nt*je):0===Math.abs(ue)?(wt=1,je=0):(Nt=-.5*wt/ue,wt=1/Math.sqrt(1+Nt*Nt),je=Nt*wt),ht>0&&(Nt=wt,wt=-je,je=Nt),{rt1:Z,rt2:$e,cs:wt,sn:je}}(Ut[0],Ut[1],Ut[4]),Vt=Math.sqrt(Bt.rt1),$n=Math.sqrt(Bt.rt2);if(je.xRadius=1/Vt,je.yRadius=1/$n,je.aRotation=Math.atan2(Bt.sn,Bt.cs),!((je.aEndAngle-je.aStartAngle)%(2*Math.PI){const{x:Ci,y:Rn}=new se(Math.cos(cr),Math.sin(cr),0).applyMatrix3(Zt);return Math.atan2(Rn,Ci)};je.aStartAngle=Cn(je.aStartAngle),je.aEndAngle=Cn(je.aEndAngle),H(ue)&&(je.aClockwise=!je.aClockwise)}}function $e(je){const Nt=R(ue),re=B(ue);je.xRadius*=Nt,je.yRadius*=re;const ht=Nt>Number.EPSILON?Math.atan2(ue.elements[1],ue.elements[0]):Math.atan2(-ue.elements[3],ue.elements[4]);je.aRotation+=ht,H(ue)&&(je.aStartAngle*=-1,je.aEndAngle*=-1,je.aClockwise=!je.aClockwise)}const wt=ce.subPaths;for(let je=0,Nt=wt.length;je0?_t.copy(ne[ne.length-1]):_t.identity())}(Ht.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:we,xml:Ht.documentElement}}static createShapes(t){const r={loc:0,t:0};function o(y,_,b,M){const C=y.x,E=_.x,L=b.x,N=M.x,H=y.y,j=_.y,R=b.y,B=M.y,ee=(N-L)*(H-R)-(B-R)*(C-L),Ee=(B-R)*(E-C)-(N-L)*(j-H),ne=ee/Ee,Ie=((E-C)*(H-R)-(j-H)*(C-L))/Ee;if(0===Ee&&0!==ee||ne<=0||ne>=1||Ie<0||Ie>1)return null;if(0===ee&&0===Ee){for(let te=0;te<2;te++){if(s(0===te?b:M,y,_),0==r.loc){const Ae=0===te?b:M;return{x:Ae.x,y:Ae.y,t:r.t}}if(2==r.loc)return{x:+(C+r.t*(E-C)).toPrecision(10),y:+(H+r.t*(j-H)).toPrecision(10),t:r.t}}return null}for(let le=0;le<2;le++)if(s(0===le?b:M,y,_),0==r.loc){const Pe=0===le?b:M;return{x:Pe.x,y:Pe.y,t:r.t}}return{x:+(C+ne*(E-C)).toPrecision(10),y:+(H+ne*(j-H)).toPrecision(10),t:ne}}function s(y,_,b){const M=b.x-_.x,C=b.y-_.y,E=y.x-_.x,L=y.y-_.y,N=M*L-E*C;if(y.x===_.x&&y.y===_.y)return r.loc=0,void(r.t=0);if(y.x===b.x&&y.y===b.y)return r.loc=1,void(r.t=1);if(N<-Number.EPSILON)return void(r.loc=3);if(N>Number.EPSILON)return void(r.loc=4);if(M*E<0||C*L<0)return void(r.loc=5);if(Math.sqrt(M*M+C*C){const _=y.getPoints();let b=-999999999,M=999999999,C=-999999999,E=999999999;for(let L=0;L<_.length;L++){const N=_[L];N.y>b&&(b=N.y),N.yC&&(C=N.x),N.x=E&&(d=E-1),{curves:y.curves,points:_,isCW:yu.isClockWise(_),identifier:-1,boundingBox:new FDe(new nt(E,M),new nt(C,b))}});h=h.filter(y=>y.points.length>1);for(let y=0;yfunction c(y,_,b,M,C){(null==C||""===C)&&(C="nonzero");const E=new nt;y.boundingBox.getCenter(E);const N=function l(y,_,b){const M=new nt;_.getCenter(M);const C=[];return b.forEach(E=>{E.boundingBox.containsPoint(M)&&function a(y,_){const b=[],M=[];for(let C=1;CB.t<=R.t+Number.EPSILON&&B.t>=R.t-Number.EPSILON)&&(b.push(R),M.push(new nt(R.x,R.y)))}}return M}(y,E.points).forEach(N=>{C.push({identifier:E.identifier,isCW:E.isCW,point:N})})}),C.sort((E,L)=>E.point.x-L.point.x),C}([new nt(b,E.y),new nt(M,E.y)],y.boundingBox,_);N.sort((we,Ee)=>we.point.x-Ee.point.x);const H=[],j=[];N.forEach(we=>{we.identifier===y.identifier?H.push(we):j.push(we)});const R=H[0].point.x,B=[];let ee=0;for(;ee0&&B[B.length-1]===j[ee].identifier?B.pop():B.push(j[ee].identifier),ee++;if(B.push(y.identifier),"evenodd"===C)return{identifier:y.identifier,isHole:B.length%2==0,for:B[B.length-2]};if("nonzero"===C){let we=!0,Ee=null,ne=null;for(let Ie=0;Ie{if(!f[y.identifier].isHole){const b=new Bm;b.curves=y.curves,f.filter(C=>C.isHole&&C.for===y.identifier).forEach(C=>{const E=h[C.identifier],L=new VA;L.curves=E.curves,b.holes.push(L)}),A.push(b)}}),A}static getStrokeStyle(t,e,i,r,o){return{strokeColor:e=void 0!==e?e:"#000",strokeWidth:t=void 0!==t?t:1,strokeLineJoin:i=void 0!==i?i:"miter",strokeLineCap:r=void 0!==r?r:"butt",strokeMiterLimit:o=void 0!==o?o:4}}static pointsToStroke(t,e,i,r){const o=[],s=[],a=[];if(0===DU.pointsToStrokeWithBuffers(t,e,i,r,o,s,a))return null;const l=new gi;return l.setAttribute("position",new Bn(o,3)),l.setAttribute("normal",new Bn(s,3)),l.setAttribute("uv",new Bn(a,2)),l}static pointsToStrokeWithBuffers(t,e,i,r,o,s,a,l){const c=new nt,d=new nt,u=new nt,h=new nt,f=new nt,A=new nt,y=new nt,_=new nt,b=new nt,M=new nt,C=new nt,E=new nt,L=new nt,N=new nt,H=new nt,j=new nt,R=new nt;i=void 0!==i?i:12,r=void 0!==r?r:.001,l=void 0!==l?l:0;const B=(t=function ht(Ve){let At=!1;for(let vt=1,Ce=Ve.length-1;vt=r&&ot.push(Ve[vt]);return ot.push(Ve[Ve.length-1]),ot}(t)).length;if(B<2)return 0;const ee=t[0].equals(t[B-1]);let we,ne,Ee=t[0];const Ie=e.strokeWidth/2,te=1/(B-1);let le,Pe,it,_t,Ae=0,Ht=!1,cn=0,ce=3*l,ue=2*l;ae(t[0],t[1],c).multiplyScalar(Ie),_.copy(t[0]).sub(c),b.copy(t[0]).add(c),M.copy(_),C.copy(b);for(let Ve=1;VeNumber.EPSILON){const vt=Ie/ot;u.multiplyScalar(-vt),h.subVectors(we,Ee),f.copy(h).setLength(vt).add(u),j.copy(f).negate();const Ce=f.length(),be=h.length();h.divideScalar(be),A.subVectors(ne,we);const de=A.length();switch(A.divideScalar(de),h.dot(j){r.load(i,function(a){const l=a.paths,c=[];for(const A of l){const y=A.toShapes(!0);for(const _ of y){const b=new cb(_,{depth:t.printHeight,bevelEnabled:!1});c.push(b)}}const d=cF(c);d.computeBoundingBox();const f=e.size/Math.max(d.boundingBox.max.x-d.boundingBox.min.x,d.boundingBox.max.y-d.boundingBox.min.y);d.scale(f,f,1),d.center(),"back"===e.side?d.rotateZ(Math.PI):(d.rotateZ(Math.PI),d.rotateY(Math.PI)),o(d)},void 0,function(a){console.error(`Error loading ${i}`),s(a)})})})()}}class PHe extends lg{constructor(t){super(t,new yl,120,!0),this.name="BackMWLogo"}init(t){var e=this;return k(function*(){const i=new Ox;return e.geometry=yield i.create(t,{filePath:"codeCharta/assets/mw_logo_text.svg",size:.31,side:"back"}),e.position.set(0,.37,t.printHeight/2-t.baseplateHeight),e.updateColor(t.numberOfColors),e})()}}class Gne extends cb{constructor(t,e={}){const i=e.font;if(void 0===i)super();else{const r=i.generateShapes(t,e.size);void 0===e.depth&&void 0!==e.height&&console.warn("THREE.TextGeometry: .height is now depreciated. Please use .depth instead"),e.depth=void 0!==e.depth?e.depth:void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(r,e)}this.type="TextGeometry"}}class Wne{create(t,e){var i=this;return k(function*(){const{font:r,side:o,text:s,xPosition:a,yPosition:l,align:c}=e;if(!s)return new gi;let{textSize:d}=e;d||(d=.025);const u="center"===c&&s.includes("\n")?i.createMultilineCenteredTextGeometry(s,r,d,t.printHeight):new Gne(s,{font:r,size:d,height:t.printHeight});return u.center(),"back"===o&&u.rotateY(Math.PI),u.computeBoundingBox(),u.translate(("front"===o?1:-1)*(("center"===c?0:(u.boundingBox.max.x-u.boundingBox.min.x)/2)+a),l,"front"===o?t.printHeight/2:t.printHeight/2-t.baseplateHeight),u})()}createMultilineCenteredTextGeometry(t,e,i,r){const o=t.split("\n"),s=[];for(const[a,l]of o.entries()){const c=new Gne(l,{font:e,size:i,height:r});c.center(),c.translate(0,-a*i*1.5,0),s.push(c)}return cF(s)}}class Lx extends lg{constructor(t,e=new yl,i,r,o,s=new Wne){super(t,e,i,r),this.createTextGeometryOptions=o,this.createTextGeometryStrategy=s}init(t){var e=this;return k(function*(){return e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.updateColor(t.numberOfColors),e})()}updateText(t){var e=this;return k(function*(){e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.boundingBoxCalculated=!1})()}updateTextGeometryOptions(t){this.createTextGeometryOptions.text=t}}class RHe extends Lx{constructor(t,e){const i={font:e,text:"IT Stabilization & Modernization\nmaibornwolff.de/service/it-sanierung",side:"back",xPosition:0,yPosition:.23,align:"center"};super(t,new yl,200,!0,i)}}var OHe=p(8314);class LHe extends lg{constructor(t){super(t,new yl,0,!1)}init(t){var e=this;return k(function*(){return e.geometry=yield e.create(t),e.position.set(.45,.45,t.printHeight/2-t.baseplateHeight),e.updateColor(t.numberOfColors),e})()}changeText(t){var e=this;return k(function*(){e.geometry=yield e.create(t)})()}create(t){var e=this;return k(function*(){if(!t.qrCodeText||0===t.qrCodeText.length)return new gi;const i=document.createElement("canvas");yield OHe.mo(i,t.qrCodeText,{errorCorrectionLevel:"H"});const o=i.getContext("2d").getImageData(0,0,i.width,i.height),s=[],a=.6/o.width;for(let l=0;lsuper.init,i=this;return k(function*(){const r=yield i.createColoredBackTextChildren(t);for(const o of r)i.add(o);return e().call(i,t),i})()}createTextGeometry(t,e,i){var r=this;return k(function*(){return t.create(i,{font:r.font,text:e,side:"back",xPosition:.05,yPosition:.015,align:"left"})})()}getText(){return`${this.metricDescriptionBlockOptions.nodeMetricData.name}\n${this.metricDescriptionBlockOptions.title}\n`}createColoredBackTextChildren(t){var e=this;return k(function*(){const i=e.metricDescriptionBlockOptions,r=[],o=["Value ranges:",`${i.nodeMetricData.minValue} - ${i.colorRange.from-1}`,"/",`${i.colorRange.from} - ${i.colorRange.to-1}`,"/",`${i.colorRange.to} - ${i.nodeMetricData.maxValue}`],s=[new yl,new HHe,new yl,new VHe,new yl,new QHe];let a=.05;for(let l=0;l{if(e instanceof ki&&e.visible){e.geometry.computeBoundingBox();const{min:i,max:r}=e.geometry.boundingBox;t.min=Math.min(t.min,i.x),t.max=Math.max(t.max,r.x)}}),this.position.x=(t.max-t.min)/2}createColorAttributes(){return{colorIcon:"color_icon_for_3D_print.svg",colorIconScale:.075}}createHeightAttributes(){return{heightIcon:"height_icon_for_3D_print.svg",heightIconScale:.09}}createAreaAttributes(){return{areaIcon:"area_icon_for_3D_print.svg",areaIconScale:.075}}}class GHe extends Fd{constructor(t){super("BackPrintContainer",new yl),this.font=t}init(t){var e=this;return k(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("BackMWLogo",new PHe("BackMWLogo")),e.childrenMeshes.set("BackBelowLogoText",new RHe("BackBelowLogoText",e.font)),e.childrenMeshes.set("QrCode",new LHe("QrCode")),e.childrenMeshes.set("CodeChartaLogo",new NHe("CodeChartaLogo")),e.childrenMeshes.set("CodeChartaText",new UHe("CodeChartaText",e.font)),e.childrenMeshes.set("MetricDescriptionsContainer",new qHe("MetricDescriptionsContainer",e.font)),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=k(function*(r){yield r.init(t),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.changeSize(t,1),e})()}changeSize(t,e){const i=t.width/e;this.scale.set(this.scale.x*i,this.scale.y*i,this.scale.z),this.traverse(r=>{r instanceof lg&&r.setCurrentWidth(t.width)})}isQRCodeVisible(){return this.childrenMeshes.get("QrCode").visible}updateQrCodeText(t,e){var i=this;return k(function*(){e.qrCodeText=t,yield i.childrenMeshes.get("QrCode").changeText(e)})()}updateQrCodeVisibility(t){this.childrenMeshes.get("QrCode").setManualVisibility(t)}getChildrenMeshes(){return this.childrenMeshes}}class PU{execute(t,e){let i;return i=t<4?[1,1,1]:4===t?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class WHe extends Lx{constructor(t,e,i){let r=i.frontText;r||(r="FrontText");const o={font:e,side:"front",text:r,xPosition:0,yPosition:i.frontTextSize/2,textSize:i.frontTextSize,align:"center"};super(t,new PU,0,!0,o),this.name="Front Text"}}class $He extends Lx{constructor(t,e,i){const r={font:e,text:i.secondRowText,side:"front",xPosition:0,yPosition:-i.secondRowTextSize,textSize:i.secondRowTextSize,align:"center"};super(t,new PU,0,!1,r)}}class RU extends Fd{constructor(t,e){super(t,new PU),this.alignment=e}changeRelativeSize(t){const e=this.getWidth();this.boundingBoxCalculated=!1;const i=t.secondRowVisible,r=i?(t.frontTextSize+t.secondRowTextSize)/t.frontTextSize:1;this.scale.x=r,this.scale.y=r;const o=i?-1:1,s="left"===this.alignment?-1:1;this.translateY(o*t.secondRowTextSize);const a=i?e/this.getWidth():this.getWidth()/e;this.translateX(2*a*s*o)}}class jHe extends RU{constructor(t){super(t,"right")}init(t,e=new Ox){var i=this;return k(function*(){const r=t.frontTextSize*t.width/250;return i.geometry=yield e.create(t,{filePath:"codeCharta/assets/mw_logo.svg",size:r,side:"front"}),i.position.set(t.width/2-r/2-t.mapSideOffset/2,r/2,t.printHeight/2),t.secondRowVisible&&i.changeRelativeSize(t),i.updateColor(t.numberOfColors),i})()}changeSize(t,e){this.position.x+=(t.width-e)/2}}class XHe extends RU{constructor(t,e){super(t,"left"),this.filePath=e}init(t){var e=this;return k(function*(){const i=new Ox,r=t.frontTextSize*t.width/200;return e.geometry=yield i.create(t,{filePath:e.filePath,size:r,side:"front"}),e.position.set(-t.width/2+r/2+t.mapSideOffset/2,r/2,t.printHeight/2),t.secondRowVisible&&e.changeRelativeSize(t),e.updateColor(t.numberOfColors),e})()}setColor(t){this.material.color.set(t)}rotate(){this.geometry.rotateZ(Math.PI/2)}flip(){this.geometry.rotateY(Math.PI)}changeSize(t,e){this.position.x-=(t.width-e)/2}}class KHe extends Fd{constructor(t){super("FrontPrintContainer",new yl),this.font=t}init(t){var e=this;return k(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("FrontText",new WHe("FrontText",e.font,t)),e.childrenMeshes.set("SecondRowText",new $He("SecondRowText",e.font,t)),e.childrenMeshes.set("FrontMWLogo",new jHe("FrontMWLogo")),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=k(function*(r){yield r.init(t),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.position.y=-t.width/2-t.mapSideOffset/2,e})()}addCustomLogo(t,e){var i=this;return k(function*(){i.childrenMeshes.has("CustomLogo")&&i.removeCustomLogo();const r=yield new XHe("CustomLogo",t).init(e);i.add(r),i.childrenMeshes.set(r.name,r)})()}rotateCustomLogo(){this.childrenMeshes.get("CustomLogo").rotate()}flipCustomLogo(){this.childrenMeshes.get("CustomLogo").flip()}removeCustomLogo(){this.remove(this.childrenMeshes.get("CustomLogo")),this.childrenMeshes.delete("CustomLogo")}updateCustomLogoColor(t){this.childrenMeshes.get("CustomLogo").setColor(t)}updateFrontText(t,e){var i=this;return k(function*(){const r=i.childrenMeshes.get("FrontText");r.updateTextGeometryOptions(t),yield r.updateText(e)})()}changeSize(t,e){this.position.y-=(t.width-e)/2;for(const i of this.childrenMeshes.values())i instanceof RU&&i.isGeneralSizeChangeMesh()&&i.changeSize(t,e)}updateSecondRowText(t,e){var i=this;return k(function*(){const r=i.childrenMeshes.get("SecondRowText");r.updateTextGeometryOptions(t),yield r.updateText(e)})()}updateSecondRowVisibility(t){const e=this.childrenMeshes.get("FrontMWLogo"),i=this.childrenMeshes.get("SecondRowText"),r=this.childrenMeshes.get("CustomLogo");i.setManualVisibility(t.secondRowVisible),e.changeRelativeSize(t),r?.changeRelativeSize(t)}getChildrenMeshes(){return this.childrenMeshes}}const $ne=JSON.parse('{"glyphs":{"0":{"x_min":73,"x_max":715,"ha":792,"o":"m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 "},"1":{"x_min":215.671875,"x_max":574,"ha":792,"o":"m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 "},"2":{"x_min":59,"x_max":731,"ha":792,"o":"m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 "},"3":{"x_min":54,"x_max":737,"ha":792,"o":"m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 "},"4":{"x_min":48,"x_max":742.453125,"ha":792,"o":"m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 "},"5":{"x_min":54.171875,"x_max":738,"ha":792,"o":"m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 "},"6":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 "},"7":{"x_min":58.71875,"x_max":730.953125,"ha":792,"o":"m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 "},"8":{"x_min":55,"x_max":736,"ha":792,"o":"m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 "},"9":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 "},"\u03bf":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 "},"S":{"x_min":0,"x_max":788,"ha":890,"o":"m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 "},"\xa6":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"/":{"x_min":183.25,"x_max":608.328125,"ha":792,"o":"m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 "},"\u03a4":{"x_min":-0.4375,"x_max":777.453125,"ha":839,"o":"m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 "},"y":{"x_min":0,"x_max":684.78125,"ha":771,"o":"m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "},"\u03a0":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 "},"\u0390":{"x_min":-111,"x_max":339,"ha":361,"o":"m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 "},"g":{"x_min":0,"x_max":686,"ha":838,"o":"m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 "},"\xb2":{"x_min":0,"x_max":442,"ha":539,"o":"m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 "},"\u2013":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},"\u039a":{"x_min":0,"x_max":819.5625,"ha":893,"o":"m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},"\u0192":{"x_min":-46.265625,"x_max":392,"ha":513,"o":"m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 "},"e":{"x_min":0,"x_max":714,"ha":813,"o":"m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 "},"\u03cc":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 "},"J":{"x_min":0,"x_max":588,"ha":699,"o":"m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 "},"\xbb":{"x_min":-1,"x_max":503,"ha":601,"o":"m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 "},"\xa9":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 "},"\u03ce":{"x_min":0,"x_max":922,"ha":1030,"o":"m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 "},"^":{"x_min":193.0625,"x_max":598.609375,"ha":792,"o":"m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 "},"\xab":{"x_min":0,"x_max":507.203125,"ha":604,"o":"m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 "},"D":{"x_min":0,"x_max":828,"ha":935,"o":"m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 "},"\u2219":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\xff":{"x_min":0,"x_max":47,"ha":125,"o":"m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 "},"w":{"x_min":0,"x_max":1009.71875,"ha":1100,"o":"m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 "},"$":{"x_min":0,"x_max":700,"ha":793,"o":"m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 "},"\\\\":{"x_min":-0.015625,"x_max":425.0625,"ha":522,"o":"m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 "},"\xb5":{"x_min":0,"x_max":697.21875,"ha":747,"o":"m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 "},"\u0399":{"x_min":42,"x_max":181,"ha":297,"o":"m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 "},"\u038e":{"x_min":0,"x_max":1144.5,"ha":1214,"o":"m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2019":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\u039d":{"x_min":0,"x_max":801,"ha":915,"o":"m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 "},"-":{"x_min":8.71875,"x_max":350.390625,"ha":478,"o":"m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 "},"Q":{"x_min":0,"x_max":968,"ha":1072,"o":"m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 "},"\u03c2":{"x_min":1,"x_max":676.28125,"ha":740,"o":"m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 "},"M":{"x_min":0,"x_max":954,"ha":1067,"o":"m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 "},"\u03a8":{"x_min":0,"x_max":1006,"ha":1094,"o":"m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 "},"C":{"x_min":0,"x_max":886,"ha":944,"o":"m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 "},"!":{"x_min":0,"x_max":138,"ha":236,"o":"m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 "},"{":{"x_min":0,"x_max":480.5625,"ha":578,"o":"m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 "},"X":{"x_min":-0.015625,"x_max":854.15625,"ha":940,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 "},"#":{"x_min":0,"x_max":963.890625,"ha":1061,"o":"m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 "},"\u03b9":{"x_min":42,"x_max":284,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 "},"\u0386":{"x_min":0,"x_max":906.953125,"ha":982,"o":"m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},")":{"x_min":0,"x_max":318,"ha":415,"o":"m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 "},"\u03b5":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 "},"\u0394":{"x_min":0,"x_max":952.78125,"ha":1028,"o":"m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 "},"}":{"x_min":0,"x_max":481,"ha":578,"o":"m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 "},"\u2030":{"x_min":-3,"x_max":1672,"ha":1821,"o":"m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 "},"a":{"x_min":0,"x_max":698.609375,"ha":794,"o":"m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 "},"\u2014":{"x_min":0,"x_max":941.671875,"ha":1039,"o":"m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 "},"=":{"x_min":8.71875,"x_max":780.953125,"ha":792,"o":"m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 "},"N":{"x_min":0,"x_max":801,"ha":914,"o":"m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 "},"\u03c1":{"x_min":0,"x_max":712,"ha":797,"o":"m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 "},"\xaf":{"x_min":0,"x_max":941.671875,"ha":938,"o":"m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 "},"Z":{"x_min":0,"x_max":779,"ha":849,"o":"m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 "},"u":{"x_min":0,"x_max":617,"ha":729,"o":"m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 "},"k":{"x_min":0,"x_max":612.484375,"ha":697,"o":"m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 "},"\u0397":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u0391":{"x_min":0,"x_max":906.953125,"ha":985,"o":"m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},"s":{"x_min":0,"x_max":604,"ha":697,"o":"m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 "},"B":{"x_min":0,"x_max":778,"ha":876,"o":"m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 "},"\u2026":{"x_min":0,"x_max":614,"ha":708,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 "},"?":{"x_min":0,"x_max":607,"ha":704,"o":"m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 "},"H":{"x_min":0,"x_max":803,"ha":915,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u03bd":{"x_min":0,"x_max":675,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 "},"c":{"x_min":1,"x_max":701.390625,"ha":775,"o":"m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 "},"\xb6":{"x_min":0,"x_max":566.671875,"ha":678,"o":"m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 "},"\u03b2":{"x_min":0,"x_max":660,"ha":745,"o":"m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 "},"\u039c":{"x_min":0,"x_max":954,"ha":1068,"o":"m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 "},"\u038c":{"x_min":0.109375,"x_max":1120,"ha":1217,"o":"m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u0389":{"x_min":0,"x_max":1158,"ha":1275,"o":"m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2022":{"x_min":0,"x_max":663.890625,"ha":775,"o":"m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 "},"\xa5":{"x_min":0.1875,"x_max":819.546875,"ha":886,"o":"m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 "},"(":{"x_min":0,"x_max":318.0625,"ha":415,"o":"m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 "},"U":{"x_min":0,"x_max":796,"ha":904,"o":"m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 "},"\u03b3":{"x_min":0.5,"x_max":744.953125,"ha":822,"o":"m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 "},"\u03b1":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 "},"F":{"x_min":0,"x_max":683.328125,"ha":717,"o":"m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 "},"\xad":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},":":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03a7":{"x_min":0,"x_max":854.171875,"ha":935,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 "},"*":{"x_min":116,"x_max":674,"ha":792,"o":"m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 "},"\u2020":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 "},"\xb0":{"x_min":0,"x_max":347,"ha":444,"o":"m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 "},"V":{"x_min":0,"x_max":862.71875,"ha":940,"o":"m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 "},"\u039e":{"x_min":0,"x_max":734.71875,"ha":763,"o":"m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 "},"\xa0":{"x_min":0,"x_max":0,"ha":853},"\u03ab":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 "},"\u201d":{"x_min":0,"x_max":347,"ha":454,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 "},"@":{"x_min":0,"x_max":1260,"ha":1357,"o":"m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 "},"\u038a":{"x_min":0,"x_max":499,"ha":613,"o":"m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 "},"i":{"x_min":14,"x_max":136,"ha":275,"o":"m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 "},"\u0392":{"x_min":0,"x_max":778,"ha":877,"o":"m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 "},"\u03c5":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 "},"]":{"x_min":0,"x_max":275,"ha":372,"o":"m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 "},"m":{"x_min":0,"x_max":1019,"ha":1128,"o":"m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 "},"\u03c7":{"x_min":8.328125,"x_max":780.5625,"ha":815,"o":"m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 "},"\u03af":{"x_min":42,"x_max":326.71875,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 "},"\u0396":{"x_min":0,"x_max":779.171875,"ha":850,"o":"m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 "},"R":{"x_min":0,"x_max":781.953125,"ha":907,"o":"m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 "},"o":{"x_min":0,"x_max":713,"ha":821,"o":"m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 "},"K":{"x_min":0,"x_max":819.46875,"ha":906,"o":"m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},",":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 "},"d":{"x_min":0,"x_max":683,"ha":796,"o":"m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 "},"\xa8":{"x_min":-109,"x_max":247,"ha":232,"o":"m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 "},"E":{"x_min":0,"x_max":736.109375,"ha":789,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"Y":{"x_min":0,"x_max":820,"ha":886,"o":"m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 "},"\\"":{"x_min":0,"x_max":299,"ha":396,"o":"m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\u2039":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\u201e":{"x_min":0,"x_max":364,"ha":467,"o":"m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 "},"\u03b4":{"x_min":1,"x_max":710,"ha":810,"o":"m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 "},"\u03ad":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 "},"\u03c9":{"x_min":0,"x_max":922,"ha":1031,"o":"m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 "},"\xb4":{"x_min":0,"x_max":96,"ha":251,"o":"m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\xb1":{"x_min":11,"x_max":781,"ha":792,"o":"m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 "},"|":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"\u03cb":{"x_min":0,"x_max":617,"ha":725,"o":"m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 "},"\xa7":{"x_min":0,"x_max":593,"ha":690,"o":"m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 "},"b":{"x_min":0,"x_max":685,"ha":783,"o":"m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 "},"q":{"x_min":0,"x_max":683,"ha":876,"o":"m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 "},"\u03a9":{"x_min":-0.171875,"x_max":969.5625,"ha":1068,"o":"m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 "},"\u03cd":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 "},"z":{"x_min":-0.015625,"x_max":613.890625,"ha":697,"o":"m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "},"\u2122":{"x_min":0,"x_max":894,"ha":1000,"o":"m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 "},"\u03ae":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 "},"\u0398":{"x_min":0,"x_max":960,"ha":1056,"o":"m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 "},"\xae":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 "},"~":{"x_min":0,"x_max":833,"ha":931,"o":"m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 "},"\u0395":{"x_min":0,"x_max":736.21875,"ha":778,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"\xb3":{"x_min":0,"x_max":450,"ha":547,"o":"m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 "},"[":{"x_min":0,"x_max":273.609375,"ha":371,"o":"m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 "},"L":{"x_min":0,"x_max":645.828125,"ha":696,"o":"m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 "},"\u03c3":{"x_min":0,"x_max":803.390625,"ha":894,"o":"m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 "},"\u03b6":{"x_min":0,"x_max":573,"ha":642,"o":"m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 "},"\u03b8":{"x_min":0,"x_max":674,"ha":778,"o":"m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 "},"\u039f":{"x_min":0,"x_max":958,"ha":1054,"o":"m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 "},"\u0393":{"x_min":0,"x_max":705.28125,"ha":749,"o":"m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 "}," ":{"x_min":0,"x_max":0,"ha":375},"%":{"x_min":-3,"x_max":1089,"ha":1186,"o":"m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 "},"P":{"x_min":0,"x_max":726,"ha":806,"o":"m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 "},"\u0388":{"x_min":0,"x_max":1078.21875,"ha":1118,"o":"m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u038f":{"x_min":0.125,"x_max":1136.546875,"ha":1235,"o":"m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 "},"_":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 "},"\u03aa":{"x_min":-110,"x_max":246,"ha":275,"o":"m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 "},"+":{"x_min":23,"x_max":768,"ha":792,"o":"m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 "},"\xbd":{"x_min":0,"x_max":1050,"ha":1149,"o":"m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 "},"\u03a1":{"x_min":0,"x_max":720,"ha":783,"o":"m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 "},"\'":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\xaa":{"x_min":0,"x_max":350,"ha":397,"o":"m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 "},"\u0385":{"x_min":0,"x_max":450,"ha":553,"o":"m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 "},"T":{"x_min":0,"x_max":777,"ha":835,"o":"m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 "},"\u03a6":{"x_min":0,"x_max":915,"ha":997,"o":"m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 "},"\u204b":{"x_min":0,"x_max":0,"ha":694},"j":{"x_min":-77.78125,"x_max":167,"ha":349,"o":"m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 "},"\u03a3":{"x_min":0,"x_max":756.953125,"ha":819,"o":"m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 "},"\u203a":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"<":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\xa3":{"x_min":0,"x_max":704.484375,"ha":801,"o":"m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 "},"t":{"x_min":0,"x_max":367,"ha":458,"o":"m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 "},"\xac":{"x_min":0,"x_max":706,"ha":803,"o":"m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 "},"\u03bb":{"x_min":0,"x_max":750,"ha":803,"o":"m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 "},"W":{"x_min":0,"x_max":1263.890625,"ha":1351,"o":"m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 "},">":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"v":{"x_min":0,"x_max":675.15625,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},"\u03c4":{"x_min":0.28125,"x_max":644.5,"ha":703,"o":"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},"\u03be":{"x_min":0,"x_max":624.9375,"ha":699,"o":"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{"x_min":-3,"x_max":894.25,"ha":992,"o":"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},"\u039b":{"x_min":0,"x_max":862.5,"ha":942,"o":"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},"I":{"x_min":41,"x_max":180,"ha":293,"o":"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},"G":{"x_min":0,"x_max":921,"ha":1011,"o":"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},"\u03b0":{"x_min":0,"x_max":617,"ha":725,"o":"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{"x_min":0,"x_max":138.890625,"ha":236,"o":"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\u03a5":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},"r":{"x_min":0,"x_max":355.5625,"ha":432,"o":"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},"x":{"x_min":0,"x_max":675,"ha":764,"o":"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},"\u03bc":{"x_min":0,"x_max":696.609375,"ha":747,"o":"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},"h":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03c6":{"x_min":-2,"x_max":878,"ha":974,"o":"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},"f":{"x_min":0,"x_max":378,"ha":472,"o":"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{"x_min":1,"x_max":348.21875,"ha":454,"o":"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},"A":{"x_min":0.03125,"x_max":906.953125,"ha":1008,"o":"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{"x_min":1,"x_max":139.890625,"ha":236,"o":"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},"\u03ca":{"x_min":-70,"x_max":283,"ha":361,"o":"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},"\u03c0":{"x_min":-0.21875,"x_max":773.21875,"ha":857,"o":"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},"\u03ac":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},"O":{"x_min":0,"x_max":958,"ha":1057,"o":"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},"n":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},"l":{"x_min":41,"x_max":166,"ha":279,"o":"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{"x_min":40.09375,"x_max":728.796875,"ha":825,"o":"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},"\u03ba":{"x_min":0,"x_max":632.328125,"ha":679,"o":"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},"p":{"x_min":0,"x_max":685,"ha":786,"o":"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},"\u03c8":{"x_min":0,"x_max":808,"ha":907,"o":"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},"\u03b7":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},"cssFontWeight":"normal","ascender":1189,"underlinePosition":-100,"cssFontStyle":"normal","boundingBox":{"yMin":-334,"xMin":-111,"yMax":1189,"xMax":1672},"resolution":1000,"original_font_information":{"postscript_name":"Helvetiker-Regular","version_string":"Version 1.00 2004 initial release","vendor_url":"http://www.magenta.gr/","full_font_name":"Helvetiker","font_family_name":"Helvetiker","copyright":"Copyright (c) \u039cagenta ltd, 2004","description":"","trademark":"","designer":"","designer_url":"","unique_font_identifier":"\u039cagenta ltd:Helvetiker:22-10-104","license_url":"http://www.ellak.gr/fonts/MgOpen/license.html","license_description":"Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.","manufacturer_name":"\u039cagenta ltd","font_sub_family_name":"Regular"},"descender":-334,"familyName":"Helvetiker","lineHeight":1522,"underlineThickness":50}');class YHe{constructor(t,e=new KHe(new FU($ne)),i=new GHe(new FU($ne)),r=new DHe,o=new kHe){this.geometryOptions=t,this.frontPrintContainerMesh=e,this.backPrintContainerMesh=i,this.baseplateMesh=r,this.mapMesh=o,this.printMesh=new ki,this.printMesh.name="PrintMesh"}initialize(){var t=this;return k(function*(){t.baseplateMesh=yield t.baseplateMesh.init(t.geometryOptions),t.printMesh.add(t.baseplateMesh),t.mapMesh=yield t.mapMesh.init(t.geometryOptions),t.printMesh.add(t.mapMesh),t.frontPrintContainerMesh=yield t.frontPrintContainerMesh.init(t.geometryOptions),t.printMesh.add(t.frontPrintContainerMesh),t.backPrintContainerMesh=yield t.backPrintContainerMesh.init(t.geometryOptions),t.printMesh.add(t.backPrintContainerMesh),t.calculateCurrentSize()})()}getThreeMesh(){return this.printMesh}getMapMesh(){return this.mapMesh}getSize(){return this.currentSize}updateSize(t){var e=this;return k(function*(){e.geometryOptions.width=t;const i=e.currentSize.x;return yield Promise.all([...e.printMesh.children].map(function(){var r=k(function*(o){o instanceof Fd&&o.isGeneralSizeChangeMesh()&&o.changeSize(e.geometryOptions,i)});return function(o){return r.apply(this,arguments)}}())),e.calculateCurrentSize(),e.backPrintContainerMesh.isQRCodeVisible()})()}updateNumberOfColors(t){this.geometryOptions.numberOfColors=t;for(const e of this.printMesh.children)e instanceof Fd&&e.updateColor(t)}addCustomLogo(t){var e=this;return k(function*(){e.frontPrintContainerMesh.addCustomLogo(t,e.geometryOptions)})()}rotateCustomLogo(){this.frontPrintContainerMesh.rotateCustomLogo()}flipCustomLogo(){this.frontPrintContainerMesh.flipCustomLogo()}removeCustomLogo(){this.frontPrintContainerMesh.removeCustomLogo()}updateCustomLogoColor(t){this.frontPrintContainerMesh.updateCustomLogoColor(t)}updateFrontText(t){this.frontPrintContainerMesh.updateFrontText(t,this.geometryOptions)}updateSecondRowVisibility(t){this.geometryOptions.secondRowVisible!==t&&(this.geometryOptions.secondRowVisible=t,this.frontPrintContainerMesh.updateSecondRowVisibility(this.geometryOptions),this.baseplateMesh.changeSize(this.geometryOptions))}updateSecondRowText(t){var e=this;return k(function*(){yield e.frontPrintContainerMesh.updateSecondRowText(t,e.geometryOptions)})()}calculateCurrentSize(){const t=this.baseplateMesh.getWidth(),e=this.baseplateMesh.getDepth(),i=this.baseplateMesh.getHeight()+this.mapMesh.getHeight();this.currentSize=new se(t,e,i)}updateQrCodeText(t){var e=this;return k(function*(){yield e.backPrintContainerMesh.updateQrCodeText(t,e.geometryOptions)})()}updateQrCodeVisibility(t){this.backPrintContainerMesh.updateQrCodeVisibility(t)}}function jne(n,t,e,i,r){const a=n.z,l=n.x,c=n.y-e;return t.geometry.boundingBox||t.geometry.computeBoundingBox(),Math.min(l,c,(a-i)*t.geometry.boundingBox.max.x/(t.geometry.boundingBox.max.z-t.geometry.boundingBox.min.z)+2*r)}const ZHe=["rendererContainer"],JHe=["fileInput"],eVe=()=>["Color"];function tVe(n,t){if(1&n&&(D(0,"mat-option",9),ye(1),D(2,"span",35),ye(3),U()()),2&n){const e=t.$implicit;_e("value",e),Q(),sn("",e.name," "),Q(2),Sk(" (x: ",e.x,"cm, y: ",e.y,"cm, z: ",e.z,"cm, colors ",e.numberOfColors," )")}}let Xne=(()=>{class n{constructor(e,i){this.state=e,this.threeSceneService=i,this.logoColor="#ffffff",this.isFileSelected=!1,this.isPrintMeshLoaded=!1,this.secondRow={defaultText:(new Date).toLocaleDateString(),name:"Second Row Text",isVisible:!1,currentText:void 0},this.qrCode={defaultText:"maibornwolff.de/service/it-sanierung",name:"QrCode",isVisible:!1,currentText:void 0},this.printers=[{name:"Prusa MK3S (single color)",x:245,y:205,z:205,numberOfColors:1},{name:"BambuLab A1 + AMS Lite",x:251,y:251,z:251,numberOfColors:4},{name:"Prusa XL (5 colors)",x:355,y:335,z:355,numberOfColors:5}],this.selectedPrinter=this.printers[2],this.layerHeight=.2,this.frontTextSize=8,this.secondRowTextSize=6,this.frontPrintDepth=.6,this.mapSideOffset=10,this.baseplateHeight=1,this.logoSize=10,this.maxWidth=jne(new se(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.currentSize=new se,this.currentSize.x=this.maxWidth,this.wantedWidth=this.maxWidth,this.currentNumberOfColors=this.selectedPrinter.numberOfColors,this.isPrintMeshLoaded=!1,this.secondRow.currentText=this.secondRow.defaultText,this.qrCode.currentText=this.qrCode.defaultText,this.areaMetric=this.state.getValue().dynamicSettings.areaMetric,this.heightMetric=this.state.getValue().dynamicSettings.heightMetric,this.colorMetric=this.state.getValue().dynamicSettings.colorMetric;const r=l2(this.state.getValue().files),o=this.state.getValue().fileSettings.blacklist,s=DW(r,o);this.nodeMetricData=s.filter(a=>a.name===this.areaMetric||a.name===this.heightMetric||a.name===this.colorMetric)}ngAfterViewInit(){var e=this;return k(function*(){yield e.createScene(),e.isPrintMeshLoaded=!0})()}onScaleChange(){this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize()}onFrontTextChange(){this.previewMesh.updateFrontText(this.frontText)}onFileSelected(e){const i=e.target.files[0];if(i){this.isFileSelected=!0;const r=new FileReader;r.readAsDataURL(i),r.onload=()=>{this.previewMesh.addCustomLogo(r.result)}}else this.isFileSelected=!1}onRotateLogo(){this.previewMesh.rotateCustomLogo()}onFlipLogo(){this.previewMesh.flipCustomLogo()}onRemoveLogo(){this.isFileSelected=!1,this.fileInput.nativeElement.value="",this.previewMesh.removeCustomLogo()}onSelectedPrinterChange(){const e=this.selectedPrinter.numberOfColors;this.currentNumberOfColors!==e&&(this.previewMesh.updateNumberOfColors(e),this.currentNumberOfColors=e),this.makeMapMaxSize(),this.updateCameraPosition(this.printPreviewScene.getObjectByName("camera"))}onLogoColorChange(e){this.logoColor=e,this.previewMesh.updateCustomLogoColor(this.logoColor)}onQrCodeTextChange(){this.onTextChange(this.qrCode),this.previewMesh.updateQrCodeText(this.qrCode.currentText),this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible)}onQrCodeVisibilityChange(e){this.qrCode.isVisible!==e.checked&&(this.qrCode.isVisible=e.checked,this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible))}onSecondRowTextChange(){this.onTextChange(this.secondRow),this.previewMesh.updateSecondRowText(this.secondRow.currentText),this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible)}onSecondRowVisibilityChange(e){this.secondRow.isVisible!==e.checked&&(this.secondRow.isVisible=e.checked,this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible))}onTextChange(e){""!==e.currentText?e.isVisible||(e.isVisible=!0):e.isVisible=!1}createScene(){var e=this;return k(function*(){const i=new KS;i.name="printPreviewScene",e.printPreviewScene=i,i.background=new tn(15527388);const r=e.threeSceneService.scene.clone().children[3];r.name="lights",i.add(r);const o=new Hs(45,1.15,50,2e5);o.name="camera",o.up=new se(0,0,1),i.add(o),e.initRenderer(i,o),e.previewMesh=new YHe(e.initGeometryOptions()),yield e.previewMesh.initialize(),e.currentSize=e.previewMesh.getSize(),i.add(e.previewMesh.getThreeMesh()),e.updateCameraPosition(o)})()}initRenderer(e,i){const r=this.getGL(),o=new nt;r.getSize(o);const s=this.rendererContainer.nativeElement.offsetWidth;r.setSize(s,o.y*(s/o.x),!0),this.rendererContainer.nativeElement.appendChild(r.domElement);const l=new rN(i,r.domElement),c=function(){requestAnimationFrame(c),l.update(),r.render(e,i)};c()}getGL(){return new ZO}updateCameraPosition(e){e.position.set(.2*-this.currentSize.x,1.2*-this.currentSize.y,3*this.currentSize.z)}download3MFFile(){var e=this;return k(function*(){const i=yield function EHe(n){return SU.apply(this,arguments)}(e.printPreviewScene.getObjectByName("PrintMesh"));e.downloadFile(i,"3mf")})()}makeMapMaxSize(){this.wantedWidth=jne(new se(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize(),this.maxWidth=this.currentSize.x}downloadStlFile(){const e=(new eHe).parse(this.previewMesh.getMapMesh(),{binary:!0});this.downloadFile(e,"stl")}initGeometryOptions(){const e=this.state.getValue().fileSettings.attributeDescriptors,i=vb,r=e[this.areaMetric]?.title||i.get(this.areaMetric),o=e[this.heightMetric]?.title||i.get(this.heightMetric),s=e[this.colorMetric]?.title||i.get(this.colorMetric);return{originalMapMesh:this.threeSceneService.getMapMesh().getThreeMesh(),width:this.wantedWidth,areaMetricTitle:r,areaMetricData:this.nodeMetricData.find(a=>a.name===this.areaMetric),heightMetricTitle:o,heightMetricData:this.nodeMetricData.find(a=>a.name===this.heightMetric),colorMetricTitle:s,colorMetricData:this.nodeMetricData.find(a=>a.name===this.colorMetric),colorRange:this.state.getValue().dynamicSettings.colorRange,frontText:this.frontText,secondRowText:this.secondRow.currentText,secondRowVisible:this.secondRow.isVisible,qrCodeText:this.qrCode.currentText,defaultMaterial:this.threeSceneService.getMapMesh().getThreeMesh().material[0].clone(),numberOfColors:this.currentNumberOfColors,layerHeight:this.layerHeight,frontTextSize:this.frontTextSize,secondRowTextSize:this.secondRowTextSize,printHeight:this.frontPrintDepth,mapSideOffset:this.mapSideOffset,baseplateHeight:this.baseplateHeight,logoSize:this.logoSize}}downloadFile(e,i){const r=xh(this.state.getValue()),o=Hc(this.state.getValue()).unifiedFileMeta?.fileName,s=`${Lm.getNewFileName(o,ou(r))}.${i}`;BN.downloadData(e,s)}static{this.\u0275fac=function(i){return new(i||n)($(Zr),$(Vc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-export-3D-map-dialog"]],viewQuery:function(i,r){if(1&i&&(ti(ZHe,5),ti(JHe,5)),2&i){let o;an(o=ln())&&(r.rendererContainer=o.first),an(o=ln())&&(r.fileInput=o.first)}},inputs:{logoColor:"logoColor"},decls:84,vars:25,consts:[["rendererContainer",""],["slider",""],["fileInput",""],["color","primary"],[1,"cc-export-3D-map-dialog"],[1,"preview"],["appearance","outline",1,"cc-export-3D-map-dialog-content"],["appearance","outline"],["data-testid","selectPrinter",3,"selectionChange","valueChange","value"],["data-testid","selectedPrinter",3,"value"],["appearance","outlined"],[1,"slider-container"],["data-testid","onScaleChange","discrete","true","min","100","step","1",3,"change","max"],["matSliderThumb","",3,"ngModelChange","ngModel"],["data-testid","printSizeOverview"],["matInput","","data-testid","frontText",3,"ngModelChange","input","ngModel","placeholder"],[1,"cc-manual-visibility-content"],["data-testid","secondRowToggle",3,"change","checked"],["appearance","outline",3,"hidden"],["matInput","","data-testid","secondRowText",3,"ngModelChange","input","ngModel"],["data-testid","qrCodeToggle",3,"change","checked"],["matInput","","data-testid","qrCodeText",3,"ngModelChange","input","ngModel"],["type","file","accept",".svg",1,"cc-file-input",3,"change"],["mat-button","","title","Remove Logo Button",3,"click","hidden"],[1,"fa","fa-times"],[3,"hidden"],["mat-button","","title","Rotate Logo Button",3,"click"],[1,"fa","fa-rotate-right"],["mat-button","","title","Flip Logo Button",3,"click"],[1,"fa","fa-arrows-h"],[3,"onColorChange","hexColor","labels"],["align","end"],["mat-button","","title","Download 3MF Button",3,"click","disabled"],[1,"fa","fa-download"],["mat-button","","title","Download Stl Button",3,"click","disabled"],[1,"cc-printer-specs"]],template:function(i,r){if(1&i){const o=Dn();D(0,"mat-toolbar",3),ye(1,"3D Print CodeCharta Map"),U(),D(2,"div",4),xe(3,"div",5,0),D(5,"mat-dialog-content",6)(6,"mat-form-field",7)(7,"mat-label"),ye(8,"Printer preset"),U(),D(9,"mat-select",8),ze("selectionChange",function(){return Ot(o),Rt(r.onSelectedPrinterChange())}),ld("valueChange",function(a){return Ot(o),eu(r.selectedPrinter,a)||(r.selectedPrinter=a),Rt(a)}),D(10,"mat-select-trigger"),ye(11),U(),Or(12,tVe,4,6,"mat-option",9,qr),U()(),D(14,"mat-card",10)(15,"mat-card-header"),ye(16,"Scale:"),U(),D(17,"mat-card-content")(18,"div",11)(19,"mat-slider",12),ze("change",function(){return Ot(o),Rt(r.onScaleChange())}),D(20,"input",13,1),ld("ngModelChange",function(a){return Ot(o),eu(r.wantedWidth,a)||(r.wantedWidth=a),Rt(a)}),U()()(),D(22,"div",14)(23,"span"),ye(24),U(),xe(25,"br"),D(26,"span"),ye(27),U(),xe(28,"br"),D(29,"span"),ye(30),U()()()(),D(31,"mat-form-field",7)(32,"mat-label"),ye(33,"Bottom center label text"),U(),D(34,"input",15),ld("ngModelChange",function(a){return Ot(o),eu(r.frontText,a)||(r.frontText=a),Rt(a)}),ze("input",function(){return Ot(o),Rt(r.onFrontTextChange())}),U()(),D(35,"mat-card",10)(36,"mat-card-header"),ye(37,"Second row center text"),U(),D(38,"mat-card-content",16)(39,"mat-slide-toggle",17),ze("change",function(a){return Ot(o),Rt(r.onSecondRowVisibilityChange(a))}),ye(40," Show second row text "),U(),D(41,"mat-form-field",18)(42,"mat-label"),ye(43,"Text"),U(),D(44,"input",19),ld("ngModelChange",function(a){return Ot(o),eu(r.secondRow.currentText,a)||(r.secondRow.currentText=a),Rt(a)}),ze("input",function(){return Ot(o),Rt(r.onSecondRowTextChange())}),U()()()(),D(45,"mat-card",10)(46,"mat-card-header"),ye(47,"QR-Code"),U(),D(48,"mat-card-content",16)(49,"mat-slide-toggle",20),ze("change",function(a){return Ot(o),Rt(r.onQrCodeVisibilityChange(a))}),ye(50," Show QR-Code "),U(),D(51,"mat-form-field",18)(52,"mat-label"),ye(53,"QR-Code text"),U(),D(54,"input",21),ld("ngModelChange",function(a){return Ot(o),eu(r.qrCode.currentText,a)||(r.qrCode.currentText=a),Rt(a)}),ze("input",function(){return Ot(o),Rt(r.onQrCodeTextChange())}),U()()()(),D(55,"mat-card",10)(56,"mat-card-header"),ye(57,"Bottom left logo (SVG):"),U(),D(58,"mat-card-content")(59,"input",22,2),ze("change",function(a){return Ot(o),Rt(r.onFileSelected(a))}),U(),D(61,"button",23),ze("click",function(){return Ot(o),Rt(r.onRemoveLogo())}),D(62,"span"),xe(63,"i",24),ye(64," Remove Logo"),U()(),D(65,"div",25)(66,"button",26),ze("click",function(){return Ot(o),Rt(r.onRotateLogo())}),D(67,"span"),xe(68,"i",27),ye(69," Rotate Logo"),U()(),D(70,"button",28),ze("click",function(){return Ot(o),Rt(r.onFlipLogo())}),D(71,"span"),xe(72,"i",29),ye(73," Flip Logo"),U()(),D(74,"cc-labelled-color-picker",30),ze("onColorChange",function(a){return Ot(o),Rt(r.onLogoColorChange(a))}),U()()()()(),D(75,"mat-dialog-actions",31)(76,"button",32),ze("click",function(){return Ot(o),Rt(r.download3MFFile())}),D(77,"span"),xe(78,"i",33),ye(79," Download 3MF"),U()(),D(80,"button",34),ze("click",function(){return Ot(o),Rt(r.downloadStlFile())}),D(81,"span"),xe(82,"i",33),ye(83," Download minimal STL"),U()()()()}2&i&&(Q(9),ad("value",r.selectedPrinter),Q(2),sn(" ",r.selectedPrinter.name," "),Q(),Lr(r.printers),Q(7),_e("max",r.maxWidth),Q(),ad("ngModel",r.wantedWidth),Q(4),Jd("Width: ",(r.currentSize.x/10).toFixed(1),"cm (max. ",(r.selectedPrinter.x/10).toFixed(1),")"),Q(3),Jd("Depth: ",(r.currentSize.y/10).toFixed(1),"cm (max. ",(r.selectedPrinter.y/10).toFixed(1),")"),Q(3),Jd("Height: ",(r.currentSize.z/10).toFixed(1),"cm (max. ",(r.selectedPrinter.z/10).toFixed(1),")"),Q(4),ad("ngModel",r.frontText),_e("placeholder","CodeCharta"),Q(5),_e("checked",r.secondRow.isVisible),Q(2),_e("hidden",r.secondRow.isVisible),Q(3),ad("ngModel",r.secondRow.currentText),Q(5),_e("checked",r.qrCode.isVisible),Q(2),_e("hidden",r.qrCode.isVisible),Q(3),ad("ngModel",r.qrCode.currentText),Q(7),_e("hidden",!r.isFileSelected),Q(4),_e("hidden",!r.isFileSelected),Q(9),_e("hexColor",r.logoColor)("labels",fh(24,eVe)),Q(2),_e("disabled",!r.isPrintMeshLoaded),Q(4),_e("disabled",!r.isPrintMeshLoaded))},dependencies:[Md,Cd,Gm,JJ,du,cs,kc,ec,rx,_J,bJ,zm,qm,gee,fI,Cb,im,$0,X0,bN],styles:[".cc-printer-specs[_ngcontent-%COMP%]{color:#888}.cc-file-input[_ngcontent-%COMP%]{margin-top:16px}"]})}}return n})(),nVe=(()=>{class n{constructor(e,i,r){this.dialog=e,this.state=i,this.store=r}export3DMap(){this.state.getValue().dynamicSettings.colorMode!==hm.absolute?this.dialog.open(AA,{data:this.buildErrorDialog()}):this.dialog.open(Xne,{panelClass:"cc-export-3D-map-dialog"})}buildErrorDialog(){return{title:"Map could not be exported",message:'

3D map can only be exported when color mode is set to absolute.
You can change this under Color Metric Options or use "Change and continue" to directly change the color mode and continue.

',resolveErrorData:{buttonText:"Change and continue",onResolveErrorClick:()=>{this.store.dispatch(J0({value:hm.absolute})),this.store.select(Ree).pipe($o(1)).subscribe(s=>{s===hm.absolute&&setTimeout(()=>{this.dialog.open(Xne,{panelClass:"cc-export-3D-map-dialog"})},100)})}}}}static{this.\u0275fac=function(i){return new(i||n)($(Ns),$(Zr),$($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-export-3d-map-button"]],decls:1,vars:1,consts:[["title","Download 3MF code file",3,"click","icon"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.export3DMap()}),U()),2&i&&_e("icon","fa fa-print")},dependencies:[eg],encapsulation:2})}}return n})();const aVe=Kt(xh,n=>xW(n)),Kne=Kt(Xs,bb,Nm,ex,(n,t,e,i)=>((n,t)=>t.every(e=>((n,t)=>n.some(e=>e.name===t))(n,e)))(n.nodeMetricData,[t,e,i])),lVe=Kt(lc,n=>(n=>Object.entries(n).every(([t,e])=>((n,t)=>"edgeMetric"===n||null!==t&&("object"!=typeof t||Object.values(t).every(e=>null!==e)))(t,e)))(n)),cVe=(Kt(Xs,aVe,Kne,lVe,(n,t,e,i)=>!(null===n.nodeMetricData||!t||!e||!i)),n=>n.some(t=>"rloc"===t.name)?"rloc":"unary"),dVe=["rloc","real_lines_of_code","loc","lines_of_code","lines","statements","functions"],Yne=["complexity","mcc","cognitive_complexity","sonar_complexity","sonar_cognitive_complexity","max_nesting_level","indentation_level"];function uVe(n){return n.some(t=>t.maxValue>0)}let mVe=(()=>{class n{constructor(e){this.store=e,this.resetChosenDistributionMetric$=Ao(()=>this.store.select(Xs).pipe(Qe(i=>i.nodeMetricData),qi(uVe),hd(this.store.select(Kne)),qi(([,i])=>!i),Dr(([i])=>{Zne(this.store,i)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Zne(n,t){n.dispatch(T1({value:cVe(t)}));let[e,i,r]=function fVe(n){const t=[],e={AreaMetric:dVe,HeightMetric:Yne,ColorMetric:Yne},i=new Set(n.map(r=>r.name));for(const r in e)for(const o of e[r])if(i.has(o)){t.push(o);break}return t}(t);(!e||!i||!r)&&([e,i,r]=function hVe(n,t){const e=[];let i;for(const r of n)if(r.maxValue&&(e.push(r.name),i=r.name,0==--t))return e;if(!i)throw new Error("there are no metrics available");for(;t-- >0;)e.push(i);return e}(t,3)),n.dispatch(vh({value:e})),n.dispatch(wh({value:i})),n.dispatch(pd({value:r}))}let pVe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.httpClient=i,this.loadFileService=r,this.loadInitialFileService=o,this.urlUtils=new wX(this.httpClient)}resetMap(){var e=this;return k(function*(){if(yield function hbe(){return eR.apply(this,arguments)}(),e.store.dispatch(xb({value:kee})),e.loadInitialFileService.checkFileQueryParameterPresent())try{const r=yield e.urlUtils.getFileDataFromQueryParam();e.loadFileService.loadFiles(r),e.loadInitialFileService.setRenderStateFromUrl()}catch{e.loadFileService.loadFiles([nS,iS])}else e.loadFileService.loadFiles([nS,iS]);e.resetMetrics()})()}resetMetrics(){this.store.select(Xs).pipe(ox(),Dr(e=>{Zne(this.store,e.nodeMetricData)})).subscribe()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Zy),$(f_),$(D4))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-confirm-reset-map-dialog"]],decls:12,vars:0,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"dialog-content"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","","cdkFocusInitial","",3,"click"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Confirm reset map to default"),U()(),D(3,"mat-dialog-content")(4,"div",1)(5,"p"),ye(6,"Uploaded maps, selected metrics and settings are reset to default"),U()()(),D(7,"mat-dialog-actions")(8,"button",2),ye(9,"No"),U(),D(10,"button",3),ze("click",function(){return r.resetMap()}),ye(11,"Yes"),U()())},dependencies:[cs,Jl,kc,ec,zm],encapsulation:2})}}return n})(),AVe=(()=>{class n{constructor(e){this.dialog=e}showConfirmResetStateDialog(){this.dialog.open(pVe,{panelClass:"cc-confirm-reset-map-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-reset-map-button"]],decls:1,vars:1,consts:[["title","Reset map to default",3,"click","icon"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.showConfirmResetStateDialog()}),U()),2&i&&_e("icon","fa fa-undo")},dependencies:[eg],encapsulation:2})}}return n})();const gVe=Kt(pb,n=>`linear-gradient(${n.positiveDelta} 50%, ${n.negativeDelta} 50%)`),OU="alertOnIncompatibleMaps";let _Ve=(()=>{class n{constructor(e){this.data=e}setDoNotAlertOnIncompatibleMaps(e){localStorage.setItem(OU,JSON.stringify(!e.checked))}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-incompatible-maps-dialog"]],decls:22,vars:4,consts:[["color","primary"],[1,"cc-files"],[3,"change"],["align","end"],["href","https://maibornwolff.github.io/codecharta/docs/structure-modifier","target","_blank","rel","noopener noreferrer"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0),ye(1,"Incompatible Maps"),U(),D(2,"mat-dialog-content")(3,"p"),ye(4,"The selected maps use different complexity metrics and are therefore incompatible:"),U(),D(5,"p",1),ye(6),U(),D(7,"p"),ye(8," The file "),D(9,"b"),ye(10),U(),ye(11," is using the "),D(12,"b"),ye(13,"mcc metric"),U(),ye(14," and the other one complexity. Please migrate. "),U(),D(15,"mat-checkbox",2),ze("change",function(s){return r.setDoNotAlertOnIncompatibleMaps(s)}),ye(16,"Don't show again"),U()(),D(17,"mat-dialog-actions",3)(18,"a",4),ye(19,"Know more"),U(),D(20,"button",5),ye(21,"CLOSE"),U()()),2&i&&(Q(6),Jd("",r.data.referenceFileName," \u2192 ",r.data.comparisonFileName,""),Q(4),br(r.data.fileWithMccMetric),Q(10),_e("mat-dialog-close",!0))},dependencies:[cs,Jl,kc,ec,Xm,zm],styles:["p[_ngcontent-%COMP%]{font-size:18px}.cc-files[_ngcontent-%COMP%]{text-align:center}"]})}}return n})();function bVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),qe(2,"removeExtension"),U()),2&n){const e=t.$implicit;_e("value",e.file),Q(),sn(" ",rt(2,2,e.file.fileMeta.fileName)," ")}}function vVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),qe(2,"removeExtension"),U()),2&n){const e=t.$implicit;_e("value",e.file),Q(),sn(" ",rt(2,2,e.file.fileMeta.fileName)," ")}}let yVe=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.files$=this.store.select(xh),this.referenceFile$=this.store.select(J$),this.comparisonFile$=this.files$.pipe(Qe(r=>r.find(o=>o.selectedAs===er.Comparison)?.file)),this.possibleComparisonFiles$=this.files$.pipe(Qe(r=>r.filter(o=>o.selectedAs!==er.Reference))),this.pictogramBackground$=this.store.select(gVe),this.referenceFile$.subscribe(r=>this.referenceFile=r),this.comparisonFile$.subscribe(r=>this.comparisonFile=r)}handleDeltaReferenceFileChange(e){this.store.dispatch(uR({file:e})),this.showAlertWhenFilesAreIncompatible()}handleDeltaComparisonFileChange(e){this.store.dispatch(dR({file:e})),this.showAlertWhenFilesAreIncompatible()}showAlertWhenFilesAreIncompatible(){this.alertOnIncompatibleMaps()&&this.areMapsIncompatible()&&this.openIncompatibleMapsDialog()}alertOnIncompatibleMaps(){return!localStorage.getItem(OU)||!0===JSON.parse(localStorage.getItem(OU))}openIncompatibleMapsDialog(){this.dialog.open(_Ve,{panelClass:"cc-incompatible-maps-dialog",data:{referenceFileName:this.getFileName(this.referenceFile),comparisonFileName:this.getFileName(this.comparisonFile),fileWithMccMetric:this.getFileWithMccMetric(this.referenceFile,this.comparisonFile)}})}getFileName(e){return e?.fileMeta.fileName}hasMccMetric(e){return e?.map.children.some(i=>i.attributes.mcc)}getFileWithMccMetric(e,i){return this.hasMccMetric(e)?this.getFileName(e):this.hasMccMetric(i)?this.getFileName(i):void 0}switchReferenceAndComparison(){this.store.dispatch(cR())}areMapsIncompatible(){if(this.referenceFile&&this.comparisonFile)return this.hasMccMetric(this.referenceFile)!==this.hasMccMetric(this.comparisonFile)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel-delta-selector"]],decls:16,vars:17,consts:[[1,"delta-select-wrapper"],["panelClass","cc-file-select",1,"delta-select",3,"selectionChange","value"],[3,"value"],["title","Switch reference and comparison file",1,"reference-comparison-switch",3,"click","disabled"],[1,"fa","fa-arrows-h"],["placeholder","select comparison file","panelClass","cc-file-select",1,"delta-select",3,"selectionChange","value"],[1,"pictogram"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"mat-select",1),qe(2,"async"),ze("selectionChange",function(s){return r.handleDeltaReferenceFileChange(s.value)}),Or(3,bVe,3,4,"mat-option",2,qr),qe(5,"async"),U(),D(6,"button",3),qe(7,"async"),ze("click",function(){return r.switchReferenceAndComparison()}),xe(8,"i",4),U(),D(9,"mat-select",5),qe(10,"async"),ze("selectionChange",function(s){return r.handleDeltaComparisonFileChange(s.value)}),Or(11,vVe,3,4,"mat-option",2,qr),qe(13,"async"),U(),xe(14,"div",6),qe(15,"async"),U()),2&i&&(Q(),_e("value",rt(2,5,r.referenceFile$)),Q(2),Lr(rt(5,7,r.files$)),Q(3),_e("disabled",void 0===rt(7,9,r.comparisonFile$)),Q(3),_e("value",rt(10,11,r.comparisonFile$)),Q(2),Lr(rt(13,13,r.possibleComparisonFiles$)),Q(3),zi("background",rt(15,15,r.pictogramBackground$)))},dependencies:[Gm,du,Kn,sN],styles:[".delta-select-wrapper[_ngcontent-%COMP%]{display:flex;gap:12px}.delta-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}.reference-comparison-switch[_ngcontent-%COMP%]{background-color:#1b9cfc;margin:0;height:24px;width:36px;border-radius:5px}.reference-comparison-switch[disabled][_ngcontent-%COMP%]{background-color:#ccc}.reference-comparison-switch[_ngcontent-%COMP%]:hover{background-color:#0374c9}.reference-comparison-switch[_ngcontent-%COMP%]:hover[disabled]{background-color:#ccc}.reference-comparison-switch[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{vertical-align:middle;color:#fff}.pictogram[_ngcontent-%COMP%]{display:inline-flex;width:10px;margin-right:5px;margin-left:5px;height:22px;border-radius:2px;align-self:center;vertical-align:bottom}"]})}}return n})(),wVe=(()=>{class n{constructor(e){this.store=e}onRemoveFile(e,i){this.store.dispatch(oR({fileName:e})),i.stopPropagation(),i.preventDefault()}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-remove-file-button"]],inputs:{filename:"filename"},decls:2,vars:0,consts:[["title","Remove map",3,"click"],[1,"fa","fa-trash","delete-symbol"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(s){return r.onRemoveFile(r.filename,s)}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{padding:8px 10px}button[_ngcontent-%COMP%]:hover{border-radius:50%}"]})}}return n})();function xVe(n,t){1&n&&xe(0,"cc-remove-file-button",4),2&n&&_e("filename",Le().$implicit.file.fileMeta.fileName)}function CVe(n,t){if(1&n&&(D(0,"mat-option",3),ye(1),qe(2,"removeExtension"),pt(3,xVe,1,1,"cc-remove-file-button",4),U()),2&n){const e=t.$implicit,i=Le();_e("value",e.file),Q(),sn(" ",rt(2,3,e.file.fileMeta.fileName)," "),Q(2),Tt(3,i.fileStates.length>1?3:-1)}}let MVe=(()=>{class n{constructor(e){this.store=e,this.fileStates=[],this.selectedFilesInUI=[],this.selectedFilesInStore=[],this.filesSubscription=this.store.select(xh).subscribe(i=>{this.fileStates=i,this.selectedFilesInStore=i.filter(r=>r.selectedAs===er.Partial).map(r=>r.file),this.selectedFilesInUI=this.selectedFilesInStore})}ngOnDestroy(){this.filesSubscription.unsubscribe()}handleSelectedFilesChanged(e){this.selectedFilesInUI=e,e.length>0&&this.store.dispatch(P1({files:e}))}handleOpenedChanged(e){e||(this.selectedFilesInUI=this.selectedFilesInStore)}handleSelectZeroFiles(){this.selectedFilesInUI=[]}handleInvertSelectedFiles(){this.selectedFilesInUI.length===this.fileStates.length?this.selectedFilesInUI=[]:this.store.dispatch(lR())}handleSelectAllFiles(){this.store.dispatch(aR())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel-file-selector"]],decls:10,vars:1,consts:[["panelClass","cc-file-select","multiple","",1,"cc-standard-select",3,"valueChange","selectionChange","openedChange","value"],[1,"cc-file-selection-actions"],[1,"cc-file-select-action-button",3,"click"],[1,"cc-file-name",3,"value"],[3,"filename"]],template:function(i,r){1&i&&(D(0,"mat-select",0),ld("valueChange",function(s){return eu(r.selectedFilesInUI,s)||(r.selectedFilesInUI=s),s}),ze("selectionChange",function(s){return r.handleSelectedFilesChanged(s.value)})("openedChange",function(s){return r.handleOpenedChanged(s)}),D(1,"div",1)(2,"button",2),ze("click",function(){return r.handleSelectAllFiles()}),ye(3,"All"),U(),D(4,"button",2),ze("click",function(){return r.handleSelectZeroFiles()}),ye(5,"None"),U(),D(6,"button",2),ze("click",function(){return r.handleInvertSelectedFiles()}),ye(7,"Invert"),U()(),Or(8,CVe,4,5,"mat-option",3,qr),U()),2&i&&(ad("value",r.selectedFilesInUI),Q(8),Lr(r.fileStates))},dependencies:[Gm,du,wVe,sN],styles:[".cc-standard-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}"]})}}return n})();function LU(){return fe((n,t)=>{let e,i=!1;n.subscribe(De(t,r=>{const o=e;e=r,i&&t.next([o,r]),i=!0}))})}let Jne=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.lastSetFilesOfPreviousMode=[],this.subscription=this.store.select(xh).pipe(LU(),qi(([r,o])=>ou(r)!==ou(o)||0===o.length),Dr(([r,o])=>{this.lastSetFilesOfPreviousMode=0===o.length?o:r})).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}toggle(){if(0===this.lastSetFilesOfPreviousMode.length||ou(this.lastSetFilesOfPreviousMode)){const i=xh(this.state.getValue());this.lastSetFilesOfPreviousMode=this.filterNoneExisting(i,this.lastSetFilesOfPreviousMode);const r=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===er.Reference)??i.find(s=>s.selectedAs===er.Partial),o=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===er.Comparison);this.store.dispatch(g2({referenceFile:r.file,comparisonFile:o?.file}))}else this.store.dispatch(B1({value:this.lastSetFilesOfPreviousMode}))}filterNoneExisting(e,i){return i.filter(r=>e.find(o=>c2(o.file,r.file)))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),EVe=(()=>{class n{constructor(e,i){this.store=e,this.fileSelectionModeService=i,this.isDeltaState$=this.store.select(Hm)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Jne))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel-state-buttons"]],decls:10,vars:14,consts:[["mat-button","",1,"state-selector-button","left",3,"click","disabled"],[1,"text"],["mat-button","",1,"state-selector-button","right",3,"click","disabled"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),qe(2,"async"),ze("click",function(){return r.fileSelectionModeService.toggle()}),D(3,"span",1),ye(4,"Standard"),U()(),D(5,"button",2),qe(6,"async"),qe(7,"async"),ze("click",function(){return r.fileSelectionModeService.toggle()}),D(8,"span",1),ye(9,"Delta"),U()()),2&i&&(Un("current",!rt(1,6,r.isDeltaState$)),_e("disabled",!rt(2,8,r.isDeltaState$)),Q(5),Un("current",rt(6,10,r.isDeltaState$)),_e("disabled",rt(7,12,r.isDeltaState$)))},dependencies:[cs,Kn],styles:[".state-selector-button[_ngcontent-%COMP%]{height:24px;width:66px;margin:0;padding:0;background-color:#fff;font-size:10pt}.state-selector-button[_ngcontent-%COMP%]:hover{background-color:#e6e6e6f5}.state-selector-button.left[_ngcontent-%COMP%]{border-radius:5px 0 0 5px}.state-selector-button.right[_ngcontent-%COMP%]{border-radius:0 5px 5px 0}.state-selector-button.current[_ngcontent-%COMP%]{background-color:#1b9cfc;color:#fff}.state-selector-button.current[_ngcontent-%COMP%]:hover{background-color:#1b9cfc}"]})}}return n})();function SVe(n,t){1&n&&xe(0,"cc-file-panel-file-selector")}function TVe(n,t){1&n&&xe(0,"cc-file-panel-delta-selector")}let IVe=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Hm)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel"]],decls:4,vars:3,template:function(i,r){1&i&&(xe(0,"cc-file-panel-state-buttons"),pt(1,SVe,1,0,"cc-file-panel-file-selector"),qe(2,"async"),pt(3,TVe,1,0)),2&i&&(Q(),Tt(1,rt(2,1,r.isDeltaState$)?3:1))},dependencies:[yVe,MVe,EVe,Kn],styles:["[_nghost-%COMP%]{display:flex;gap:inherit}.hidden[_nghost-%COMP%]{display:none}"]})}}return n})();const FVe=Kt(tee,n=>n&&{path:n.path.slice(1).split("/"),isFile:"File"===n.type});function DVe(n,t){if(1&n&&xe(0,"i",2),2&n){const e=Le(2);Un("fa-file-o",e.isFile)("fa-folder",!e.isFile)}}function kVe(n,t){1&n&&xe(0,"i",1)}function BVe(n,t){if(1&n&&(D(0,"span"),pt(1,DVe,1,4,"i",0),D(2,"span"),ye(3),U(),pt(4,kVe,1,0,"i",1),U()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;Q(),Tt(1,i===r-1?1:-1),Q(),Un("bold",i===r-1),Q(),br(e),Q(),Tt(4,i!==r-1?4:-1)}}function PVe(n,t){1&n&&Or(0,BVe,5,5,"span",null,qr),2&n&&Lr(t.path)}let RVe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodePathPanelData$=this.store.select(FVe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-hovered-node-path-panel"]],decls:2,vars:3,consts:[[1,"fa",3,"fa-file-o","fa-folder"],[1,"fa","fa-angle-right"],[1,"fa"]],template:function(i,r){if(1&i&&(pt(0,PVe,2,0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.hoveredNodePathPanelData$))?0:-1,o)}},dependencies:[Kn],styles:["[_nghost-%COMP%]{width:100%;min-width:400px;display:inline-block;vertical-align:middle;margin:0 8px;font-size:10pt;overflow:hidden;white-space:nowrap}[_nghost-%COMP%] .bold[_ngcontent-%COMP%]{font-weight:600}[_nghost-%COMP%] i[_ngcontent-%COMP%]{margin:0 4px}"]})}}return n})();const OVe=Kt(so,n=>n.isLoadingMap),LVe=["determinateSpinner"];function NVe(n,t){if(1&n&&(Ul(),D(0,"svg",11),xe(1,"circle",12),U()),2&n){const e=Le();pi("viewBox",e._viewBox()),Q(),zi("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),pi("r",e._circleRadius())}}const UVe=new dt("mat-progress-spinner-default-options",{providedIn:"root",factory:function HVe(){return{diameter:eie}}}),eie=100;let tie=(()=>{class n{get color(){return this._color||this._defaultColor}set color(e){this._color=e}constructor(e,i,r){this._elementRef=e,this._defaultColor="primary",this._value=0,this._diameter=eie,this._noopAnimations="NoopAnimations"===i&&!!r&&!r._forceAnimations,this.mode="mat-spinner"===e.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",r&&(r.color&&(this.color=this._defaultColor=r.color),r.diameter&&(this.diameter=r.diameter),r.strokeWidth&&(this.strokeWidth=r.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(_s,8),$(UVe))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(1&i&&ti(LVe,5),2&i){let o;an(o=ln())&&(r._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){2&i&&(pi("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===r.mode?r.value:null)("mode",r.mode),cl("mat-"+r.color),zi("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),Un("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===r.mode))},inputs:{color:"color",mode:"mode",value:[Ct.HasDecoratorInputTransform,"value","value",ba],diameter:[Ct.HasDecoratorInputTransform,"diameter","diameter",ba],strokeWidth:[Ct.HasDecoratorInputTransform,"strokeWidth","strokeWidth",ba]},exportAs:["matProgressSpinner"],standalone:!0,features:[rs,Nr],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(1&i&&(pt(0,NVe,2,8,"ng-template",null,0,jf),D(2,"div",2,1),Ul(),D(4,"svg",3),xe(5,"circle",4),U()(),Yg(),D(6,"div",5)(7,"div",6)(8,"div",7),L0(9,8),U(),D(10,"div",9),L0(11,8),U(),D(12,"div",10),L0(13,8),U()()()),2&i){const o=Lo(1);Q(4),pi("viewBox",r._viewBox()),Q(),zi("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),pi("r",r._circleRadius()),Q(4),_e("ngTemplateOutlet",o),Q(2),_e("ngTemplateOutlet",o),Q(2),_e("ngTemplateOutlet",o)}},dependencies:[zy],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}}return n})(),nie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fr]})}}return n})(),QVe=(()=>{class n{constructor(e){this.isLoadingMap$=e.select(OVe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-loading-map-progress-spinner"]],decls:2,vars:4,consts:[["id","loading-gif-map","mode","indeterminate","diameter","22","title","Rendering map"]],template:function(i,r){1&i&&(xe(0,"mat-progress-spinner",0),qe(1,"async")),2&i&&zi("visibility",rt(1,2,r.isLoadingMap$)?"visible":"hidden")},dependencies:[tie,Kn],styles:["[_nghost-%COMP%]{display:inline-block;vertical-align:middle}"]})}}return n})();const zVe=Kt(so,n=>n.isPresentationMode);let qVe=(()=>{class n{constructor(e,i){this.store=e,this.elementReference=i,this.isPresentationModeEnabled$=this.store.select(zVe)}setPresentationModeEnabled(e){this.store.dispatch(KE({value:e.checked})),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-program-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("mat-mdc-slide-toggle-focused")}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Nn))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-presentation-mode-button"]],decls:6,vars:6,consts:[["aria-label","Presentation Mode Toggle",1,"cc-presentation-mode-button",3,"change","checked","title"],[1,"presentation-mode-icon","fa","fa-television"]],template:function(i,r){1&i&&(D(0,"mat-slide-toggle",0),qe(1,"async"),qe(2,"async"),ze("change",function(s){return r.setPresentationModeEnabled(s)}),xe(3,"i",1),D(4,"span"),ye(5,"Presentation Mode"),U()()),2&i&&_e("checked",rt(1,2,r.isPresentationModeEnabled$))("title",rt(2,4,r.isPresentationModeEnabled$)?"Disable flashlight hover effect":"Enable flashlight hover effect")},dependencies:[Cb,Kn],styles:["i[_ngcontent-%COMP%]{margin-right:4px}"]})}}return n})();const GVe=Kt(so,n=>n.experimentalFeaturesEnabled),WVe=Kt(so,n=>n.hideFlatBuildings),iie=Kt(so,n=>n.resetCameraIfNewFileIsLoaded),rie=Kt(so,n=>n.layoutAlgorithm),$Ve=Kt(so,n=>n.maxTreeMapFiles);function jVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),U()),2&n){const e=t.$implicit;_e("value",e),Q(),sn(" ",e," ")}}function XVe(n,t){if(1&n&&(xe(0,"cc-slider",3),qe(1,"async")),2&n){const e=Le();_e("label","Maximum TreeMap Files")("min",1)("max",1e3)("value",rt(1,5,e.maxTreeMapFiles$))("onChange",e.handleChangeMaxTreeMapFiles)}}let KVe=(()=>{class n{constructor(e){this.store=e,this.layoutAlgorithms=Object.values(hu),this.layoutAlgorithm$=this.store.select(rie),this.maxTreeMapFiles$=this.store.select($Ve),this.handleChangeMaxTreeMapFiles=Eu(i=>{this.store.dispatch(x1({value:i}))},400)}handleSelectedLayoutAlgorithmChanged(e){this.store.dispatch(w1({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-layout-selection"]],decls:9,vars:6,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"],[1,"cc-tree-maps-max-tree-map-files",3,"label","min","max","value","onChange"]],template:function(i,r){1&i&&(D(0,"mat-form-field",0)(1,"mat-label"),ye(2,"Map Layout"),U(),D(3,"mat-select",1),qe(4,"async"),ze("selectionChange",function(s){return r.handleSelectedLayoutAlgorithmChanged(s)}),Or(5,jVe,2,2,"mat-option",2,qr),U()(),pt(7,XVe,2,7,"cc-slider",3),qe(8,"async")),2&i&&(Q(3),_e("value",rt(4,2,r.layoutAlgorithm$)),Q(2),Lr(r.layoutAlgorithms),Q(2),Tt(7,"TreeMapStreet"===rt(8,4,r.layoutAlgorithm$)?7:-1))},dependencies:[Md,Cd,Gm,du,mI,Kn],encapsulation:2})}}return n})();function YVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),U()),2&n){const e=t.$implicit;_e("value",e),Q(),sn(" ",e," ")}}let ZVe=(()=>{class n{constructor(e){this.store=e,this.sharpnessModes=Object.values(gA),this.sharpnessMode$=this.store.select(xX)}handleSelectedSharpnessModeChanged(e){this.store.dispatch(C1({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-display-quality-selection"]],decls:7,vars:3,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(D(0,"mat-form-field",0)(1,"mat-label"),ye(2,"Display Quality"),U(),D(3,"mat-select",1),qe(4,"async"),ze("selectionChange",function(s){return r.handleSelectedSharpnessModeChanged(s)}),Or(5,YVe,2,2,"mat-option",2,qr),U()()),2&i&&(Q(3),_e("value",rt(4,1,r.sharpnessMode$)),Q(2),Lr(r.sharpnessModes))},dependencies:[Md,Cd,Gm,du,Kn],encapsulation:2})}}return n})();const JVe=()=>["appSettings.hideFlatBuildings","appSettings.isWhiteBackground","appSettings.resetCameraIfNewFileIsLoaded","appSettings.layoutAlgorithm","appSettings.maxTreeMapFiles"];let eQe=(()=>{class n{constructor(e){this.store=e,this.screenshotToClipboardEnabled$=this.store.select(cne),this.experimentalFeaturesEnabled$=this.store.select(GVe),this.isWhiteBackground$=this.store.select(PZ),this.hideFlatBuildings$=this.store.select(WVe),this.resetCameraIfNewFileIsLoaded$=this.store.select(iie)}handleResetCameraIfNewFileIsLoadedChanged(e){this.store.dispatch(JE({value:e.checked}))}handleHideFlatBuildingsChanged(e){this.store.dispatch(_1({value:e.checked}))}handleIsWhiteBackgroundChanged(e){this.store.dispatch(y1({value:e.checked}))}handleExperimentalFeaturesEnabledChanged(e){this.store.dispatch(jE({value:e.checked}))}handleScreenshotToClipboardEnabledChanged(e){this.store.dispatch($E({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-global-configuration-dialog"]],decls:37,vars:17,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"cc-global-configuration-dialog-content"],[3,"change","checked"],["title","Current experimental features:\nDynamic Floor Label Height: Raises folder labels further up to reduce flickering on large maps (Needs site refresh)",3,"change","checked"],[1,"fa","fa-info-circle"],["tooltip","Reset global settings to their defaults","label","Reset global settings",3,"settingsKeys"],[1,"cc-global-configuration-links-list"],["href","https://github.com/MaibornWolff/codecharta/blob/main/README.md","target","_blank","rel","noopener noreferrer",1,"weblink"],[1,"fa","fa-external-link","icon-link"],["href","https://github.com/MaibornWolff/codecharta/","target","_blank","rel","noopener noreferrer",1,"weblink"],["href","https://github.com/MaibornWolff/codecharta/wiki","target","_blank","rel","noopener noreferrer",1,"weblink"],["align","end"],["mat-flat-button","","mat-dialog-close",""]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Global Configuration"),U()(),D(3,"mat-dialog-content")(4,"div",1),xe(5,"cc-map-layout-selection")(6,"cc-display-quality-selection"),D(7,"mat-slide-toggle",2),qe(8,"async"),ze("change",function(s){return r.handleHideFlatBuildingsChanged(s)}),ye(9," Hide Flattened Buildings "),U(),D(10,"mat-slide-toggle",2),qe(11,"async"),ze("change",function(s){return r.handleResetCameraIfNewFileIsLoadedChanged(s)}),ye(12," Reset Camera when changing map "),U(),D(13,"mat-slide-toggle",2),qe(14,"async"),ze("change",function(s){return r.handleIsWhiteBackgroundChanged(s)}),ye(15," White Background "),U(),D(16,"mat-slide-toggle",3),qe(17,"async"),ze("change",function(s){return r.handleExperimentalFeaturesEnabledChanged(s)}),ye(18," Enable Experimental Features "),xe(19,"i",4),U(),D(20,"mat-slide-toggle",2),qe(21,"async"),ze("change",function(s){return r.handleScreenshotToClipboardEnabledChanged(s)}),ye(22," Screenshot to clipboard "),U(),xe(23,"cc-reset-settings-button",5),D(24,"div",6)(25,"a",7),xe(26,"em",8),ye(27,"How-to "),U(),D(28,"a",9),xe(29,"em",8),ye(30,"Github "),U(),D(31,"a",10),xe(32,"em",8),ye(33,"Wiki "),U()()()(),D(34,"mat-dialog-actions",11)(35,"button",12),ye(36,"Close"),U()()),2&i&&(Q(7),_e("checked",rt(8,6,r.hideFlatBuildings$)),Q(3),_e("checked",rt(11,8,r.resetCameraIfNewFileIsLoaded$)),Q(3),_e("checked",rt(14,10,r.isWhiteBackground$)),Q(3),_e("checked",rt(17,12,r.experimentalFeaturesEnabled$)),Q(4),_e("checked",rt(21,14,r.screenshotToClipboardEnabled$)),Q(3),_e("settingsKeys",fh(16,JVe)))},dependencies:[cs,Jl,kc,ec,zm,Cb,fx,KVe,ZVe,Kn],styles:[".cc-global-configuration-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:26px}.cc-global-configuration-links-list[_ngcontent-%COMP%]{display:flex;gap:16px}.cc-global-configuration-links-list[_ngcontent-%COMP%] .weblink[_ngcontent-%COMP%]{display:block;color:#000000de;text-decoration:none}.cc-global-configuration-links-list[_ngcontent-%COMP%] .weblink[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{margin:8px}"]})}}return n})(),tQe=(()=>{class n{constructor(e){this.dialog=e}showGlobalConfiguration(){this.dialog.open(eQe,{panelClass:"cc-global-configuration-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-global-configuration-button"]],decls:4,vars:1,consts:[["mat-button","","title","Global Configuration",3,"click"],[3,"icon"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.showGlobalConfiguration()}),D(1,"span"),ye(2,"Global Configuration"),U(),xe(3,"cc-action-icon",1),U()),2&i&&(Q(3),_e("icon","fa fa-cog"))},dependencies:[cs,eg],styles:["button[_ngcontent-%COMP%]{margin:0}button[_ngcontent-%COMP%] cc-action-icon[_ngcontent-%COMP%]{margin-left:12px}button[_ngcontent-%COMP%]:hover cc-action-icon[_ngcontent-%COMP%]{background-color:#0374c9}span[_ngcontent-%COMP%]{font-size:10pt}"]})}}return n})();function nQe(n,t){1&n&&xe(0,"cc-file-panel")}function iQe(n,t){1&n&&xe(0,"cc-hovered-node-path-panel")}let rQe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodeId$=this.store.select(Yw)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-tool-bar"]],decls:12,vars:3,consts:[[1,"right-aligned"]],template:function(i,r){1&i&&(xe(0,"cc-upload-files-button")(1,"cc-screenshot-button")(2,"cc-copy-to-clipboard-button")(3,"cc-export-3d-map-button")(4,"cc-reset-map-button"),pt(5,nQe,1,0,"cc-file-panel"),qe(6,"async"),pt(7,iQe,1,0),D(8,"div",0),xe(9,"cc-loading-map-progress-spinner")(10,"cc-presentation-mode-button")(11,"cc-global-configuration-button"),U()),2&i&&(Q(5),Tt(5,null===rt(6,1,r.hoveredNodeId$)?5:7))},dependencies:[M9e,z9e,J9e,nVe,AVe,IVe,RVe,QVe,qVe,tQe,Kn],styles:["[_nghost-%COMP%]{display:flex;gap:8px;padding-left:8px;align-items:center;background-color:#f0f0f0;height:35px;border-bottom:1px solid #cdcdcd}[_nghost-%COMP%] .right-aligned[_ngcontent-%COMP%]{position:absolute;right:4px;display:inline-flex;align-items:center;width:400px;justify-content:space-between}"]})}}return n})(),oie=(()=>{class n{static{this.NO_EXTENSION="None"}static{this.OTHER_EXTENSION="other"}static{this.OTHER_GROUP_THRESHOLD_VALUE=3}static getMetricDistribution(e,i){if(!e)return[];const r=new Map;let o=0;for(const a of yo(e))if(No(a)&&!a.data.isExcluded){const l=a.data.attributes[i],c=n.estimateFileExtension(a.data.name),d=r.get(c);o+=l,d?d.absoluteMetricValue+=l:r.set(c,n.getDistributionObject(c,l))}if(0===o)return[n.getNoneExtension()];let s=[];for(const a of r.values())0!==a.absoluteMetricValue&&(a.relativeMetricValue=100*a.absoluteMetricValue/o,s.push(a));return s.sort((a,l)=>l.absoluteMetricValue-a.absoluteMetricValue),s=n.getMetricDistributionWithOthers(s),s.length>0?s:[n.getNoneExtension()]}static getMetricDistributionWithOthers(e){const i=n.getOtherExtension(),r=[];for(const o of e)o.relativeMetricValue>n.OTHER_GROUP_THRESHOLD_VALUE?r.push(o):(i.absoluteMetricValue+=o.absoluteMetricValue,i.relativeMetricValue+=o.relativeMetricValue);return i.relativeMetricValue>0&&r.push(i),r}static getOtherExtension(){return{fileExtension:n.OTHER_EXTENSION,absoluteMetricValue:0,relativeMetricValue:0,color:n.getColor(n.OTHER_EXTENSION)}}static getDistributionObject(e,i){return{fileExtension:e,absoluteMetricValue:i,relativeMetricValue:0,color:n.getColor(e)}}static estimateFileExtension(e){const i=e.lastIndexOf(".");return i>0&&i!==e.length?e.slice(i+1).toLowerCase():n.NO_EXTENSION}static getNoneExtension(){return{fileExtension:n.NO_EXTENSION,absoluteMetricValue:null,relativeMetricValue:100,color:n.getColor(n.NO_EXTENSION)}}static getColor(e){if(e===n.NO_EXTENSION||e===n.OTHER_EXTENSION)return"#676867";let i=0;for(let r=0;rn.distributionMetric),oQe=Kt(Hc,sie,(n,t)=>oie.getMetricDistribution(n.unifiedMapNode,t));let sQe=(()=>{class n{constructor(e){this.store=e,this.distributionMetric$=this.store.select(sie)}handleDistributionMetricChanged(e){this.store.dispatch(T1({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-distribution-metric-chooser"]],decls:3,vars:5,consts:[[1,"fa","fa-pie-chart"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"i",0)(1,"cc-metric-chooser",1),qe(2,"async")),2&i&&(Q(),_e("selectedMetricName",rt(2,3,r.distributionMetric$))("searchPlaceholder","Distribution Metric (highest value)")("handleMetricChanged",r.handleDistributionMetricChanged))},dependencies:[ux,Kn],styles:["[_nghost-%COMP%]{width:210px;display:flex;align-items:center;font-size:12px;gap:6px;margin-left:5px;margin-right:5px}"]})}}return n})();function aQe(n,t){if(1&n){const e=Dn();D(0,"span",7),ze("click",function(){return Ot(e),Rt(Le().toggleShowAbsoluteValues())}),D(1,"div",8),ze("mouseover",function(){const r=Ot(e).$implicit;return Rt(Le().onHoverFileExtensionBar(r.fileExtension))})("mouseleave",function(){return Ot(e),Rt(Le().onUnhoverFileExtensionBar())}),ye(2),U()()}if(2&n){const e=t.$implicit,i=Le();zi("width",e.relativeMetricValue+"%")("background",e.color),Q(),Ua("title",e.fileExtension.toString()+" "+(i.showAbsoluteValues?e.absoluteMetricValue.toFixed(0):e.relativeMetricValue.toFixed(2)+"%")),Q(),Jd(" ",e.relativeMetricValue>=e.fileExtension.length/2+1?e.fileExtension:""," ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}function lQe(n,t){if(1&n&&(D(0,"div",6),xe(1,"span",9),ye(2),D(3,"span",10),ye(4),U()()),2&n){const e=t.$implicit,i=Le();Q(),zi("background",e.color),Q(),sn("",e.fileExtension," : "),Q(2),sn(" ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}let cQe=(()=>{class n{constructor(e,i){this.store=e,this.threeSceneService=i,this.showAbsoluteValues=!1,this.showDetails=!1,this.store.select(oQe).subscribe(r=>{this.metricDistribution=r})}onHoverFileExtensionBar(e){const i=new Set;for(const r of this.metricDistribution)"other"!==r.fileExtension&&i.add(r.fileExtension);for(const r of this.threeSceneService.getMapMesh().getMeshDescription().buildings)if(r.node.isLeaf){const o=oie.estimateFileExtension(r.node.name);(o===e||"other"===e&&!i.has(o))&&this.threeSceneService.addBuildingToHighlightingList(r)}this.threeSceneService.highlightBuildings()}onUnhoverFileExtensionBar(){this.threeSceneService.clearHighlight()}toggleShowDetails(){this.showDetails=!this.showDetails}toggleShowAbsoluteValues(){this.showAbsoluteValues=!this.showAbsoluteValues}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Vc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-extension-bar"]],decls:10,vars:5,consts:[[1,"cc-distribution"],["title","Distribution metric"],[1,"cc-bar"],[1,"cc-bar-section",3,"width","background"],[1,"cc-show-details-button",3,"click"],[1,"cc-distribution-details",3,"click"],[1,"cc-distribution-details-entry"],[1,"cc-bar-section",3,"click"],[1,"cc-bar-section-text",3,"mouseover","mouseleave","title"],[1,"cc-dot"],[1,"cc-detail-metric-value"]],template:function(i,r){1&i&&(D(0,"div",0),xe(1,"cc-distribution-metric-chooser",1),D(2,"div",2),Or(3,aQe,3,7,"span",3,qr),U(),D(5,"button",4),ze("click",function(){return r.toggleShowDetails()}),xe(6,"i"),U()(),D(7,"div",5),ze("click",function(){return r.toggleShowAbsoluteValues()}),Or(8,lQe,5,4,"div",6,qr),U()),2&i&&(Q(3),Lr(r.metricDistribution),Q(3),hh("fa ",r.showDetails?"fa-caret-up":"fa-caret-down",""),Q(),Un("cc-hidden",!r.showDetails),Q(),Lr(r.metricDistribution))},dependencies:[sQe],styles:['#mat-select-2-panel[_ngcontent-%COMP%]{left:-24px;top:98px}[_nghost-%COMP%]{z-index:30;background-color:#fff}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%]{display:flex;height:17px}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%]{height:100%;display:inline-block;overflow:hidden;color:#fff;text-align:center;cursor:pointer;outline:none}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid white}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%] .cc-bar-section-text[_ngcontent-%COMP%]{font-size:10px;margin:2px 0;white-space:nowrap;padding:0 10px;text-overflow:""}[_nghost-%COMP%] .cc-show-details-button[_ngcontent-%COMP%]{line-height:10px;width:45px;margin:0;padding:0;background-color:#e6e6e6f5}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%]{border-top:1px solid #cdcdcd;height:25px;transition:all linear .2s}[_nghost-%COMP%] .cc-distribution-details.cc-hidden[_ngcontent-%COMP%]{height:0;border-top:0 solid #cdcdcd}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%]:hover{cursor:pointer}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%]{display:inline-block;font-size:15px;color:#000;margin:3px 0 3px 30px}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%] .cc-dot[_ngcontent-%COMP%]{height:10px;width:10px;border-radius:50%;display:inline-block;margin-right:8px}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%] .cc-detail-metric-value[_ngcontent-%COMP%]{color:gray}']})}}return n})(),dQe=(()=>{class n{constructor(e){this.isLoadingFile$=e.select(k4)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-loading-file-progress-spinner"]],decls:3,vars:4,consts:[["id","loading-gif-file"],["mode","indeterminate","diameter","96"]],template:function(i,r){1&i&&(D(0,"div",0),qe(1,"async"),xe(2,"mat-progress-spinner",1),U()),2&i&&zi("visibility",rt(1,2,r.isLoadingFile$)?"visible":"hidden")},dependencies:[tie,Kn],styles:["#loading-gif-file[_ngcontent-%COMP%]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:40;background-color:#fffc;display:inline-block;text-align:center}#loading-gif-file[_ngcontent-%COMP%] mat-progress-spinner.mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin:22% auto 0}"]})}}return n})(),uQe=(()=>{class n{constructor(e,i){this.store=e,this.loadInitialFileService=i,this.isInitialized=!1}ngOnInit(){var e=this;return k(function*(){e.store.dispatch(cA({value:!0})),yield e.loadInitialFileService.loadFilesOrSampleFiles(),e.isInitialized=!0})()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(D4))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-code-charta"]],decls:8,vars:2,template:function(i,r){1&i&&(D(0,"div"),xe(1,"cc-tool-bar")(2,"cc-file-extension-bar")(3,"cc-ribbon-bar")(4,"cc-code-map")(5,"cc-legend-panel")(6,"cc-loading-file-progress-spinner")(7,"cc-logo"),U()),2&i&&zi("visibility",r.isInitialized?"visible":"hidden")},dependencies:[ZCe,Oke,tPe,h9e,rQe,cQe,dQe],encapsulation:2})}}return n})(),hQe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})();function aie(n){return new ct(3e3,!1)}function tp(n){switch(n.length){case 0:return new j1;case 1:return n[0];default:return new P$(n)}}function lie(n,t,e=new Map,i=new Map){const r=[],o=[];let s=-1,a=null;if(t.forEach(l=>{const c=l.get("offset"),d=c==s,u=d&&a||new Map;l.forEach((h,f)=>{let A=f,y=h;if("offset"!==f)switch(A=n.normalizePropertyName(A,r),y){case"!":y=e.get(f);break;case Fh:y=i.get(f);break;default:y=n.normalizeStyleValue(f,A,y,r)}u.set(A,y)}),d||o.push(u),a=u,s=c}),r.length)throw function RQe(n){return new ct(3502,!1)}();return o}function NU(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&UU(e,"start",n)));break;case"done":n.onDone(()=>i(e&&UU(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&UU(e,"destroy",n)))}}function UU(n,t,e){const o=HU(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),s=n._data;return null!=s&&(o._data=s),o}function HU(n,t,e,i,r="",o=0,s){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:o,disabled:!!s}}function hc(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function cie(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}const $Qe=typeof document>"u"?null:document.documentElement;function VU(n){const t=n.parentNode||n.host||null;return t===$Qe?null:t}let cg=null,die=!1;function uie(n,t){for(;t;){if(t===n)return!0;t=VU(t)}return!1}function hie(n,t,e){if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]}let QU=(()=>{class n{validateStyleProperty(e){return function XQe(n){cg||(cg=function KQe(){return typeof document<"u"?document.body:null}()||{},die=!!cg.style&&"WebkitAppearance"in cg.style);let t=!0;return cg.style&&!function jQe(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in cg.style,!t&&die&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in cg.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return uie(e,i)}getParentElement(e){return VU(e)}query(e,i,r){return hie(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,o,s,a=[],l){return new j1(r,o)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();class zU{static{this.NOOP=new QU}}class qU{}const ZQe=1e3,GU="ng-enter",dF="ng-leave",uF="ng-trigger",hF=".ng-trigger",mie="ng-animating",WU=".ng-animating";function uf(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:$U(parseFloat(t[1]),t[2])}function $U(n,t){return"s"===t?n*ZQe:n}function fF(n,t,e){return n.hasOwnProperty("duration")?n:function eze(n,t,e){let r,o=0,s="";if("string"==typeof n){const a=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return t.push(aie()),{duration:0,delay:0,easing:""};r=$U(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(o=$U(parseFloat(l),a[4]));const c=a[5];c&&(s=c)}else r=n;if(!e){let a=!1,l=t.length;r<0&&(t.push(function fQe(){return new ct(3100,!1)}()),a=!0),o<0&&(t.push(function mQe(){return new ct(3101,!1)}()),a=!0),a&&t.splice(l,0,aie())}return{duration:r,delay:o,easing:s}}(n,t,e)}function Pu(n,t,e){t.forEach((i,r)=>{const o=XU(r);e&&!e.has(r)&&e.set(r,n.style[o]),n.style[o]=i})}function dg(n,t){t.forEach((e,i)=>{const r=XU(i);n.style[r]=""})}function Nx(n){return Array.isArray(n)?1==n.length?n[0]:function A1e(n,t=null){return{type:Ai.Sequence,steps:n,options:t}}(n):n}const jU=new RegExp("{{\\s*(.+?)\\s*}}","g");function Aie(n){let t=[];if("string"==typeof n){let e;for(;e=jU.exec(n);)t.push(e[1]);jU.lastIndex=0}return t}function Ux(n,t,e){const i=`${n}`,r=i.replace(jU,(o,s)=>{let a=t[s];return null==a&&(e.push(function AQe(n){return new ct(3003,!1)}()),a=""),a.toString()});return r==i?n:r}const ize=/-+([a-z0-9])/g;function XU(n){return n.replace(ize,(...t)=>t[1].toUpperCase())}function fc(n,t,e){switch(t.type){case Ai.Trigger:return n.visitTrigger(t,e);case Ai.State:return n.visitState(t,e);case Ai.Transition:return n.visitTransition(t,e);case Ai.Sequence:return n.visitSequence(t,e);case Ai.Group:return n.visitGroup(t,e);case Ai.Animate:return n.visitAnimate(t,e);case Ai.Keyframes:return n.visitKeyframes(t,e);case Ai.Style:return n.visitStyle(t,e);case Ai.Reference:return n.visitReference(t,e);case Ai.AnimateChild:return n.visitAnimateChild(t,e);case Ai.AnimateRef:return n.visitAnimateRef(t,e);case Ai.Query:return n.visitQuery(t,e);case Ai.Stagger:return n.visitStagger(t,e);default:throw function gQe(n){return new ct(3004,!1)}()}}const sze=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class gie extends qU{normalizePropertyName(t,e){return XU(t)}normalizeStyleValue(t,e,i,r){let o="";const s=i.toString().trim();if(sze.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)o="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&r.push(function _Qe(n,t){return new ct(3005,!1)}())}return s+o}}const mF="*";const pF=new Set(["true","1"]),AF=new Set(["false","0"]);function _ie(n,t){const e=pF.has(n)||AF.has(n),i=pF.has(t)||AF.has(t);return(r,o)=>{let s=n==mF||n==r,a=t==mF||t==o;return!s&&e&&"boolean"==typeof r&&(s=r?pF.has(n):AF.has(n)),!a&&i&&"boolean"==typeof o&&(a=o?pF.has(t):AF.has(t)),s&&a}}const dze=new RegExp("s*:selfs*,?","g");function YU(n,t,e,i){return new uze(n).build(t,e,i)}class uze{constructor(t){this._driver=t}build(t,e,i){const r=new mze(e);return this._resetContextStyleTimingState(r),fc(this,Nx(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const o=[],s=[];return"@"==t.name.charAt(0)&&e.errors.push(function bQe(){return new ct(3006,!1)}()),t.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==Ai.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(d=>{l.name=d,o.push(this.visitState(l,e))}),l.name=c}else if(a.type==Ai.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,r+=l.depCount,s.push(l)}else e.errors.push(function vQe(){return new ct(3007,!1)}())}),{type:Ai.Trigger,name:t.name,states:o,transitions:s,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const o=new Set,s=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{Aie(l).forEach(c=>{s.hasOwnProperty(c)||o.add(c)})})}),o.size&&e.errors.push(function yQe(n,t){return new ct(3008,!1)}(0,o.values()))}return{type:Ai.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=fc(this,Nx(t.animation),e),r=function aze(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function lze(n,t,e){if(":"==n[0]){const l=function cze(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof l)return void t.push(l);n=l}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function FQe(n){return new ct(3015,!1)}()),t;const r=i[1],o=i[2],s=i[3];t.push(_ie(r,s)),"<"==o[0]&&(r!=mF||s!=mF)&&t.push(_ie(s,r))}(i,e,t)):e.push(n),e}(t.expr,e.errors);return{type:Ai.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:ug(t.options)}}visitSequence(t,e){return{type:Ai.Sequence,steps:t.steps.map(i=>fc(this,i,e)),options:ug(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const o=t.steps.map(s=>{e.currentTime=i;const a=fc(this,s,e);return r=Math.max(r,e.currentTime),a});return e.currentTime=r,{type:Ai.Group,steps:o,options:ug(t.options)}}visitAnimate(t,e){const i=function Aze(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return ZU(fF(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=ZU(0,0,"");return o.dynamic=!0,o.strValue=e,o}const r=fF(e,t);return ZU(r.duration,r.delay,r.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,o=t.styles?t.styles:jo({});if(o.type==Ai.Keyframes)r=this.visitKeyframes(o,e);else{let s=t.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=jo(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,r=l}return e.currentAnimateTimings=null,{type:Ai.Animate,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let a of r)"string"==typeof a?a===Fh?i.push(a):e.errors.push(new ct(3002,!1)):i.push(new Map(Object.entries(a)));let o=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!o))for(let l of a.values())if(l.toString().indexOf("{{")>=0){o=!0;break}}),{type:Ai.Style,styles:i,easing:s,offset:t.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,o=e.currentTime;i&&o>0&&(o-=i.duration+i.delay),t.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),d=c.get(l);let u=!0;d&&(o!=r&&o>=d.startTime&&r<=d.endTime&&(e.errors.push(function xQe(n,t,e,i,r){return new ct(3010,!1)}()),u=!1),o=d.startTime),u&&c.set(l,{startTime:o,endTime:r}),e.options&&function nze(n,t,e){const i=t.params||{},r=Aie(n);r.length&&r.forEach(o=>{i.hasOwnProperty(o)||e.push(function pQe(n){return new ct(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:Ai.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function CQe(){return new ct(3011,!1)}()),i;let o=0;const s=[];let a=!1,l=!1,c=0;const d=t.steps.map(b=>{const M=this._makeStyleAst(b,e);let C=null!=M.offset?M.offset:function pze(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(M.styles),E=0;return null!=C&&(o++,E=M.offset=C),l=l||E<0||E>1,a=a||E0&&o{const C=h>0?M==f?1:h*M:s[M],E=C*_;e.currentTime=A+y.delay+E,y.duration=E,this._validateStyleAst(b,e),b.offset=C,i.styles.push(b)}),i}visitReference(t,e){return{type:Ai.Reference,animation:fc(this,Nx(t.animation),e),options:ug(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:Ai.AnimateChild,options:ug(t.options)}}visitAnimateRef(t,e){return{type:Ai.AnimateRef,animation:this.visitReference(t.animation,e),options:ug(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[o,s]=function hze(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(dze,"")),n=n.replace(/@\*/g,hF).replace(/@\w+/g,e=>hF+"-"+e.slice(1)).replace(/:animating/g,WU),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+o:o,hc(e.collectedStyles,e.currentQuerySelector,new Map);const a=fc(this,Nx(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ai.Query,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:s,animation:a,originalSelector:t.selector,options:ug(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function TQe(){return new ct(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:fF(t.timings,e.errors,!0);return{type:Ai.Stagger,animation:fc(this,Nx(t.animation),e),timings:i,options:null}}}class mze{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function ug(n){return n?(n={...n}).params&&(n.params=function fze(n){return n?{...n}:null}(n.params)):n={},n}function ZU(n,t,e){return{duration:n,delay:t,easing:e}}function JU(n,t,e,i,r,o,s=null,a=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:s,subTimeline:a}}class gF{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const bze=new RegExp(":enter","g"),yze=new RegExp(":leave","g");function e8(n,t,e,i,r,o=new Map,s=new Map,a,l,c=[]){return(new wze).buildKeyframes(n,t,e,i,r,o,s,a,l,c)}class wze{buildKeyframes(t,e,i,r,o,s,a,l,c,d=[]){c=c||new gF;const u=new t8(t,e,c,r,o,d,[]);u.options=l;const h=l.delay?uf(l.delay):0;u.currentTimeline.delayNextStep(h),u.currentTimeline.setStyles([s],null,u.errors,l),fc(this,i,u);const f=u.timelines.filter(A=>A.containsAnimation());if(f.length&&a.size){let A;for(let y=f.length-1;y>=0;y--){const _=f[y];if(_.element===e){A=_;break}}A&&!A.allowOnlyTimelineStyles()&&A.setStyles([a],null,u.errors,l)}return f.length?f.map(A=>A.buildKeyframes()):[JU(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),o=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,r,r.options);o!=s&&e.transformIntoNewTimeline(s)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const r of t){const o=r?.delay;if(o){const s="number"==typeof o?o:uf(Ux(o,r?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(t,e,i){let o=e.currentTimeline.currentTime;const s=null!=i.duration?uf(i.duration):null,a=null!=i.delay?uf(i.delay):null;return 0!==s&&t.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);o=Math.max(o,c.duration+c.delay)}),o}visitReference(t,e){e.updateOptions(t.options,!0),fc(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const o=t.options;if(o&&(o.params||o.delay)&&(r=e.createSubContext(o),r.transformIntoNewTimeline(),null!=o.delay)){r.previousNode.type==Ai.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=_F);const s=uf(o.delay);r.delayNextStep(s)}t.steps.length&&(t.steps.forEach(s=>fc(this,s,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const o=t.options&&t.options.delay?uf(t.options.delay):0;t.steps.forEach(s=>{const a=e.createSubContext(t.options);o&&a.delayNextStep(o),fc(this,s,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return fF(e.params?Ux(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const o=t.style;o.type==Ai.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(i.duration),this.visitStyle(o,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const o=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(o):i.setStyles(t.styles,o,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,o=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,t.styles.forEach(l=>{a.forwardTime((l.offset||0)*o),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(r+o),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},o=r.delay?uf(r.delay):0;o&&(e.previousNode.type===Ai.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=_F);let s=i;const a=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,d)=>{e.currentQueryIndex=d;const u=e.createSubContext(t.options,c);o&&u.delayNextStep(o),c===e.element&&(l=u.currentTimeline),fc(this,t.animation,u),u.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,u.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,o=t.timings,s=Math.abs(o.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const d=e.currentTimeline;l&&d.delayNextStep(l);const u=d.currentTime;fc(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-u+(r.startTime-i.currentTimeline.startTime)}}const _F={};class t8{constructor(t,e,i,r,o,s,a,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=o,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=_F,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new bF(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=uf(i.duration)),null!=i.delay&&(r.delay=uf(i.delay));const o=i.params;if(o){let s=r.params;s||(s=this.options.params={}),Object.keys(o).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=Ux(o[a],s,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,o=new t8(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(t),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(t){return this.previousNode=_F,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},o=new xze(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(o),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,o,s){let a=[];if(r&&a.push(this.element),t.length>0){t=(t=t.replace(bze,"."+this._enterClassName)).replace(yze,"."+this._leaveClassName);let c=this._driver.query(this.element,t,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!o&&0==a.length&&s.push(function IQe(n){return new ct(3014,!1)}()),a}}class bF{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new bF(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Fh),this._currentKeyframe.set(e,Fh);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);const o=r&&r.params||{},s=function Cze(n,t){const e=new Map;let i;return n.forEach(r=>{if("*"===r){i??=t.keys();for(let o of i)e.set(o,Fh)}else for(let[o,s]of r)e.set(o,s)}),e}(t,this._globalTimelineStyles);for(let[a,l]of s){const c=Ux(l,o,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Fh),this._updateStyle(a,c)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((d,u)=>{"!"===d?t.add(u):d===Fh&&e.add(u)}),i||c.set("offset",l/this.duration),r.push(c)});const o=[...t.values()],s=[...e.values()];if(i){const a=r[0],l=new Map(a);a.set("offset",0),l.set("offset",1),r=[a,l]}return JU(this.element,r,o,s,this.duration,this.startTime,this.easing,!1)}}class xze extends bF{constructor(t,e,i,r,o,s,a=!1){super(t,e,s.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=o,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const o=[],s=i+e,a=e/s,l=new Map(t[0]);l.set("offset",0),o.push(l);const c=new Map(t[0]);c.set("offset",yie(a)),o.push(c);const d=t.length-1;for(let u=1;u<=d;u++){let h=new Map(t[u]);const f=h.get("offset");h.set("offset",yie((e+f*i)/s)),o.push(h)}i=s,e=0,r="",t=o}return JU(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function yie(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}function wie(n,t,e,i,r,o,s,a,l,c,d,u,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:o,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:d,totalTime:u,errors:h}}const n8={};class xie{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function Mze(n,t,e,i,r){return n.some(o=>o(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return void 0!==t&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,o,s,a,l,c,d){const u=[],h=this.ast.options&&this.ast.options.params||n8,A=this.buildStyles(i,a&&a.params||n8,u),y=l&&l.params||n8,_=this.buildStyles(r,y,u),b=new Set,M=new Map,C=new Map,E="void"===r,L={params:Cie(y,h),delay:this.ast.options?.delay},N=d?[]:e8(t,e,this.ast.animation,o,s,A,_,L,c,u);let H=0;return N.forEach(j=>{H=Math.max(j.duration+j.delay,H)}),u.length?wie(e,this._triggerName,i,r,E,A,_,[],[],M,C,H,u):(N.forEach(j=>{const R=j.element,B=hc(M,R,new Set);j.preStyleProps.forEach(we=>B.add(we));const ee=hc(C,R,new Set);j.postStyleProps.forEach(we=>ee.add(we)),R!==e&&b.add(R)}),wie(e,this._triggerName,i,r,E,A,_,N,[...b.values()],M,C,H))}}function Cie(n,t){const e={...t};return Object.entries(n).forEach(([i,r])=>{null!=r&&(e[i]=r)}),e}class Eze{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,r=Cie(t,this.defaultParams);return this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,a)=>{s&&(s=Ux(s,r,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class Tze{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(r=>{this.states.set(r.name,new Eze(r.style,r.options&&r.options.params||{},i))}),Mie(this.states,"true","1"),Mie(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new xie(t,r,this.states))}),this.fallbackTransition=function Ize(n,t,e){return new xie(n,{type:Ai.Transition,animation:{type:Ai.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(s=>s.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function Mie(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const Fze=new gF;class Dze{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],o=YU(this._driver,e,i,[]);if(i.length)throw function OQe(n){return new ct(3503,!1)}();this._animations.set(t,o)}_buildPlayer(t,e,i){const r=t.element,o=lie(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,o,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],o=this._animations.get(t);let s;const a=new Map;if(o?(s=e8(this._driver,e,o,GU,dF,new Map,new Map,i,Fze,r),s.forEach(d=>{const u=hc(a,d.element,new Map);d.postStyleProps.forEach(h=>u.set(h,null))})):(r.push(function LQe(){return new ct(3300,!1)}()),s=[]),r.length)throw function NQe(n){return new ct(3504,!1)}();a.forEach((d,u)=>{d.forEach((h,f)=>{d.set(f,this._driver.computeStyle(u,f,Fh))})});const c=tp(s.map(d=>{const u=a.get(d.element);return this._buildPlayer(d,new Map,u)}));return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function UQe(n){return new ct(3301,!1)}();return e}listen(t,e,i,r){const o=HU(e,"","","");return NU(this._getPlayer(t),i,o,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const o=this._getPlayer(t);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const Eie="ng-animate-queued",i8="ng-animate-disabled",Oze=[],Sie={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Lze={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Dd="__ng_removed";class r8{get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function Vze(n){return n??null}(i?t.value:t),i){const{value:o,...s}=t;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const Hx="void",o8=new r8(Hx);class Nze{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,zc(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw function HQe(n,t){return new ct(3302,!1)}();if(null==i||0==i.length)throw function VQe(n){return new ct(3303,!1)}();if(!function Qze(n){return"start"==n||"done"==n}(i))throw function QQe(n,t){return new ct(3400,!1)}();const o=hc(this._elementListeners,t,[]),s={name:e,phase:i,callback:r};o.push(s);const a=hc(this._engine.statesByElement,t,new Map);return a.has(e)||(zc(t,uF),zc(t,uF+"-"+e),a.set(e,o8)),()=>{this._engine.afterFlush(()=>{const l=o.indexOf(s);l>=0&&o.splice(l,1),this._triggers.has(e)||a.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function zQe(n){return new ct(3401,!1)}();return e}trigger(t,e,i,r=!0){const o=this._getTrigger(e),s=new s8(this.id,e,t);let a=this._engine.statesByElement.get(t);a||(zc(t,uF),zc(t,uF+"-"+e),this._engine.statesByElement.set(t,a=new Map));let l=a.get(e);const c=new r8(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=o8),c.value!==Hx&&l.value===c.value){if(!function Gze(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{dg(t,_),Pu(t,b)})}return}const h=hc(this._engine.playersByElement,t,[]);h.forEach(y=>{y.namespaceId==this.id&&y.triggerName==e&&y.queued&&y.destroy()});let f=o.matchTransition(l.value,c.value,t,c.params),A=!1;if(!f){if(!r)return;f=o.fallbackTransition,A=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:f,fromState:l,toState:c,player:s,isFallbackTransition:A}),A||(zc(t,Eie),s.onStart(()=>{qb(t,Eie)})),s.onDone(()=>{let y=this.players.indexOf(s);y>=0&&this.players.splice(y,1);const _=this._engine.playersByElement.get(t);if(_){let b=_.indexOf(s);b>=0&&_.splice(b,1)}}),this.players.push(s),h.push(s),s}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,hF,!0);i.forEach(r=>{if(r[Dd])return;const o=this._engine.fetchNamespacesByElement(r);o.size?o.forEach(s=>s.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const o=this._engine.statesByElement.get(t),s=new Map;if(o){const a=[];if(o.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const d=this.trigger(t,c,Hx,r);d&&a.push(d)}}),a.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,s),i&&tp(a).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(o=>{const s=o.name;if(r.has(s))return;r.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||o8,d=new r8(Hx),u=new s8(this.id,s,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:s,transition:l,fromState:c,toState:d,player:u,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const o=i.players.length?i.playersByQueriedElement.get(t):[];if(o&&o.length)r=!0;else{let s=t;for(;s=s.parentNode;)if(i.statesByElement.get(s)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const o=t[Dd];(!o||o===Sie)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){zc(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const o=i.element,s=this._elementListeners.get(o);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=HU(o,i.triggerName,i.fromState.value,i.toState.value);l._data=t,NU(i.player,a.phase,l,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const o=i.transition.ast.depCount,s=r.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}}class Uze{_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i,r){this.bodyNode=t,this.driver=e,this._normalizer=i,this.scheduler=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new Nze(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(e);for(;a;){const l=r.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,t),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let r of i.values())if(r.namespaceId){const o=this._fetchNamespace(r.namespaceId);o&&e.add(o)}return e}trigger(t,e,i,r){if(vF(e)){const o=this._fetchNamespace(t);if(o)return o.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!vF(e))return;const o=e[Dd];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(t){const s=this._fetchNamespace(t);s&&s.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),zc(t,i8)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),qb(t,i8))}removeNode(t,e,i){if(vF(e)){this.scheduler?.notify();const r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);const o=this.namespacesByHostElement.get(e);o&&o.id!==t&&o.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,o){this.collectedLeaveElements.push(e),e[Dd]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(t,e,i,r,o){return vF(e)?this._fetchNamespace(t).listen(e,i,r,o):()=>{}}_buildInstruction(t,e,i,r,o){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,o)}destroyInnerAnimations(t){let e=this.driver.query(t,hF,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,WU,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return tp(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[Dd];if(e&&e.setForRemoval){if(t[Dd]=Sie,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(i8)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?tp(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function qQe(n){return new ct(3402,!1)}()}_flushAnimations(t,e){const i=new gF,r=[],o=new Map,s=[],a=new Map,l=new Map,c=new Map,d=new Set;this.disabledNodes.forEach(te=>{d.add(te);const Ae=this.driver.query(te,".ng-animate-queued",!0);for(let le=0;le{const le=GU+y++;A.set(Ae,le),te.forEach(Pe=>zc(Pe,le))});const _=[],b=new Set,M=new Set;for(let te=0;teb.add(Pe)):M.add(Ae))}const C=new Map,E=Fie(h,Array.from(b));E.forEach((te,Ae)=>{const le=dF+y++;C.set(Ae,le),te.forEach(Pe=>zc(Pe,le))}),t.push(()=>{f.forEach((te,Ae)=>{const le=A.get(Ae);te.forEach(Pe=>qb(Pe,le))}),E.forEach((te,Ae)=>{const le=C.get(Ae);te.forEach(Pe=>qb(Pe,le))}),_.forEach(te=>{this.processLeaveNode(te)})});const L=[],N=[];for(let te=this._namespaceList.length-1;te>=0;te--)this._namespaceList[te].drainQueuedTransitions(e).forEach(le=>{const Pe=le.player,it=le.element;if(L.push(Pe),this.collectedEnterElements.length){const Z=it[Dd];if(Z&&Z.setForMove){if(Z.previousTriggersValues&&Z.previousTriggersValues.has(le.triggerName)){const $e=Z.previousTriggersValues.get(le.triggerName),wt=this.statesByElement.get(le.element);if(wt&&wt.has(le.triggerName)){const je=wt.get(le.triggerName);je.value=$e,wt.set(le.triggerName,je)}}return void Pe.destroy()}}const _t=!u||!this.driver.containsElement(u,it),Ht=C.get(it),cn=A.get(it),ce=this._buildInstruction(le,i,cn,Ht,_t);if(ce.errors&&ce.errors.length)return void N.push(ce);if(_t)return Pe.onStart(()=>dg(it,ce.fromStyles)),Pe.onDestroy(()=>Pu(it,ce.toStyles)),void r.push(Pe);if(le.isFallbackTransition)return Pe.onStart(()=>dg(it,ce.fromStyles)),Pe.onDestroy(()=>Pu(it,ce.toStyles)),void r.push(Pe);const ue=[];ce.timelines.forEach(Z=>{Z.stretchStartingKeyframe=!0,this.disabledNodes.has(Z.element)||ue.push(Z)}),ce.timelines=ue,i.append(it,ce.timelines),s.push({instruction:ce,player:Pe,element:it}),ce.queriedElements.forEach(Z=>hc(a,Z,[]).push(Pe)),ce.preStyleProps.forEach((Z,$e)=>{if(Z.size){let wt=l.get($e);wt||l.set($e,wt=new Set),Z.forEach((je,Nt)=>wt.add(Nt))}}),ce.postStyleProps.forEach((Z,$e)=>{let wt=c.get($e);wt||c.set($e,wt=new Set),Z.forEach((je,Nt)=>wt.add(Nt))})});if(N.length){const te=[];N.forEach(Ae=>{te.push(function GQe(n,t){return new ct(3505,!1)}())}),L.forEach(Ae=>Ae.destroy()),this.reportError(te)}const H=new Map,j=new Map;s.forEach(te=>{const Ae=te.element;i.has(Ae)&&(j.set(Ae,Ae),this._beforeAnimationBuild(te.player.namespaceId,te.instruction,H))}),r.forEach(te=>{const Ae=te.element;this._getPreviousPlayers(Ae,!1,te.namespaceId,te.triggerName,null).forEach(Pe=>{hc(H,Ae,[]).push(Pe),Pe.destroy()})});const R=_.filter(te=>kie(te,l,c)),B=new Map;Iie(B,this.driver,M,c,Fh).forEach(te=>{kie(te,l,c)&&R.push(te)});const we=new Map;f.forEach((te,Ae)=>{Iie(we,this.driver,new Set(te),l,"!")}),R.forEach(te=>{const Ae=B.get(te),le=we.get(te);B.set(te,new Map([...Ae?.entries()??[],...le?.entries()??[]]))});const Ee=[],ne=[],Ie={};s.forEach(te=>{const{element:Ae,player:le,instruction:Pe}=te;if(i.has(Ae)){if(d.has(Ae))return le.onDestroy(()=>Pu(Ae,Pe.toStyles)),le.disabled=!0,le.overrideTotalTime(Pe.totalTime),void r.push(le);let it=Ie;if(j.size>1){let Ht=Ae;const cn=[];for(;Ht=Ht.parentNode;){const ce=j.get(Ht);if(ce){it=ce;break}cn.push(Ht)}cn.forEach(ce=>j.set(ce,it))}const _t=this._buildAnimation(le.namespaceId,Pe,H,o,we,B);if(le.setRealPlayer(_t),it===Ie)Ee.push(le);else{const Ht=this.playersByElement.get(it);Ht&&Ht.length&&(le.parentPlayer=tp(Ht)),r.push(le)}}else dg(Ae,Pe.fromStyles),le.onDestroy(()=>Pu(Ae,Pe.toStyles)),ne.push(le),d.has(Ae)&&r.push(le)}),ne.forEach(te=>{const Ae=o.get(te.element);if(Ae&&Ae.length){const le=tp(Ae);te.setRealPlayer(le)}}),r.forEach(te=>{te.parentPlayer?te.syncPlayerEvents(te.parentPlayer):te.destroy()});for(let te=0;te<_.length;te++){const Ae=_[te],le=Ae[Dd];if(qb(Ae,dF),le&&le.hasAnimation)continue;let Pe=[];if(a.size){let _t=a.get(Ae);_t&&_t.length&&Pe.push(..._t);let Ht=this.driver.query(Ae,WU,!0);for(let cn=0;cn!_t.destroyed);it.length?zze(this,Ae,it):this.processLeaveNode(Ae)}return _.length=0,Ee.forEach(te=>{this.players.push(te),te.onDone(()=>{te.destroy();const Ae=this.players.indexOf(te);this.players.splice(Ae,1)}),te.play()}),Ee}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,o){let s=[];if(e){const a=this.playersByQueriedElement.get(t);a&&(s=a)}else{const a=this.playersByElement.get(t);if(a){const l=!o||o==Hx;a.forEach(c=>{c.queued||!l&&c.triggerName!=r||s.push(c)})}}return(i||r)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),s}_beforeAnimationBuild(t,e,i){const o=e.element,s=e.isRemovalTransition?void 0:t,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,d=c!==o,u=hc(i,c,[]);this._getPreviousPlayers(c,d,s,a,e.toState).forEach(f=>{const A=f.getRealPlayer();A.beforeDestroy&&A.beforeDestroy(),f.destroy(),u.push(f)})}dg(o,e.fromStyles)}_buildAnimation(t,e,i,r,o,s){const a=e.triggerName,l=e.element,c=[],d=new Set,u=new Set,h=e.timelines.map(A=>{const y=A.element;d.add(y);const _=y[Dd];if(_&&_.removedBeforeQueried)return new j1(A.duration,A.delay);const b=y!==l,M=function qze(n){const t=[];return Die(n,t),t}((i.get(y)||Oze).map(H=>H.getRealPlayer())).filter(H=>!!H.element&&H.element===y),C=o.get(y),E=s.get(y),L=lie(this._normalizer,A.keyframes,C,E),N=this._buildPlayer(A,L,M);if(A.subTimeline&&r&&u.add(y),b){const H=new s8(t,a,y);H.setRealPlayer(N),c.push(H)}return N});c.forEach(A=>{hc(this.playersByQueriedElement,A.element,[]).push(A),A.onDone(()=>function Hze(n,t,e){let i=n.get(t);if(i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,A.element,A))}),d.forEach(A=>zc(A,mie));const f=tp(h);return f.onDestroy(()=>{d.forEach(A=>qb(A,mie)),Pu(l,e.toStyles)}),u.forEach(A=>{hc(r,A,[]).push(f)}),f}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new j1(t.duration,t.delay)}}class s8{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new j1,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>NU(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){hc(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function vF(n){return n&&1===n.nodeType}function Tie(n,t){const e=n.style.display;return n.style.display=t??"none",e}function Iie(n,t,e,i,r){const o=[];e.forEach(l=>o.push(Tie(l)));const s=[];i.forEach((l,c)=>{const d=new Map;l.forEach(u=>{const h=t.computeStyle(c,u,r);d.set(u,h),(!h||0==h.length)&&(c[Dd]=Lze,s.push(c))}),n.set(c,d)});let a=0;return e.forEach(l=>Tie(l,o[a++])),s}function Fie(n,t){const e=new Map;if(n.forEach(a=>e.set(a,[])),0==t.length)return e;const r=new Set(t),o=new Map;function s(a){if(!a)return 1;let l=o.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:r.has(c)?1:s(c),o.set(a,l),l}return t.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function zc(n,t){n.classList?.add(t)}function qb(n,t){n.classList?.remove(t)}function zze(n,t,e){tp(e).onDone(()=>n.processLeaveNode(t))}function Die(n,t){for(let e=0;er.add(o)):t.set(n,i),e.delete(n),!0}class Vx{constructor(t,e,i,r){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new Uze(t.body,e,i,r),this._timelineEngine=new Dze(t.body,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(t,e,i,r,o){const s=t+"-"+r;let a=this._triggerCache[s];if(!a){const l=[],d=YU(this._driver,o,l,[]);if(l.length)throw function PQe(n,t){return new ct(3404,!1)}();a=function Sze(n,t,e){return new Tze(n,t,e)}(r,d,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,r,a)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[o,s]=cie(i);this._timelineEngine.command(o,e,s,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,o){if("@"==i.charAt(0)){const[s,a]=cie(i);return this._timelineEngine.listen(s,e,a,o)}return this._transitionEngine.listen(t,e,i,r,o)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}}class Qx{static{this.initialStylesByElement=new WeakMap}constructor(t,e,i){this._element=t,this._startStyles=e,this._endStyles=i,this._state=0;let r=Qx.initialStylesByElement.get(t);r||Qx.initialStylesByElement.set(t,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Pu(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Pu(this._element,this._initialStyles),this._endStyles&&(Pu(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Qx.initialStylesByElement.delete(this._element),this._startStyles&&(dg(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(dg(this._element,this._endStyles),this._endStyles=null),Pu(this._element,this._initialStyles),this._state=3)}}const Rie="@.disabled";class Oie{constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==Rie?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class jze extends Oie{constructor(t,e,i,r,o){super(e,i,r,o),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==Rie?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function Xze(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let o=e.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function Kze(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(o)),this.engine.listen(this.namespaceId,r,o,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(t,e,i)}}class Yze{constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(r,o)=>{const s=o?.parentNode(r);s&&o.removeChild(s,r)}}createRenderer(t,e){const r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){const c=this._rendererCache;let d=c.get(r);return d||(d=new Oie("",r,this.engine,()=>c.delete(r)),c.set(r,d)),d}const o=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,t);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(o,s,t,c.name,c)};return e.data.animation.forEach(a),new jze(this,s,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(o=>{const[s,a]=o;s(a)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const Nie=[{provide:zU,useClass:QU},{provide:_s,useValue:"NoopAnimations"},...[{provide:qU,useFactory:function Jze(){return new gie}},{provide:Vx,useClass:(()=>{class n extends Vx{constructor(e,i,r){super(e,i,r,Qt(wM,{optional:!0}))}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(zU),ve(qU))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})()},{provide:U3,useFactory:function eqe(n,t,e){return new Yze(n,t,e)},deps:[yB,Vx,In]}]];let l8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:Nie,imports:[Ez]})}}return n})();const Uie=["*"],Vie=["unscopedContent"],nqe=["text"],iqe=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],rqe=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"],Qie=new dt("ListOption");let zie=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"],standalone:!0})}}return n})(),qie=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"],standalone:!0})}}return n})(),wqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"],standalone:!0})}}return n})(),Gie=(()=>{class n{constructor(e){this._listOption=e}_isAlignedAtStart(){return!this._listOption||"after"===this._listOption?._getTogglePosition()}static{this.\u0275fac=function(i){return new(i||n)($(Qie,8))}}static{this.\u0275dir=Wt({type:n,hostVars:4,hostBindings:function(i,r){2&i&&Un("mdc-list-item__start",r._isAlignedAtStart())("mdc-list-item__end",!r._isAlignedAtStart())},standalone:!0})}}return n})(),xqe=(()=>{class n extends Gie{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],standalone:!0,features:[yi]})}}return n})(),Cqe=(()=>{class n extends Gie{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],standalone:!0,features:[yi]})}}return n})();const Mqe=new dt("MAT_LIST_CONFIG");let Gb=(()=>{class n{constructor(){this._isNonInteractive=!0,this._disableRipple=!1,this._disabled=!1,this._defaultOptions=Qt(Mqe,{optional:!0})}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=sa(e)}get disabled(){return this._disabled}set disabled(e){this._disabled=sa(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,hostVars:1,hostBindings:function(i,r){2&i&&pi("aria-disabled",r.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),c8=(()=>{class n{set lines(e){this._explicitLines=cm(e,null),this._updateItemLines(!1)}get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=sa(e)}get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=sa(e)}get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(e,i,r,o,s,a){this._elementRef=e,this._ngZone=i,this._listBase=r,this._platform=o,this._explicitLines=null,this._disableRipple=!1,this._disabled=!1,this._subscriptions=new Xn,this._rippleRenderer=null,this._hasUnscopedTextContent=!1,this.rippleConfig=s||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement="button"===this._hostElement.nodeName.toLowerCase(),this._noopAnimations="NoopAnimations"===a,r&&!r._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),null!==this._rippleRenderer&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!(!this._avatars.length&&!this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new $1(this,this._ngZone,this._hostElement,this._platform),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Yl(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(e){if(!this._lines||!this._titles||!this._unscopedContent)return;e&&this._checkDomForUnscopedTextContent();const i=this._explicitLines??this._inferLinesFromContent(),r=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",2===i),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",3===i),this._hasUnscopedTextContent){const o=0===this._titles.length&&1===i;r.classList.toggle("mdc-list-item__primary-text",o),r.classList.toggle("mdc-list-item__secondary-text",!o)}else r.classList.remove("mdc-list-item__primary-text"),r.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let e=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(e+=1),e}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(e=>e.nodeType!==e.COMMENT_NODE).some(e=>!(!e.textContent||!e.textContent.trim()))}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(Gb,8),$(ro),$(d_,8),$(_s,8))}}static{this.\u0275dir=Wt({type:n,contentQueries:function(i,r,o){if(1&i&&(Gr(o,xqe,4),Gr(o,Cqe,4)),2&i){let s;an(s=ln())&&(r._avatars=s),an(s=ln())&&(r._icons=s)}},hostVars:4,hostBindings:function(i,r){2&i&&(pi("aria-disabled",r.disabled)("disabled",r._isButtonElement&&r.disabled||null),Un("mdc-list-item--disabled",r.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),Wie=(()=>{class n extends Gb{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275cmp=bt({type:n,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],standalone:!0,features:[ui([{provide:Gb,useExisting:n}]),yi,Nr],ngContentSelectors:Uie,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:['@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:"";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size)}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space)}a.mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color)}a.mdc-list-item.mdc-list-item--activated.mdc-list-item{border-radius:var(--mat-list-active-indicator-shape)}'],encapsulation:2,changeDetection:0})}}return n})(),$ie=(()=>{class n extends c8{get activated(){return this._activated}set activated(e){this._activated=sa(e)}constructor(e,i,r,o,s,a){super(e,i,r,o,s,a),this._activated=!1}_getAriaCurrent(){return"A"===this._hostElement.nodeName&&this._activated?"page":null}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(Gb,8),$(ro),$(d_,8),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,qie,5),Gr(o,zie,5),Gr(o,wqe,5)),2&i){let s;an(s=ln())&&(r._lines=s),an(s=ln())&&(r._titles=s),an(s=ln())&&(r._meta=s)}},viewQuery:function(i,r){if(1&i&&(ti(Vie,5),ti(nqe,5)),2&i){let o;an(o=ln())&&(r._unscopedContent=o.first),an(o=ln())&&(r._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:11,hostBindings:function(i,r){2&i&&(pi("aria-current",r._getAriaCurrent()),Un("mdc-list-item--activated",r.activated)("mdc-list-item--with-leading-avatar",0!==r._avatars.length)("mdc-list-item--with-leading-icon",0!==r._icons.length)("mdc-list-item--with-trailing-meta",0!==r._meta.length)("_mat-animation-noopable",r._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],standalone:!0,features:[yi,Nr],ngContentSelectors:rqe,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-mdc-focus-indicator"]],template:function(i,r){if(1&i){const o=Dn();Yr(iqe),Vn(0),D(1,"span",1),Vn(2,1),Vn(3,2),D(4,"span",2,0),ze("cdkObserveContent",function(){return Ot(o),Rt(r._updateItemLines(!0))}),Vn(6,3),U()(),Vn(7,4),Vn(8,5),xe(9,"div",3)}},dependencies:[KW],encapsulation:2,changeDetection:0})}}return n})(),Xie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[MR,mn,fr,u_,M$,kN]})}}return n})(),Fqe=0;const d8=new dt("CdkAccordion");let Dqe=(()=>{class n{constructor(){this._stateChanges=new Ln,this._openCloseAllActions=new Ln,this.id="cdk-accordion-"+Fqe++,this.multi=!1}openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[Ct.HasDecoratorInputTransform,"multi","multi",Jn]},exportAs:["cdkAccordion"],standalone:!0,features:[ui([{provide:d8,useExisting:n}]),rs,xr]})}}return n})(),kqe=0,Bqe=(()=>{class n{get expanded(){return this._expanded}set expanded(e){this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}constructor(e,i,r){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=r,this._openCloseAllSubscription=Xn.EMPTY,this.closed=new Fn,this.opened=new Fn,this.destroyed=new Fn,this.expandedChange=new Fn,this.id="cdk-accordion-child-"+kqe++,this._expanded=!1,this.disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=r.listen((o,s)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===s&&this.id!==o&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static{this.\u0275fac=function(i){return new(i||n)($(d8,12),$(vo),$(jZ))}}static{this.\u0275dir=Wt({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[Ct.HasDecoratorInputTransform,"expanded","expanded",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],standalone:!0,features:[ui([{provide:d8,useValue:void 0}]),rs]})}}return n})(),Pqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();const Rqe=["body"],Oqe=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],Lqe=["mat-expansion-panel-header","*","mat-action-row"];function Nqe(n,t){}const Uqe=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Hqe=["mat-panel-title","mat-panel-description","*"];function Vqe(n,t){1&n&&(D(0,"span",1),Ul(),D(1,"svg",2),xe(2,"path",3),U()()),2&n&&_e("@indicatorRotate",Le()._getExpandedState())}const u8=new dt("MAT_ACCORDION"),Kie="225ms cubic-bezier(0.4,0.0,0.2,1)",Yie={indicatorRotate:Dh("indicatorRotate",[Dc("collapsed, void",jo({transform:"rotate(0deg)"})),Dc("expanded",jo({transform:"rotate(180deg)"})),Zl("expanded <=> collapsed, void => collapsed",Fc(Kie))]),bodyExpansion:Dh("bodyExpansion",[Dc("collapsed, void",jo({height:"0px",visibility:"hidden"})),Dc("expanded",jo({height:"*",visibility:""})),Zl("expanded <=> collapsed, void => collapsed",Fc(Kie))])},Zie=new dt("MAT_EXPANSION_PANEL");let Qqe=(()=>{class n{constructor(e,i){this._template=e,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||n)($(jl),$(Zie,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["ng-template","matExpansionPanelContent",""]],standalone:!0})}}return n})(),zqe=0;const Jie=new dt("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let ere=(()=>{class n extends Bqe{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,r,o,s,a,l){super(e,i,r),this._viewContainerRef=o,this._animationMode=a,this._hideToggle=!1,this.afterExpand=new Fn,this.afterCollapse=new Fn,this._inputChanges=new Ln,this._headerId="mat-expansion-panel-header-"+zqe++,this.accordion=e,this._document=s,this._animationsDisabled="NoopAnimations"===a,l&&(this.hideToggle=l.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(gd(null),qi(()=>this.expanded&&!this._portal),$o(1)).subscribe(()=>{this._portal=new V1(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}_animationStarted(e){!tre(e)&&!this._animationsDisabled&&this._body&&this._body?.nativeElement.setAttribute("inert","")}_animationDone(e){tre(e)||("expanded"===e.toState?this.afterExpand.emit():"collapsed"===e.toState&&this.afterCollapse.emit(),!this._animationsDisabled&&this._body&&this._body.nativeElement.removeAttribute("inert"))}static{this.\u0275fac=function(i){return new(i||n)($(u8,12),$(vo),$(jZ),$(oa),$(Li),$(_s,8),$(Jie,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,Qqe,5),2&i){let s;an(s=ln())&&(r._lazyContent=s.first)}},viewQuery:function(i,r){if(1&i&&ti(Rqe,5),2&i){let o;an(o=ln())&&(r._body=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,r){2&i&&Un("mat-expanded",r.expanded)("_mat-animation-noopable",r._animationsDisabled)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[Ct.HasDecoratorInputTransform,"hideToggle","hideToggle",Jn],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],standalone:!0,features:[ui([{provide:u8,useValue:void 0},{provide:Zie,useExisting:n}]),rs,yi,xr,Nr],ngContentSelectors:Lqe,decls:7,vars:4,consts:[["body",""],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,r){if(1&i){const o=Dn();Yr(Oqe),Vn(0),D(1,"div",1,0),ze("@bodyExpansion.start",function(a){return Ot(o),Rt(r._animationStarted(a))})("@bodyExpansion.done",function(a){return Ot(o),Rt(r._animationDone(a))}),D(3,"div",2),Vn(4,1),pt(5,Nqe,0,0,"ng-template",3),U(),Vn(6,2),U()}2&i&&(Q(),_e("@bodyExpansion",r._getExpandedState())("id",r.id),pi("aria-labelledby",r._headerId),Q(4),_e("cdkPortalOutlet",r._portal))},dependencies:[C2],styles:['.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[Yie.bodyExpansion]},changeDetection:0})}}return n})();function tre(n){return"void"===n.fromState}let nre=(()=>{class n{constructor(e,i,r,o,s,a,l){this.panel=e,this._element=i,this._focusMonitor=r,this._changeDetectorRef=o,this._animationMode=a,this._parentChangeSubscription=Xn.EMPTY,this.tabIndex=0;const c=e.accordion?e.accordion._stateChanges.pipe(qi(d=>!(!d.hideToggle&&!d.togglePosition))):K0;this.tabIndex=parseInt(l||"")||0,this._parentChangeSubscription=Yl(e.opened,e.closed,c,e._inputChanges.pipe(qi(d=>!!(d.hideToggle||d.disabled||d.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(qi(()=>e._containsFocus())).subscribe(()=>r.focusVia(i,"program")),s&&(this.expandedHeight=s.expandedHeight,this.collapsedHeight=s.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:Ad(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static{this.\u0275fac=function(i){return new(i||n)($(ere,1),$(Nn),$(Th),$(vo),$(Jie,8),$(_s,8),zl("tabindex"))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,r){1&i&&ze("click",function(){return r._toggle()})("keydown",function(s){return r._keydown(s)}),2&i&&(pi("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),zi("height",r._getHeaderHeight()),Un("mat-expanded",r._isExpanded())("mat-expansion-toggle-indicator-after","after"===r._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===r._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===r._animationMode))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ba(e)]},standalone:!0,features:[rs,Nr],ngContentSelectors:Hqe,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,r){1&i&&(Yr(Uqe),D(0,"span",0),Vn(1),Vn(2,1),Vn(3,2),U(),pt(4,Vqe,3,1,"span",1)),2&i&&(Un("mat-content-hide-toggle",!r._showToggle()),Q(4),Tt(4,r._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color);display:inline-block;display:var(--mat-expansion-legacy-header-indicator-display, inline-block)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color);display:none;display:var(--mat-expansion-header-indicator-display, none)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[Yie.indicatorRotate]},changeDetection:0})}}return n})(),qqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"],standalone:!0})}}return n})(),Gqe=(()=>{class n extends Dqe{constructor(){super(...arguments),this._ownHeaders=new sh,this.hideToggle=!1,this.displayMode="default",this.togglePosition="after"}ngAfterContentInit(){this._headers.changes.pipe(gd(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new IR(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["mat-accordion"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,nre,5),2&i){let s;an(s=ln())&&(r._headers=s)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mat-accordion-multi",r.multi)},inputs:{hideToggle:[Ct.HasDecoratorInputTransform,"hideToggle","hideToggle",Jn],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],standalone:!0,features:[ui([{provide:u8,useExisting:n}]),rs,yi]})}}return n})(),ire=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,Pqe,Q1]})}}return n})();const Wqe=[eee,_N,$R,kN,$Z,pA,vJ,JZ,pA,fee,RJ,cx,FN,nie,Xie,ire,GN,UJ,l8,ud];let Wi=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[l8,Wqe,eee,_N,$R,kN,$Z,pA,vJ,JZ,pA,fee,RJ,cx,FN,nie,Xie,ire,GN,UJ,l8,ud]})}}return n})(),$qe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),jqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),rre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),h8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),Xqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,$qe,jqe,rre,h8]})}}return n})(),Kqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,hQe,Xqe]})}}return n})(),ore=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),sre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),Yqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,ore,sre]})}}return n})(),zx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[uI],imports:[mn,Wi,ud,h8,Yqe]})}}return n})(),Zqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),Jqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Zqe]})}}return n})(),are=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,gBe,Wi]})}}return n})(),f8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,are]})}}return n})(),eGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,f8]})}}return n})(),m8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,f8]})}}return n})(),tGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,eGe,m8,h8]})}}return n})(),nGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),iGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),rGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),oGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),sGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),aGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx,ore,sre]})}}return n})(),lGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,ud,l1,Wi]})}}return n})(),Wb=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),cGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[MN],imports:[mn,Wi,lGe,Wb]})}}return n})(),qx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),wF=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,mn]})}}return n})(),dGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,qx,wF,Wi,m8]})}}return n})(),AGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})(),hre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),fg=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),gGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,pA,mn,_N,AGe,$R,pA,fg,hre,Wb]})}}return n})(),_Ge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,pA,gGe,Wb]})}}return n})(),bGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,wF,qx]})}}return n})(),vGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),yGe=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-confirmation-dialog"]],decls:10,vars:4,consts:[[1,"confirmation-message"],["mat-dialog-title",""],["mat-dialog-content",""],["mat-dialog-actions",""],["mat-button","",3,"mat-dialog-close"],["mat-button","","cdkFocusInitial","",1,"submit-button",3,"mat-dialog-close"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"h1",1),ye(2),U(),D(3,"div",2),ye(4),U()(),D(5,"div",3)(6,"button",4),ye(7,"CANCEL"),U(),D(8,"button",5),ye(9,"OK"),U()()),2&i&&(Q(2),br(r.data.title),Q(2),br(r.data.message),Q(2),_e("mat-dialog-close",!1),Q(2),_e("mat-dialog-close",!0))},dependencies:[cs,Jl,H2,kc,ec],encapsulation:2})}}return n})();function MGe(n,t){if(1&n){const e=Dn();D(0,"span",0),ye(1,"Do you want to download and then purge old unused Configs to make space for new ones?"),U(),D(2,"button",1),ze("click",function(){return Ot(e),Rt(Le().showPurgeConfirmDialog())}),ye(3," DOWNLOAD & PURGE... "),U()}}let EGe=(()=>{class n{constructor(e){this.dialog=e,this.isLocalStorageSizeValid=!0}ngOnInit(){this.isLocalStorageSizeValid=(()=>{let t="";for(const[i,r]of Object.entries(localStorage))t+=i+r;return 3+16*t.length/8/1024<=768})()}showPurgeConfirmDialog(){const e=function CGe(){const n=new Set,t=Yi.getCustomConfigs(),e=new Map;for(const[r,o]of t.entries())void 0===o?.creationTime&&(o.creationTime=Date.now()),(Date.now()-o.creationTime)/2592e6>=6&&(e.set(r,Yi.createExportCustomConfigFromConfig(o)),n.add(o));return e.size>0&&Yi.downloadCustomConfigs(e),n}();0!==e.size?this.dialog.open(yGe,{panelClass:"cc-confirmation-dialog",data:{title:"Confirm to purge old Configs",message:"Are you sure to delete old Configs now?"}}).afterClosed().subscribe(r=>{r&&Yi.deleteCustomConfigs([...e])}):this.dialog.open(AA,{data:{title:"Download Error",message:"Could not download and purge old configs automatically! Please try it by yourself."}})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-download-and-purge-configs"]],decls:1,vars:1,consts:[[1,"exceed-local-storage-message"],["mat-flat-button","","title","Download old unused Custom Views as a backup file and then delete them in the browser.",1,"exceed-local-storage-button",3,"click"]],template:function(i,r){1&i&&pt(0,MGe,4,0),2&i&&Tt(0,r.isLocalStorageSizeValid?-1:0)},dependencies:[cs],styles:["[_nghost-%COMP%]{text-align:right;display:flex;flex-wrap:wrap;justify-content:center}.exceed-local-storage-message[_ngcontent-%COMP%]{display:block;text-align:left;padding:0 16px;color:#b02929}.exceed-local-storage-button[_ngcontent-%COMP%]{color:#fff;background-color:#b02929}.exceed-local-storage-button[_ngcontent-%COMP%]:hover{background-color:#8c1f1f}"]})}}return n})(),fre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,l1,ud,mn,PR]})}}return n})(),SGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,l1,ud,mn,fre,Wb]})}}return n})();GM(RN,[Md,Cd,SN,CJ,cs,Jl,kc,ec,zm,qm,LJ,im,$0,LE,X0,OE,EGe],[]);let TGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[PN]})}}return n})(),IGe=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-note-dialog"]],decls:11,vars:2,consts:[[1,"cc-custom-config-note-dialog-container"],["mat-dialog-content","",1,"cc-note-input-container"],["appearance","fill",1,"note-input"],["matInput","","cdkAutosizeMinRows","10","cdkTextareaAutosize","",3,"ngModelChange","ngModel"],["mat-dialog-actions","",1,"cc-note-dialog-action-buttons"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"div",1)(2,"mat-form-field",2)(3,"mat-label"),ye(4,"Custom Note"),U(),D(5,"textarea",3),ld("ngModelChange",function(s){return eu(r.data,s)||(r.data=s),s}),U()()(),D(6,"div",4)(7,"button",5),ye(8,"Cancel"),U(),D(9,"button",5),ye(10,"Ok"),U()()()),2&i&&(Q(5),ad("ngModel",r.data),Q(4),_e("mat-dialog-close",r.data))},dependencies:[Md,Cd,cs,Jl,kc,ec,qm,LJ,im,$0,X0],styles:["[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%]{padding:20px 24px}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-input-container[_ngcontent-%COMP%]{padding:0}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-input-container[_ngcontent-%COMP%] .note-input[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-dialog-action-buttons[_ngcontent-%COMP%]{justify-content:flex-end;padding:0}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:12px;margin:0 0 0 10px;color:#1b9cfc;background-color:#8a848414}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc}"]})}}return n})(),FGe=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.customConfigNote=this.customConfigItem.note,this.dialog.open(IGe,{width:"600px",data:this.customConfigNote}).afterClosed().subscribe(i=>{void 0!==i&&this.customConfigNote!==i&&(this.customConfigNote=i,Yi.editCustomConfigNote(this.customConfigItem.id,i))})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-note-dialog-button"]],inputs:{customConfigItem:"customConfigItem"},decls:2,vars:0,consts:[["title","Edit/View Note",1,"custom-config-note-dialog-button",3,"click"],[1,"fa","fa-pencil"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.openDialog()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{font-size:16px;padding:8px 10px;margin:0;background-color:transparent}button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}"]})}}return n})();function mre(n,t){const{mapSelectionMode:e,assignedMaps:i}=dx(t),r=[];for(const o of n.assignedMaps.keys())i.has(o)||r.push(n.assignedMaps.get(o));return{mapSelectionMode:n.mapSelectionMode!==e?n.mapSelectionMode:"",mapNames:r}}let DGe=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=mre(e,this.state.getValue());return r.length>0||i.length>0?"rgb(204, 204, 204)":"rgba(0, 0, 0, 0.87)"}static{this.\u0275fac=function(i){return new(i||n)($(Zr,16))}}static{this.\u0275pipe=ur({name:"customConfig2ApplicableColor",type:n,pure:!0})}}return n})(),kGe=(()=>{class n{transform(e){const{mapColors:i,mapSelectionMode:r}=e;return r===aI.MULTIPLE?[i.positive,i.neutral,i.negative,i.selected]:[i.positiveDelta,i.negativeDelta,i.selected]}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"customConfigColorSchemaBySelectionMode",type:n,pure:!0})}}return n})();function BGe(n,t){if(1&n&&(D(0,"p",2),xe(1,"i",8),ye(2),U()),2&n){const e=Le();Q(2),sn(" ",e.customConfigItem.metrics.edgeMetric,"")}}function PGe(n,t){if(1&n&&(D(0,"div",7),xe(1,"span",9),U()),2&n){const e=t.$implicit,i=Le();Q(),zi("background-color",i.customConfigItem.isApplicable?e:"rgb(204, 204, 204)")}}let RGe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o}applyCustomConfig(){Yi.applyCustomConfig(this.customConfigItem.id,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Mu),$(cc),$(Ki))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-apply-custom-config-button"]],inputs:{customConfigItem:"customConfigItem"},decls:17,vars:12,consts:[["mat-dialog-close","",3,"click","disabled","title"],[1,"config-metric-list"],[1,"config-metric"],[1,"fa","fa-arrows-alt"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],[1,"color-schema-container"],[1,"color-swatch-container"],[1,"fa","fa-exchange"],[1,"color-swatch"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"customConfig2ApplicableColor"),ze("click",function(){return r.applyCustomConfig()}),D(2,"div",1)(3,"p",2),xe(4,"i",3),ye(5),U(),D(6,"p",2),xe(7,"i",4),ye(8),U(),D(9,"p",2),xe(10,"i",5),ye(11),U(),pt(12,BGe,3,1,"p",2),D(13,"div",6),Or(14,PGe,2,2,"div",7,qr),qe(16,"customConfigColorSchemaBySelectionMode"),U()()()),2&i&&(zi("color",rt(1,8,r.customConfigItem)),Ua("title",r.customConfigItem.name),_e("disabled",!r.customConfigItem.isApplicable),Q(5),sn(" ",r.customConfigItem.metrics.areaMetric,""),Q(3),sn(" ",r.customConfigItem.metrics.heightMetric,""),Q(3),sn(" ",r.customConfigItem.metrics.colorMetric,""),Q(),Tt(12,r.customConfigItem.metrics.edgeMetric?12:-1),Q(2),Lr(rt(16,10,r.customConfigItem)))},dependencies:[Jl,DGe,kGe],styles:["[_nghost-%COMP%]{display:flex;flex:1}[_nghost-%COMP%] button[_ngcontent-%COMP%]{flex-direction:row;width:100%;margin:0;background-color:transparent}[_nghost-%COMP%] button[_ngcontent-%COMP%]:disabled{cursor:default}[_nghost-%COMP%] button[_ngcontent-%COMP%] .config-metric-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:10px}[_nghost-%COMP%] button[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:15px;margin:0;text-align:left}[_nghost-%COMP%] button[_ngcontent-%COMP%] p.config-name[_ngcontent-%COMP%]{flex:1 1 auto;width:100%}[_nghost-%COMP%] button[_ngcontent-%COMP%] p.config-metric[_ngcontent-%COMP%]{flex:0 0 9em}[_nghost-%COMP%] button[_ngcontent-%COMP%] .color-schema-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2px}[_nghost-%COMP%] button[_ngcontent-%COMP%] .color-schema-container[_ngcontent-%COMP%] .color-swatch-container[_ngcontent-%COMP%] .color-swatch[_ngcontent-%COMP%]{display:inline-block;width:16px;height:16px}"]})}}return n})(),OGe=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=mre(e,this.state.getValue());return r.length>0&&i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode and select the following map(s): ${r.join(", ")}.`:r.length>0?`To fulfill your view, please select the following map(s): ${r.join(", ")}.`:i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode.`:"Apply Custom View"}static{this.\u0275fac=function(i){return new(i||n)($(Zr,16))}}static{this.\u0275pipe=ur({name:"customConfig2ApplicableMessage",type:n,pure:!0})}}return n})(),LGe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase().trimEnd();return e.filter(o=>this.isItemMatchingSearchTerm(o,r))}isItemMatchingSearchTerm(e,i){const r=e.name.toLocaleLowerCase().includes(i),o=e.mapSelectionMode.toLocaleLowerCase().includes(i),s=Object.values(e.metrics).some(a=>a?.toLocaleLowerCase().includes(i));return r||o||s}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"filterCustomConfigDataBySearchTerm",type:n,pure:!0})}}return n})();const NGe=["matExpansionPanel"];function UGe(n,t){if(1&n){const e=Dn();D(0,"mat-list-item",5),qe(1,"customConfig2ApplicableMessage"),D(2,"div",6)(3,"p",7)(4,"strong")(5,"span",8),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(4).applyCustomConfig(r.id))}),ye(6),qe(7,"truncateText"),U()()()(),D(8,"div",9)(9,"p",10)(10,"span",8),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(4).applyCustomConfig(r.id))}),ye(11),qe(12,"truncateText"),U()(),xe(13,"cc-custom-config-note-dialog-button",11),U(),D(14,"div",12),xe(15,"cc-apply-custom-config-button",11),D(16,"button",13),ze("click",function(){const r=Ot(e).$implicit,o=Le(3).$implicit;return Rt(Le().removeCustomConfig(r.id,o.key))}),xe(17,"i",14),U()()()}if(2&n){const e=t.$implicit;Ua("title",rt(1,6,e)),Q(3),Ua("title",e.name),Q(3),sn(" ",Io(7,8,e.name,75)," "),Q(5),sn(" ",e.note?Io(12,11,e.note,95):"Add Note"," "),Q(2),_e("customConfigItem",e),Q(2),_e("customConfigItem",e)}}function HGe(n,t){if(1&n&&(D(0,"mat-list"),Or(1,UGe,18,14,"mat-list-item",5,qr),U()),2&n){const e=Le();Q(),Lr(e)}}function VGe(n,t){1&n&&(D(0,"div",4)(1,"p"),ye(2,"No configurations found."),U()())}function QGe(n,t){if(1&n&&pt(0,HGe,3,0,"mat-list")(1,VGe,3,0,"div",4),2&n){const e=t;Tt(0,e.length>0?0:-1),Q(),Tt(1,0===e.length?1:-1)}}function zGe(n,t){if(1&n){const e=Dn();D(0,"mat-expansion-panel",1,0)(2,"mat-expansion-panel-header",2),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le().toggleGroupExpansion(r.key))}),D(3,"mat-panel-title",3),ye(4," Custom View(s) in "),D(5,"strong"),ye(6),qe(7,"titlecase"),U(),ye(8),U()(),pt(9,QGe,2,2),qe(10,"filterCustomConfigDataBySearchTerm"),U()}if(2&n){let e;const i=t.$implicit,r=Le();_e("expanded",r.isGroupExpanded(i.key)||r.searchTerm.length>0),Q(6),sn(" ",rt(7,4,i.value.mapSelectionMode)," "),Q(2),sn(" mode for ",i.value.mapNames," "),Q(),Tt(9,(e=Io(10,6,i.value.customConfigItems,r.searchTerm))?9:-1,e)}}let qGe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o,this.searchTerm="",this.expandedStates={},this.manuallyToggled=new Set}ngOnChanges(e){if(e.searchTerm)if(e.searchTerm.currentValue.length>0)for(const i of Object.keys(this.expandedStates))this.expandedStates[i]=!0;else for(const i of Object.keys(this.expandedStates))this.manuallyToggled.has(i)||(this.expandedStates[i]=!1)}isGroupExpanded(e){return this.searchTerm.length>0?!this.manuallyToggled.has(e)||this.expandedStates[e]:this.expandedStates[e]||!1}toggleGroupExpansion(e){this.expandedStates[e]=!this.isGroupExpanded(e),this.manuallyToggled.add(e)}removeCustomConfig(e,i){Yi.deleteCustomConfig(e),this.expandedStates[i]=!0}applyCustomConfig(e){Yi.applyCustomConfig(e,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Mu),$(cc),$(Ki))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-item-group"]],viewQuery:function(i,r){if(1&i&&ti(NGe,5),2&i){let o;an(o=ln())&&(r.matExpansionPanel=o.first)}},inputs:{customConfigItemGroups:"customConfigItemGroups",searchTerm:"searchTerm"},features:[xr],decls:3,vars:2,consts:[["matExpansionPanel",""],[1,"custom-config-item-group",3,"expanded"],[3,"click"],[1,"custom-config-item-group-title"],[1,"no-configs-found-message"],[3,"title"],[1,"metrics-box"],[1,"config-item-name",3,"title"],["mat-dialog-close","",3,"click"],[1,"custom-config-note"],[1,"custom-config-note-content"],[3,"customConfigItem"],[1,"custom-config-action-buttons"],["title","Remove Custom View",1,"remove-button",3,"click"],[1,"fa","fa-trash"]],template:function(i,r){1&i&&(Or(0,zGe,11,9,"mat-expansion-panel",1,qr),qe(2,"keyvalue")),2&i&&Lr(rt(2,0,r.customConfigItemGroups))},dependencies:[Jl,Wie,$ie,ere,nre,qqe,FGe,RGe,tz,_E,jJ,OGe,LGe],styles:[".custom-config-item-group-title[_ngcontent-%COMP%]{color:#000000de;display:inline-block}.metrics-box[_ngcontent-%COMP%]{margin-top:10px}.custom-config-note[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.custom-config-action-buttons[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:5px}p[_ngcontent-%COMP%]{font-size:15px;margin:0;white-space:pre-line}p.custom-config-note-content[_ngcontent-%COMP%]{margin-right:7px;font-size:13px}button[_ngcontent-%COMP%]{background-color:transparent}button.remove-button[_ngcontent-%COMP%]{font-size:16px;padding:8px 10px;margin:0}button.remove-button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}"]})}}return n})(),GGe=(()=>{class n{upload(){const e=Kte();e.addEventListener("change",()=>{this.uploadOnEvent(e)}),e.click()}uploadOnEvent(e){return k(function*(){const i=yield Promise.all(ene(e.files));for(const r of i)try{Yi.importCustomConfigs(r)}catch{}})()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-upload-custom-config-button"]],decls:2,vars:0,consts:[["title","Upload Custom View (.cc.config.json file).",1,"action-button",3,"click"],[1,"fa","fa-folder-open"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.upload()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),WGe=(()=>{class n{constructor(e){this.dialog=e}showAddCustomConfigDialog(){this.dialog.open(RN,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-add-custom-config-button"]],decls:2,vars:0,consts:[["title","Create new Custom View",3,"click"],[1,"fa","fa-plus"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.showAddCustomConfigDialog()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),KGe=(()=>{class n{constructor(e){this.downloadCustomConfigService=e}ngOnInit(){this.subscription=this.downloadCustomConfigService.downloadableCustomConfigs$.subscribe(e=>{this.downloadableConfigs=e})}ngOnDestroy(){this.subscription.unsubscribe()}downloadPreloadedCustomConfigs(){!function XGe(n){const t={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:n},e=Lm.getNewTimestamp()+".cc.config.json";BN.downloadData(JSON.stringify(t,z2),e)}(this.downloadableConfigs)}static{this.\u0275fac=function(i){return new(i||n)($(PN))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-download-custom-configs-button"]],decls:2,vars:1,consts:[["title","Download Custom View related to currently uploaded maps, if any.",3,"click","disabled"],[1,"fa","fa-download"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.downloadPreloadedCustomConfigs()}),xe(1,"i",1),U()),2&i&&_e("disabled",0===r.downloadableConfigs.size)},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),YGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,mn,fre,vGe,SGe,TGe,ud,hre,Wb]})}}return n})();GM(QJ,[Md,Cd,EJ,ec,zm,qm,Gqe,nu,GGe,WGe,KGe,qGe],[Kn]);let ZGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,wF,qx]})}}return n})(),JGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,FN]})}}return n})(),eWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),tWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,m8,JGe,eWe,qx,Wi]})}}return n})(),nWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wb]})}}return n})();const iWe=Kt(su,n=>0===n.length);let rWe=(()=>{class n{constructor(e){this.hideBlacklistItemsIndicator$=e.select(iWe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-search-panel-mode-selector"]],inputs:{searchPanelMode:"searchPanelMode",updateSearchPanelMode:"updateSearchPanelMode"},decls:4,vars:3,consts:[["id","blacklist","value","blacklist",3,"click"],[1,"fa","fa-eye-slash"],[1,"has-blacklist-items-indicator",3,"hidden"]],template:function(i,r){1&i&&(D(0,"mat-button-toggle",0),ze("click",function(){return r.updateSearchPanelMode("blacklist")}),xe(1,"i",1)(2,"div",2),qe(3,"async"),U()),2&i&&(Q(2),_e("hidden",rt(3,1,r.hideBlacklistItemsIndicator$)))},dependencies:[tx,Kn],styles:["[_nghost-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{height:100%;align-items:center}[_nghost-%COMP%] .has-blacklist-items-indicator[_ngcontent-%COMP%]{position:absolute;margin-left:18px;margin-top:-32px;border-radius:50%;background-color:red;width:5px;height:5px}[_nghost-%COMP%] .mat-button-toggle-checked[_ngcontent-%COMP%] .mat-pseudo-checkbox[_ngcontent-%COMP%]{display:none}"]})}}return n})();const pre=n=>Kt(su,t=>oWe(n,t)),oWe=(n,t)=>{const e=t.filter(i=>i.type===n);return e.sort((i,r)=>i.path.localeCompare(r.path)),e};function sWe(n,t){1&n&&(D(0,"mat-list-item"),ye(1,"Add pattern via search or node context-menu"),U())}function aWe(n,t){if(1&n){const e=Dn();D(0,"mat-list-item",4)(1,"button",5),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(2).removeBlacklistEntry(r))}),xe(2,"em",6),ye(3),U()()}if(2&n){const e=t.$implicit;_e("title",e.path),Q(3),sn(" ",e.path," ")}}function lWe(n,t){if(1&n&&(D(0,"div"),pt(1,sWe,2,0,"mat-list-item"),Or(2,aWe,4,2,"mat-list-item",4,qr),U()),2&n){const e=t;Q(),Tt(1,0===e.length?1:-1),Q(),Lr(e)}}function cWe(n,t){1&n&&(D(0,"mat-list-item"),ye(1,"Add pattern via search or node context-menu"),U())}function dWe(n,t){if(1&n){const e=Dn();D(0,"mat-list-item",4)(1,"button",5),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(2).removeBlacklistEntry(r))}),xe(2,"em",6),ye(3),U()()}if(2&n){const e=t.$implicit;_e("title",e.path),Q(3),sn(" ",e.path," ")}}function uWe(n,t){if(1&n&&(D(0,"div"),pt(1,cWe,2,0,"mat-list-item"),Or(2,dWe,4,2,"mat-list-item",4,qr),U()),2&n){const e=t;Q(),Tt(1,0===e.length?1:-1),Q(),Lr(e)}}let hWe=(()=>{class n{constructor(e){this.store=e,this.flattenedItems$=this.store.select(pre("flatten")),this.excludedItems$=this.store.select(pre("exclude"))}removeBlacklistEntry(e){this.store.dispatch(n2({item:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-blacklist-panel"]],decls:14,vars:6,consts:[[1,"cc-blacklist-panel-list"],[1,"cc-header-text"],["matTooltip","Flattened nodes are shown as flat/short buildings and are included in folder metrics",1,"fa","fa-question-circle-o"],["matTooltip","Excluded buildings are not shown in the map and are not included in folder metrics",1,"fa","fa-question-circle-o"],[3,"title"],["mat-button","",3,"click"],["title","Remove list item",1,"fa","fa-minus-square"]],template:function(i,r){if(1&i&&(D(0,"mat-list",0)(1,"div")(2,"h3",1),ye(3,"Flattened"),U(),xe(4,"em",2),U(),pt(5,lWe,4,1,"div"),qe(6,"async"),U(),D(7,"mat-list",0)(8,"div")(9,"h3",1),ye(10,"Excluded"),U(),xe(11,"em",3),U(),pt(12,uWe,4,1,"div"),qe(13,"async"),U()),2&i){let o,s;Q(5),Tt(5,(o=rt(6,2,r.flattenedItems$))?5:-1,o),Q(7),Tt(12,(s=rt(13,4,r.excludedItems$))?12:-1,s)}},dependencies:[cs,WZ,Wie,$ie,Kn],styles:["[_nghost-%COMP%] .cc-header-text[_ngcontent-%COMP%]{display:inline-block;margin:0 .25em 0 0}"]})}}return n})(),fWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),mWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),pWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),Are=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi]})}}return n})();const A8=Kt(hb,n=>""===n||"!"===n||","===n),MF=n=>(n=n.trim()).startsWith("*")||n.endsWith("*")||n.startsWith("/")||n.startsWith("./")||n.startsWith('"')||n.endsWith('"')||n.startsWith("!")?n:`*${n}*`,gre=(n,t,e)=>{const i=e.trim().split(",");if(e.trim().startsWith("!")){i[0]=i[0].slice(1);for(const r of i){const o=`!${MF(r)}`;if(n.some(s=>o===s.path&&t===s.type))return!0}return!1}for(const r of i)if(n.some(o=>MF(r)===o.path&&t===o.type))return!0;return!1},AWe=Kt(hb,A8,su,(n,t,e)=>!!t||gre(e,"flatten",n)),gWe=Kt(hb,A8,su,(n,t,e)=>!!t||gre(e,"exclude",n)),_We=(n,t)=>{const e=[],i=t.split(",");if(i[0].startsWith("!")){i[0]=i[0].slice(1);for(const r of i)r.length>0&&e.push({path:`!${MF(r)}`,type:n})}else for(let r of i)if(r.length>0){if(r.startsWith("!"))break;r=MF(r),e.push({path:r,type:n})}return e},bWe=(n,t,e)=>{const i=[...t,...e];for(const{file:r}of n)if(!vWe(r,i))return!1;return!0},vWe=(n,t)=>{for(const e of yo(n.map))if(yWe(e,t))return!1;return!0},yWe=(n,t)=>No(n)&&n.data.path&&!Ch(n.data.path,t,"exclude");let _re=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.dialog=r,this.doBlacklistItemsResultInEmptyMap$=this.actions$.pipe(za(HP),hd(this.store.select(au),this.store.select(su)),Qe(([o,s,a])=>({items:o.items,resultsInEmptyMap:bWe(s,a,o.items)})),lx()),this.showErrorDialogIfBlacklistItemsResultInEmptyMap$=Ao(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(qi(o=>o.resultsInEmptyMap),Dr(()=>{this.dialog.open(AA,{data:{title:"Blacklist Error",message:"Excluding all buildings is not possible."}})})),{dispatch:!1}),this.addBlacklistItems$=Ao(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(qi(o=>!o.resultsInEmptyMap),Qe(o=>t2({items:o.items}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t),ve(Ns))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),xWe=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.addBlacklistItemsIfNotResultsInEmptyMapEffect=r,this.searchPattern2BlacklistItems$=this.actions$.pipe(za("BlacklistSearchPatternAction"),hd(this.store.select(hb)),Qe(([o,s])=>({type:o.action.type,blacklistItems:_We(o.action.type,s)})),lx()),this.flattenSearchPattern$=Ao(()=>this.searchPattern2BlacklistItems$.pipe(qi(o=>"flatten"===o.type),Dr(o=>{this.store.dispatch(t2({items:o.blacklistItems})),this.store.dispatch(am({value:""}))})),{dispatch:!1}),this.excludeSearchPattern$=Ao(()=>this.searchPattern2BlacklistItems$.pipe(qi(o=>"exclude"===o.type),Dr(()=>{this.addBlacklistItemsIfNotResultsInEmptyMapEffect.doBlacklistItemsResultInEmptyMap$.pipe($o(1),qi(o=>!o.resultsInEmptyMap),Dr(()=>{this.store.dispatch(am({value:""}))})).subscribe()}),Qe(o=>HP({items:o.blacklistItems}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t),ve(_re))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function CWe(n,t){if(1&n){const e=Dn();D(0,"button",12),ze("click",function(){return Ot(e),Rt(Le().resetSearchPattern())}),xe(1,"i",13),U()}}let MWe=(()=>{class n{constructor(e){this.store=e,this.searchPattern$=this.store.select(hb),this.isSearchPatternEmpty$=this.store.select(A8),this.isFlattenPatternDisabled$=this.store.select(AWe),this.isExcludePatternDisabled$=this.store.select(gWe),this.setSearchPatternDebounced=Eu(i=>this.setSearchPattern(i),400)}setSearchPattern(e){this.store.dispatch(am({value:e.target.value}))}resetSearchPattern(){this.store.dispatch(am({value:""}))}blacklistSearchPattern(e){this.store.dispatch((n=>({type:"BlacklistSearchPatternAction",action:{type:n}}))(e))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-search-bar"]],decls:21,vars:13,consts:[["menu","matMenu"],[1,"fa","fa-search","cc-search-icon"],[1,"cc-search-input"],["type","text","placeholder","Search: *.js, **/app/*",3,"input","value"],["data-testid","search-bar-clear-button",1,"cc-small-action-button","cc-clear-icon"],["title","Add to Blacklist",1,"cc-small-action-button",3,"matMenuTriggerFor"],[1,"fa","fa-ellipsis-h"],["mat-menu-item","","disabled",""],["mat-menu-item","","data-testid","search-bar-flatten-button",3,"click","disabled"],[1,"fa","fa-eye-slash"],["mat-menu-item","","data-testid","search-bar-exclude-button",3,"click","disabled"],[1,"fa","fa-ban"],["data-testid","search-bar-clear-button",1,"cc-small-action-button","cc-clear-icon",3,"click"],[1,"fa","fa-times"]],template:function(i,r){if(1&i){const o=Dn();xe(0,"i",1),D(1,"div",2)(2,"input",3),qe(3,"async"),ze("input",function(a){return Ot(o),Rt(r.setSearchPatternDebounced(a))}),U(),pt(4,CWe,2,0,"button",4),qe(5,"async"),U(),D(6,"button",5),xe(7,"i",6),U(),D(8,"mat-menu",null,0)(10,"button",7),ye(11,"Add Pattern to Blacklist"),U(),xe(12,"mat-divider"),D(13,"button",8),qe(14,"async"),ze("click",function(){return Ot(o),Rt(r.blacklistSearchPattern("flatten"))}),xe(15,"i",9),ye(16," Flatten "),U(),D(17,"button",10),qe(18,"async"),ze("click",function(){return Ot(o),Rt(r.blacklistSearchPattern("exclude"))}),xe(19,"i",11),ye(20," Exclude "),U()()}if(2&i){const o=Lo(9);Q(2),_e("value",rt(3,5,r.searchPattern$)),Q(2),Tt(4,rt(5,7,r.isSearchPatternEmpty$)?-1:4),Q(2),_e("matMenuTriggerFor",o),Q(7),_e("disabled",rt(14,9,r.isFlattenPatternDisabled$)),Q(4),_e("disabled",rt(18,11,r.isExcludePatternDisabled$))}},dependencies:[Su,YT,wb,DN,Kn],styles:["[_nghost-%COMP%]{display:inline-block;text-wrap:nowrap}[_nghost-%COMP%] .cc-search-icon[_ngcontent-%COMP%]{margin-right:8px;min-width:16px}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%]{display:inline-block;position:relative}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:204px;border-width:0 0 1px;border-color:#d3d3d3;outline:0;font-size:11pt;height:24px}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:#0374c9;box-shadow:0 1px #0374c9}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{vertical-align:middle;display:inline-block;position:relative;height:30px}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] .cc-clear-icon[_ngcontent-%COMP%]{position:absolute;right:0;margin:0;height:24px;width:24px;display:flex;justify-content:center;align-items:center;top:0}[_nghost-%COMP%] button[_ngcontent-%COMP%]{background-color:transparent;box-shadow:none;margin-top:2px;font-size:14px}[_nghost-%COMP%] button.cc-small-action-button[_ngcontent-%COMP%]{margin:0 5px;display:inline-block;height:24px;width:24px;vertical-align:top}[_nghost-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#d3d3d3;border-radius:50%}"]})}}return n})();const EF=(n,t,e)=>t.reduce((i,r)=>Ch(r.path,e,n)?i+1:i,0),EWe=Kt(gZ,su,JT,(n,t,e)=>{const i=n.filter(r=>No(r));return{fileCount:`${i.length}/${e.length}`,flattenCount:`${EF("flatten",i,t)}/${EF("flatten",e,t)}`,excludeCount:`${EF("exclude",i,t)}/${EF("exclude",e,t)}`}}),bre=Kt(so,n=>n.sortingOrderAscending);let SWe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.sortingOrderAscending$=this.store.select(bre)}onClick(){this.store.dispatch(XN())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-sorting-button"]],decls:4,vars:7,consts:[[1,"box-rounded",3,"click","title"],[3,"className"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),ze("click",function(){return r.onClick()}),xe(2,"i",1),qe(3,"async"),U()),2&i&&(sd("title","Toggle sort order (currently ",rt(1,3,r.sortingOrderAscending$)?"ascending":"descending",")"),Q(2),_e("className",rt(3,5,r.sortingOrderAscending$)?"fa fa-sort-amount-asc":"fa fa-sort-amount-desc"))},dependencies:[Kn],styles:["button[_ngcontent-%COMP%]{height:25px;background:#e6e6e6;padding:1px 8px}.box-rounded[_ngcontent-%COMP%]{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}"]})}}return n})();const vre=Kt(lc,n=>n.sortingOption);function TWe(n,t){if(1&n&&(D(0,"mat-option",1),ye(1),U()),2&n){const e=t.$implicit;_e("value",e),Q(),sn(" ",e," ")}}let IWe=(()=>{class n{constructor(e){this.store=e,this.sortingOptions=Object.values(Q2),this.selectedSortingOption$=e.select(vre)}handleSelectedSortingOptionChanged(e){this.store.dispatch(e2(e.value))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-sorting-option"]],decls:4,vars:3,consts:[["title","Sort by","panelClass","cc-sorting-option",1,"sorting-option-select",3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(D(0,"mat-select",0),qe(1,"async"),ze("selectionChange",function(s){return r.handleSelectedSortingOptionChanged(s)}),Or(2,TWe,2,2,"mat-option",1,qr),U()),2&i&&(_e("value",rt(1,1,r.selectedSortingOption$)),Q(2),Lr(r.sortingOptions))},dependencies:[Gm,du,Kn],styles:[".sorting-option-select[_ngcontent-%COMP%]{max-width:88px}"]})}}return n})(),FWe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isSearchPanelPinned$=this.store.select(yJ)}onClick(){this.store.dispatch(u5())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-thumb-tack-button"]],decls:3,vars:3,consts:[["title","Pin file explorer",1,"box-rounded",3,"click","ngClass"],[1,"fa","fa-thumb-tack"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),ze("click",function(){return r.onClick()}),xe(2,"i",1),U()),2&i&&_e("ngClass",rt(1,1,r.isSearchPanelPinned$)?"pinned":"")},dependencies:[nu,Kn],styles:[".pinned[_ngcontent-%COMP%]{background-color:#979797}button[_ngcontent-%COMP%]{height:25px;background:#e6e6e6;padding:1px 8px}.box-rounded[_ngcontent-%COMP%]{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}"]})}}return n})();function DWe(n,t){if(1&n&&(D(0,"span",0),ye(1),xe(2,"i",1),U(),D(3,"span",2),ye(4),xe(5,"img",3),U(),D(6,"span",4),ye(7),xe(8,"i",5),U(),D(9,"div",6),xe(10,"cc-thumb-tack-button"),U(),D(11,"div",6),xe(12,"cc-sorting-button")(13,"cc-sorting-option"),U()),2&n){const e=t;Q(),br(e.fileCount),Q(3),br(e.flattenCount),Q(3),br(e.excludeCount)}}let kWe=(()=>{class n{constructor(e){this.matchingFileCounters$=e.select(EWe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-matching-files-counter"]],decls:2,vars:3,consts:[["title","Files matching search pattern",1,"box-rounded","node-count"],[1,"fa","fa-file"],["title","Files flattened",1,"box-rounded","node-count",2,"display","inline-flex"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"fa","png-icon-files-counter"],["title","Files excluded",1,"box-rounded","node-count"],[1,"fa","fa-ban"],[1,"clickable-component"]],template:function(i,r){if(1&i&&(pt(0,DWe,14,3),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.matchingFileCounters$))?0:-1,o)}},dependencies:[SWe,IWe,FWe,Kn],styles:["[_nghost-%COMP%] .node-count[_ngcontent-%COMP%]{background:#eee;color:#000;padding:4px 8px;margin-right:8px}[_nghost-%COMP%] .node-count[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:6px}[_nghost-%COMP%] .box-rounded[_ngcontent-%COMP%]{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}[_nghost-%COMP%] .png-icon-files-counter[_ngcontent-%COMP%]{width:19px;height:16px;margin-left:6px}[_nghost-%COMP%] .clickable-component[_ngcontent-%COMP%]{display:inline-block;color:#000;margin-left:-9px}"]})}}return n})();function hf(n){if("object"!=typeof n)return n;var t,e,i=Object.prototype.toString.call(n);if("[object Object]"===i){if(n.constructor!==Object&&"function"==typeof n.constructor)for(t in e=new n.constructor,n)n.hasOwnProperty(t)&&e[t]!==n[t]&&(e[t]=hf(n[t]));else for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:hf(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=hf(n[t]);return e}if("[object Array]"===i){for(t=n.length,e=Array(t);t--;)e[t]=hf(n[t]);return e}return"[object Set]"===i?(e=new Set,n.forEach(function(r){e.add(hf(r))}),e):"[object Map]"===i?(e=new Map,n.forEach(function(r,o){e.set(hf(o),hf(r))}),e):"[object Date]"===i?new Date(+n):"[object RegExp]"===i?((e=new RegExp(n.source,n.flags)).lastIndex=n.lastIndex,e):"[object DataView]"===i?new n.constructor(hf(n.buffer)):"[object ArrayBuffer]"===i?n.slice(0):"Array]"===i.slice(-6)?new n.constructor(n):n}const BWe=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),PWe=(n,t)=>BWe.compare(n.name,t.name),RWe=(n,t)=>n.attributes.unary-t.attributes.unary,yre=(n,t,e)=>{if(!n)return;for(let r=0;r{const e=n===Q2.NUMBER_OF_FILES?RWe:PWe;return t?e:(i,r)=>-1*e(i,r)})(t,e);return n.children=((n,t)=>{const e=[],i=[];for(const r of t.children)r.type===qa.FOLDER?e.push(r):i.push(r);return e.sort(n),i.sort(n),[...e,...i]})(i,n),n},NWe=Kt(Hc,vre,bre,(n,t,e)=>yre(hf(n.unifiedMapNode),t,e)),wre=Kt(oN,n=>n.rightClickedNodeData);let xre=(()=>{class n{transform(e,i){return g8(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"areaMetricValid",type:n,pure:!0})}}return n})();function g8(n,t){return n.deltas?.[t]<0||n.attributes?.[t]>0}let UWe=(()=>{class n{transform(e,i){return No(e)?"fa fa-file-o":i?"fa fa-folder-open":"fa fa-folder"}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"mapTreeViewItemIconClass",type:n,pure:!0})}}return n})(),HWe=(()=>{class n{static{this.defaultColor="#000000"}static{this.areMetricZeroColor="#BDBDBD"}constructor(e){this.state=e}transform(e){const{areaMetric:i}=this.state.getValue().dynamicSettings;return g8(e,i)?No(e)?void 0:f2(e,this.state.getValue().fileSettings.markedPackages)||n.defaultColor:n.areMetricZeroColor}static{this.\u0275fac=function(i){return new(i||n)($(Zr,16))}}static{this.\u0275pipe=ur({name:"mapTreeViewItemIconColor",type:n,pure:!1})}}return n})(),VWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-item-icon"]],inputs:{node:"node",isOpen:"isOpen"},decls:3,vars:9,consts:[["role","img","aria-hidden","true"]],template:function(i,r){1&i&&(xe(0,"span",0),qe(1,"mapTreeViewItemIconClass"),qe(2,"mapTreeViewItemIconColor")),2&i&&(cl(Io(1,4,r.node,r.isOpen)),zi("color",rt(2,7,r.node)))},dependencies:[UWe,HWe],encapsulation:2})}}return n})();const QWe=Kt(Hc,n=>n.unifiedMapNode?.attributes.unary);let Cre=(()=>{class n{transform(e){return No(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"isNodeLeaf",type:n,pure:!0})}}return n})();function zWe(n,t){if(1&n&&(D(0,"span"),ye(1),qe(2,"async"),U()),2&n){const e=Le(2);Q(),sn("",(100*e.unaryValue/rt(2,1,e.rootUnary$)).toFixed(0),"%")}}function qWe(n,t){1&n&&ye(0,"File")}function GWe(n,t){1&n&&ye(0,"Files")}function WWe(n,t){if(1&n&&(D(0,"span",2),ye(1),pt(2,qWe,1,0,"ng-template",3)(3,GWe,1,0,"ng-template",4),U()),2&n){const e=Le(2);_e("ngPlural",e.unaryValue),Q(),sn(" ",e.unaryValue," ")}}function $We(n,t){if(1&n&&(D(0,"span",1),pt(1,zWe,3,3,"span")(2,WWe,4,2),U()),2&n){const e=Le();Q(),Tt(1,e.isHovered?2:1)}}let jWe=(()=>{class n{constructor(e){this.searchedNodePaths$=e.select($L),this.rootUnary$=e.select(QWe),this.areaMetric$=e.select(bb)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-item-name"]],inputs:{node:"node",isHovered:"isHovered",unaryValue:"unaryValue",unaryPercentage:"unaryPercentage"},decls:7,vars:17,consts:[[1,"node-name"],[1,"unary-number"],[3,"ngPlural"],["ngPluralCase","=1"],["ngPluralCase","other"]],template:function(i,r){1&i&&(D(0,"span",0),qe(1,"async"),qe(2,"areaMetricValid"),qe(3,"async"),ye(4),U(),pt(5,$We,3,1,"span",1),qe(6,"isNodeLeaf")),2&i&&(Un("flattened",r.node.isFlattened)("noAreaMetric",!Io(2,10,r.node,rt(1,8,r.areaMetric$)))("tree-search-result",rt(3,13,r.searchedNodePaths$).has(r.node.path)),Q(4),sn(" ",r.node.name,"\n"),Q(),Tt(5,rt(6,15,r.node)?-1:5))},dependencies:[hB,ez,Kn,xre,Cre],styles:[".unary-number[_ngcontent-%COMP%]{color:#a3a3a3;font-size:.8em;margin-top:1px}.node-name.flattened[_ngcontent-%COMP%]{color:gray}.node-name.noAreaMetric[_ngcontent-%COMP%]{color:#bdbdbd}.tree-search-result[_ngcontent-%COMP%]{background-color:#fc801bab}"]})}}return n})();function XWe(n,t){1&n&&xe(0,"i",1)}let KWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-item-option-buttons"]],inputs:{isFlattened:"isFlattened",openNodeContextMenu:"openNodeContextMenu"},decls:5,vars:1,consts:[["role","button","aria-hidden","true",1,"right-aligned"],["title","Flattened",1,"flattened","fa","fa-eye-slash"],[1,"small-action-button"],["title","Open Node-Context-Menu",3,"click"],[1,"fa","fa-ellipsis-h"]],template:function(i,r){1&i&&(D(0,"span",0),pt(1,XWe,1,0,"i",1),D(2,"div",2)(3,"button",3),ze("click",function(s){return r.openNodeContextMenu(s)}),xe(4,"i",4),U()()()),2&i&&(Q(),Tt(1,r.isFlattened?1:-1))},styles:["button[_ngcontent-%COMP%]{display:inline-block;height:19px;width:24px;min-height:0;margin:0;background-color:transparent;box-shadow:none;vertical-align:top}button[_ngcontent-%COMP%]:hover{background-color:#ddd;color:#000000de}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{position:absolute;top:2px;left:6px}.right-aligned[_ngcontent-%COMP%]{position:absolute;right:6px}.right-aligned[_ngcontent-%COMP%] i.flattened[_ngcontent-%COMP%]{color:gray}"]})}}return n})();function YWe(n,t){if(1&n&&xe(0,"cc-map-tree-view-item-option-buttons",4),2&n){const e=Le(2);_e("isFlattened",e.node.isFlattened)("openNodeContextMenu",e.openNodeContextMenu)}}function ZWe(n,t){if(1&n&&(D(0,"div"),xe(1,"cc-map-tree-view-level",5),U()),2&n){const e=t.$implicit,i=Le(3);Q(),_e("node",e)("depth",i.depth+1)}}function JWe(n,t){1&n&&Or(0,ZWe,2,2,"div",null,qr),2&n&&Lr(Le(2).node.children)}function e$e(n,t){if(1&n){const e=Dn();D(0,"div"),qe(1,"isNodeLeaf"),D(2,"div",1),qe(3,"async"),qe(4,"async"),qe(5,"async"),qe(6,"areaMetricValid"),ze("mouseenter",function(){return Ot(e),Rt(Le().onMouseEnter())})("mouseleave",function(){return Ot(e),Rt(Le().onMouseLeave())})("click",function(){return Ot(e),Rt(Le().onClick())})("contextmenu",function(r){return Ot(e),Rt(Le().openNodeContextMenu(r))}),xe(7,"cc-map-tree-view-item-icon",2)(8,"cc-map-tree-view-item-name",3),qe(9,"async"),pt(10,YWe,1,2,"cc-map-tree-view-item-option-buttons",4),qe(11,"async"),qe(12,"async"),qe(13,"areaMetricValid"),U(),D(14,"div"),pt(15,JWe,2,0),U()()}if(2&n){let e;const i=Le();(function rH(n,t,e,i,r){od(zo,Yd,I0(Dt(),n,t,e,i,r),!0)})("tree-element-",i.depth," ",rt(1,23,i.node)?"tree-leaf":"tree-parent",""),Q(2),hh("tree-element-label-",i.depth," tree-element-label"),Un("hovered",rt(3,25,i.hoveredNodeId$)===i.node.id)("marked",(null==(e=rt(4,27,i.rightClickedNodeData$))?null:e.nodeId)===i.node.id),Ua("id",i.node.path),_e("title",Io(6,31,i.node,rt(5,29,i.areaMetric$))?"":"No Node Area for Chosen Metric"),Q(5),_e("node",i.node)("isOpen",i.isOpen),Q(),_e("node",i.node)("isHovered",rt(9,34,i.hoveredNodeId$)===i.node.id)("unaryValue",i.node.attributes.unary),Q(2),Tt(10,rt(11,36,i.hoveredNodeId$)===i.node.id&&Io(13,40,i.node,rt(12,38,i.areaMetric$))?10:-1),Q(4),hh("tree-element-children tree-element-children-",i.depth,""),Q(),Tt(15,i.isOpen?15:-1)}}let t$e=(()=>{class n{constructor(e,i,r,o,s){this.store=e,this.threeSceneService=i,this.idToBuildingService=r,this.threeRendererService=o,this.codeMapMouseEventService=s,this.hoveredNodeId$=this.store.select(Yw),this.rightClickedNodeData$=this.store.select(wre),this.areaMetric$=this.store.select(bb),this.isOpen=!1,this.areMetricValid=!1,this.openNodeContextMenu=a=>{a.preventDefault(),a.stopPropagation(),this.areaMetric$.subscribe(l=>this.areMetricValid=g8(this.node,l)).unsubscribe(),this.areMetricValid&&(this.store.dispatch(gb({value:{nodeId:this.node.id,xPositionOfRightClickEvent:a.clientX,yPositionOfRightClickEvent:a.clientY}})),document.querySelector(".tree-element-0").addEventListener("scroll",this.scrollFunction))},this.scrollFunction=()=>{this.store.dispatch(gb({value:null})),document.querySelector(".tree-element-0").removeEventListener("scroll",this.scrollFunction)}}ngOnInit(){this.isOpen=0===this.depth}onMouseEnter(){const e=this.idToBuildingService.get(this.node.id),i=this.threeSceneService.labels?.children;this.codeMapMouseEventService.setLabelHoveredLeaf(e,i),this.codeMapMouseEventService.hoverNode(this.node.id),this.store.dispatch(Ab({value:this.node.id}))}onMouseLeave(){this.threeSceneService.resetLabel(),this.codeMapMouseEventService.unhoverNode(),this.codeMapMouseEventService.clearLabelHoveredBuilding(),this.store.dispatch(Ab({value:null}))}onClick(){this.isOpen=!this.isOpen;const e=this.idToBuildingService.get(this.node.id);this.codeMapMouseEventService.drawLabelSelectedBuilding(e),this.threeSceneService.selectBuilding(e),this.threeSceneService.clearConstantHighlight(),this.threeRendererService.render()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Vc),$(jw),$(Ki),$(Zw))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-level"]],inputs:{node:"node",depth:"depth"},decls:1,vars:1,consts:[[3,"class"],[3,"mouseenter","mouseleave","click","contextmenu","id","title"],[3,"node","isOpen"],[3,"node","isHovered","unaryValue"],[3,"isFlattened","openNodeContextMenu"],[3,"node","depth"]],template:function(i,r){1&i&&pt(0,e$e,16,43,"div",0),2&i&&Tt(0,r.node.isExcluded?-1:0)},dependencies:[VWe,jWe,KWe,n,Kn,xre,Cre],styles:["[_nghost-%COMP%]{white-space:nowrap}.tree-element-label[_ngcontent-%COMP%]{cursor:default}.tree-element-label[_ngcontent-%COMP%]:focus{outline:none}.tree-element-label[_ngcontent-%COMP%]:hover, .tree-element-label.hovered[_ngcontent-%COMP%]{background-color:#efefef;border-radius:2px;cursor:pointer}.tree-element-label.marked[_ngcontent-%COMP%]{background-color:#efefef;border-radius:2px}.tree-element-0[_ngcontent-%COMP%]{overflow-y:auto;max-height:400px;margin-left:3px;margin-top:10px}.tree-element-0[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:0;padding:0;position:relative}.tree-element-0[_ngcontent-%COMP%] .tree-element-children[_ngcontent-%COMP%]{margin-left:19px;margin-right:4px}"]})}}return n})();function n$e(n,t){1&n&&xe(0,"cc-map-tree-view-level",0),2&n&&_e("node",t)("depth",0)}let i$e=(()=>{class n{constructor(e){this.mapTreeViewNode$=e.select(NWe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view"]],decls:2,vars:3,consts:[[3,"node","depth"]],template:function(i,r){if(1&i&&(pt(0,n$e,1,2,"cc-map-tree-view-level",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.mapTreeViewNode$))?0:-1,o)}},dependencies:[t$e,Kn],encapsulation:2})}}return n})(),r$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,fWe,mWe,pWe,Are]})}}return n})();GM(wJ,[MWe,kWe,i$e,wN,yN,rWe,hWe],[]);let o$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,r$e,cGe,YGe,_Ge,rGe,bGe,ZGe,oGe,nWe,sGe,tWe,aGe,dGe,Are]})}}return n})(),s$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fg]})}}return n})(),a$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),l$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,wF]})}}return n})(),c$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,qx,l$e,a$e,fg]})}}return n})(),d$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),u$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fg]})}}return n})(),h$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Jne],imports:[mn,Wi,ud,rre]})}}return n})(),f$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[dne],imports:[mn,fg]})}}return n})(),m$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),p$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fg,aq,Wi,GN,ud,f8]})}}return n})(),A$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),g$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fg,Wi,l1,ud]})}}return n})(),_$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,s$e,u$e,f$e,p$e,g$e,h$e,d$e,A$e,m$e,c$e]})}}return n})(),b$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[iGe,mn,Kqe,tGe,o$e,_$e,Jqe,nGe]})}}return n})();let mg={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};const Ere=/[&<>"']/,w$e=new RegExp(Ere.source,"g"),Sre=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,x$e=new RegExp(Sre.source,"g"),C$e={"&":"&","<":"<",">":">",'"':""","'":"'"},Tre=n=>C$e[n];function Ta(n,t){if(t){if(Ere.test(n))return n.replace(w$e,Tre)}else if(Sre.test(n))return n.replace(x$e,Tre);return n}const M$e=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Ire(n){return n.replace(M$e,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}const E$e=/(^|[^\[])\^/g;function ao(n,t){n="string"==typeof n?n:n.source,t=t||"";const e={replace:(i,r)=>(r=(r=r.source||r).replace(E$e,"$1"),n=n.replace(i,r),e),getRegex:()=>new RegExp(n,t)};return e}const S$e=/[^\w:]/g,T$e=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Fre(n,t,e){if(n){let i;try{i=decodeURIComponent(Ire(e)).replace(S$e,"").toLowerCase()}catch{return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!T$e.test(e)&&(e=function k$e(n,t){SF[" "+n]||(SF[" "+n]=I$e.test(n)?n+"/":IF(n,"/",!0));const e=-1===(n=SF[" "+n]).indexOf(":");return"//"===t.substring(0,2)?e?t:n.replace(F$e,"$1")+t:"/"===t.charAt(0)?e?t:n.replace(D$e,"$1")+t:n+t}(t,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const SF={},I$e=/^[^:]+:\/*[^/]*$/,F$e=/^([^:]+:)[\s\S]*$/,D$e=/^([^:]+:\/*[^/]*)[\s\S]*$/,TF={exec:function(){}};function Dre(n,t){const i=n.replace(/\|/g,(o,s,a)=>{let l=!1,c=s;for(;--c>=0&&"\\"===a[c];)l=!l;return l?"|":" |"}).split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>t)i.splice(t);else for(;i.length1;)1&t&&(e+=n),t>>=1,n+=n;return e+n}function Bre(n,t,e,i){const r=t.href,o=t.title?Ta(t.title):null,s=n[1].replace(/\\([\[\]])/g,"$1");if("!"!==n[0].charAt(0)){i.state.inLink=!0;const a={type:"link",raw:e,href:r,title:o,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}return{type:"image",raw:e,href:r,title:o,text:Ta(s)}}class _8{constructor(t){this.options=t||mg}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const i=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:IF(i,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const i=e[0],r=function R$e(n,t){const e=n.match(/^(\s+)(?:```)/);if(null===e)return t;const i=e[1];return t.split("\n").map(r=>{const o=r.match(/^\s+/);if(null===o)return r;const[s]=o;return s.length>=i.length?r.slice(i.length):r}).join("\n")}(i,e[3]||"");return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:r}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let i=e[2].trim();if(/#$/.test(i)){const r=IF(i,"#");(this.options.pedantic||!r||/ $/.test(r))&&(i=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const i=e[0].replace(/^ *>[ \t]?/gm,""),r=this.lexer.state.top;this.lexer.state.top=!0;const o=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:e[0],tokens:o,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let i,r,o,s,a,l,c,d,u,h,f,A,y=e[1].trim();const _=y.length>1,b={type:"list",raw:"",ordered:_,start:_?+y.slice(0,-1):"",loose:!1,items:[]};y=_?`\\d{1,9}\\${y.slice(-1)}`:`\\${y}`,this.options.pedantic&&(y=_?y:"[*+-]");const M=new RegExp(`^( {0,3}${y})((?:[\t ][^\\n]*)?(?:\\n|$))`);for(;t&&(A=!1,(e=M.exec(t))&&!this.rules.block.hr.test(t));){if(i=e[0],t=t.substring(i.length),d=e[2].split("\n",1)[0].replace(/^\t+/,E=>" ".repeat(3*E.length)),u=t.split("\n",1)[0],this.options.pedantic?(s=2,f=d.trimLeft()):(s=e[2].search(/[^ ]/),s=s>4?1:s,f=d.slice(s),s+=e[1].length),l=!1,!d&&/^ *$/.test(u)&&(i+=u+"\n",t=t.substring(u.length+1),A=!0),!A){const E=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),L=new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),N=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),H=new RegExp(`^ {0,${Math.min(3,s-1)}}#`);for(;t&&(h=t.split("\n",1)[0],u=h,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(N.test(u)||H.test(u)||E.test(u)||L.test(t)));){if(u.search(/[^ ]/)>=s||!u.trim())f+="\n"+u.slice(s);else{if(l||d.search(/[^ ]/)>=4||N.test(d)||H.test(d)||L.test(d))break;f+="\n"+u}!l&&!u.trim()&&(l=!0),i+=h+"\n",t=t.substring(h.length+1),d=u.slice(s)}}b.loose||(c?b.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(f),r&&(o="[ ] "!==r[0],f=f.replace(/^\[[ xX]\] +/,""))),b.items.push({type:"list_item",raw:i,task:!!r,checked:o,loose:!1,text:f}),b.raw+=i}b.items[b.items.length-1].raw=i.trimRight(),b.items[b.items.length-1].text=f.trimRight(),b.raw=b.raw.trimRight();const C=b.items.length;for(a=0;a"space"===N.type),L=E.length>0&&E.some(N=>/\n.*\n/.test(N.raw));b.loose=L}if(b.loose)for(a=0;a$/,"$1").replace(this.rules.inline._escapes,"$1"):"",o=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:i,raw:e[0],href:r,title:o}}}table(t){const e=this.rules.block.table.exec(t);if(e){const i={type:"table",header:Dre(e[1]).map(r=>({text:r})),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=e[0];let o,s,a,l,r=i.align.length;for(o=0;o({text:c}));for(r=i.header.length,s=0;s/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Ta(e[0]):e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const i=e[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;const s=IF(i.slice(0,-1),"\\");if((i.length-s.length)%2==0)return}else{const s=function B$e(n,t){if(-1===n.indexOf(t[1]))return-1;const e=n.length;let i=0,r=0;for(;r-1){const l=(0===e[0].indexOf("!")?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let r=e[2],o="";if(this.options.pedantic){const s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);s&&(r=s[1],o=s[3])}else o=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r.slice(1):r.slice(1,-1)),Bre(e,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},e[0],this.lexer)}}reflink(t,e){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=e[r.toLowerCase()],!r){const o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return Bre(i,r,i[0],this.lexer)}}emStrong(t,e,i=""){let r=this.rules.inline.emStrong.lDelim.exec(t);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;const o=r[1]||r[2]||"";if(!o||o&&(""===i||this.rules.inline.punctuation.exec(i))){const s=r[0].length-1;let a,l,c=s,d=0;const u="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+s);null!=(r=u.exec(e));){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(l=a.length,r[3]||r[4]){c+=l;continue}if((r[5]||r[6])&&s%3&&!((s+l)%3)){d+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+d);const h=t.slice(0,s+r.index+(r[0].length-a.length)+l);if(Math.min(s,l)%2){const A=h.slice(1,-1);return{type:"em",raw:h,text:A,tokens:this.lexer.inlineTokens(A)}}const f=h.slice(2,-2);return{type:"strong",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(/\n/g," ");const r=/[^ ]/.test(i),o=/^ /.test(i)&&/ $/.test(i);return r&&o&&(i=i.substring(1,i.length-1)),i=Ta(i,!0),{type:"codespan",raw:e[0],text:i}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t,e){const i=this.rules.inline.autolink.exec(t);if(i){let r,o;return"@"===i[2]?(r=Ta(this.options.mangle?e(i[1]):i[1]),o="mailto:"+r):(r=Ta(i[1]),o=r),{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}url(t,e){let i;if(i=this.rules.inline.url.exec(t)){let r,o;if("@"===i[2])r=Ta(this.options.mangle?e(i[0]):i[0]),o="mailto:"+r;else{let s;do{s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(s!==i[0]);r=Ta(i[0]),o="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t,e){const i=this.rules.inline.text.exec(t);if(i){let r;return r=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):Ta(i[0]):i[0]:Ta(this.options.smartypants?e(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const ni={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:TF,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};ni.def=ao(ni.def).replace("label",ni._label).replace("title",ni._title).getRegex(),ni.bullet=/(?:[*+-]|\d{1,9}[.)])/,ni.listItemStart=ao(/^( *)(bull) */).replace("bull",ni.bullet).getRegex(),ni.list=ao(ni.list).replace(/bull/g,ni.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+ni.def.source+")").getRegex(),ni._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ni._comment=/|$)/,ni.html=ao(ni.html,"i").replace("comment",ni._comment).replace("tag",ni._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ni.paragraph=ao(ni._paragraph).replace("hr",ni.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ni._tag).getRegex(),ni.blockquote=ao(ni.blockquote).replace("paragraph",ni.paragraph).getRegex(),ni.normal={...ni},ni.gfm={...ni.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},ni.gfm.table=ao(ni.gfm.table).replace("hr",ni.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ni._tag).getRegex(),ni.gfm.paragraph=ao(ni._paragraph).replace("hr",ni.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ni.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ni._tag).getRegex(),ni.pedantic={...ni.normal,html:ao("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",ni._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:TF,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ao(ni.normal._paragraph).replace("hr",ni.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",ni.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const Pn={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:TF,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:TF,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}Pn._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Pn.punctuation=ao(Pn.punctuation).replace(/punctuation/g,Pn._punctuation).getRegex(),Pn.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Pn.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,Pn._comment=ao(ni._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Pn.emStrong.lDelim=ao(Pn.emStrong.lDelim).replace(/punct/g,Pn._punctuation).getRegex(),Pn.emStrong.rDelimAst=ao(Pn.emStrong.rDelimAst,"g").replace(/punct/g,Pn._punctuation).getRegex(),Pn.emStrong.rDelimUnd=ao(Pn.emStrong.rDelimUnd,"g").replace(/punct/g,Pn._punctuation).getRegex(),Pn._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Pn._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Pn._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Pn.autolink=ao(Pn.autolink).replace("scheme",Pn._scheme).replace("email",Pn._email).getRegex(),Pn._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Pn.tag=ao(Pn.tag).replace("comment",Pn._comment).replace("attribute",Pn._attribute).getRegex(),Pn._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Pn._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Pn._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Pn.link=ao(Pn.link).replace("label",Pn._label).replace("href",Pn._href).replace("title",Pn._title).getRegex(),Pn.reflink=ao(Pn.reflink).replace("label",Pn._label).replace("ref",ni._label).getRegex(),Pn.nolink=ao(Pn.nolink).replace("ref",ni._label).getRegex(),Pn.reflinkSearch=ao(Pn.reflinkSearch,"g").replace("reflink",Pn.reflink).replace("nolink",Pn.nolink).getRegex(),Pn.normal={...Pn},Pn.pedantic={...Pn.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:ao(/^!?\[(label)\]\((.*?)\)/).replace("label",Pn._label).getRegex(),reflink:ao(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Pn._label).getRegex()},Pn.gfm={...Pn.normal,escape:ao(Pn.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\l+" ".repeat(c.length));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>!!(i=a.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?e.push(i):(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(r.raw+="\n"+i.raw,r.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(o=t,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const l=t.slice(1);let c;this.options.extensions.startBlock.forEach(function(d){c=d.call({lexer:this},l),"number"==typeof c&&c>=0&&(a=Math.min(a,c))}),a<1/0&&a>=0&&(o=t.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(o))){r=e[e.length-1],s&&"paragraph"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i),s=o.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i);continue}if(t){const a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,o,a,l,c,s=t;if(this.tokens.links){const d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(s));)d.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+kre("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(s));)s=s.slice(0,a.index)+"["+kre("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(s));)s=s.slice(0,a.index+a[0].length-2)+"++"+s.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;t;)if(l||(c=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(d=>!!(i=d.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.emStrong(t,s,c)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.autolink(t,Pre)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,Pre))){t=t.substring(i.raw.length),e.push(i);continue}if(o=t,this.options.extensions&&this.options.extensions.startInline){let d=1/0;const u=t.slice(1);let h;this.options.extensions.startInline.forEach(function(f){h=f.call({lexer:this},u),"number"==typeof h&&h>=0&&(d=Math.min(d,h))}),d<1/0&&d>=0&&(o=t.substring(0,d+1))}if(i=this.tokenizer.inlineText(o,O$e)){t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(c=i.raw.slice(-1)),l=!0,r=e[e.length-1],r&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(t){const d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}return e}}class b8{constructor(t){this.options=t||mg}code(t,e,i){const r=(e||"").match(/\S*/)[0];if(this.options.highlight){const o=this.options.highlight(t,r);null!=o&&o!==t&&(i=!0,t=o)}return t=t.replace(/\n$/,"")+"\n",r?'

'+(i?t:Ta(t,!0))+"
\n":"
"+(i?t:Ta(t,!0))+"
\n"}blockquote(t){return`
\n${t}
\n`}html(t){return t}heading(t,e,i,r){return this.options.headerIds?`${t}\n`:`${t}\n`}hr(){return this.options.xhtml?"
\n":"
\n"}list(t,e,i){const r=e?"ol":"ul";return"<"+r+(e&&1!==i?' start="'+i+'"':"")+">\n"+t+"\n"}listitem(t){return`
  • ${t}
  • \n`}checkbox(t){return" "}paragraph(t){return`

    ${t}

    \n`}table(t,e){return e&&(e=`${e}`),"\n\n"+t+"\n"+e+"
    \n"}tablerow(t){return`\n${t}\n`}tablecell(t,e){const i=e.header?"th":"td";return(e.align?`<${i} align="${e.align}">`:`<${i}>`)+t+`\n`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return this.options.xhtml?"
    ":"
    "}del(t){return`${t}`}link(t,e,i){if(null===(t=Fre(this.options.sanitize,this.options.baseUrl,t)))return i;let r='",r}image(t,e,i){if(null===(t=Fre(this.options.sanitize,this.options.baseUrl,t)))return i;let r=`${i}":">",r}text(t){return t}}class Rre{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,e,i){return""+i}image(t,e,i){return""+i}br(){return""}}class Ore{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,e){let i=t,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[t];do{r++,i=t+"-"+r}while(this.seen.hasOwnProperty(i))}return e||(this.seen[t]=r,this.seen[i]=0),i}slug(t,e={}){const i=this.serialize(t);return this.getNextSafeSlug(i,e.dryrun)}}class ip{constructor(t){this.options=t||mg,this.options.renderer=this.options.renderer||new b8,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Rre,this.slugger=new Ore}static parse(t,e){return new ip(e).parse(t)}static parseInline(t,e){return new ip(e).parseInline(t)}parse(t,e=!0){let r,o,s,a,l,c,d,u,h,f,A,y,_,b,M,C,E,L,N,i="";const H=t.length;for(r=0;r0&&"paragraph"===M.tokens[0].type?(M.tokens[0].text=L+" "+M.tokens[0].text,M.tokens[0].tokens&&M.tokens[0].tokens.length>0&&"text"===M.tokens[0].tokens[0].type&&(M.tokens[0].tokens[0].text=L+" "+M.tokens[0].tokens[0].text)):M.tokens.unshift({type:"text",text:L}):b+=L),b+=this.parse(M.tokens,_),h+=this.renderer.listitem(b,E,C);i+=this.renderer.list(h,A,y);continue;case"html":i+=this.renderer.html(f.text);continue;case"paragraph":i+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case"text":for(h=f.tokens?this.parseInline(f.tokens):f.text;r+1{"function"==typeof i&&(r=i,i=null);const o={...i},s=function L$e(n,t,e){return i=>{if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",n){const r="

    An error occurred:

    "+Ta(i.message+"",!0)+"
    ";return t?Promise.resolve(r):e?void e(null,r):r}if(t)return Promise.reject(i);if(!e)throw i;e(i)}}((i={...ii.defaults,...o}).silent,i.async,r);if(typeof e>"u"||null===e)return s(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof e)return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(function P$e(n){n&&n.sanitize&&!n.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}(i),i.hooks&&(i.hooks.options=i),r){const a=i.highlight;let l;try{i.hooks&&(e=i.hooks.preprocess(e)),l=n(e,i)}catch(u){return s(u)}const c=function(u){let h;if(!u)try{i.walkTokens&&ii.walkTokens(l,i.walkTokens),h=t(l,i),i.hooks&&(h=i.hooks.postprocess(h))}catch(f){u=f}return i.highlight=a,u?s(u):r(null,h)};if(!a||a.length<3||(delete i.highlight,!l.length))return c();let d=0;return ii.walkTokens(l,function(u){"code"===u.type&&(d++,setTimeout(()=>{a(u.text,u.lang,function(h,f){if(h)return c(h);null!=f&&f!==u.text&&(u.text=f,u.escaped=!0),d--,0===d&&c()})},0))}),void(0===d&&c())}if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(a=>n(a,i)).then(a=>i.walkTokens?Promise.all(ii.walkTokens(a,i.walkTokens)).then(()=>a):a).then(a=>t(a,i)).then(a=>i.hooks?i.hooks.postprocess(a):a).catch(s);try{i.hooks&&(e=i.hooks.preprocess(e));const a=n(e,i);i.walkTokens&&ii.walkTokens(a,i.walkTokens);let l=t(a,i);return i.hooks&&(l=i.hooks.postprocess(l)),l}catch(a){return s(a)}}}function ii(n,t,e){return Lre(np.lex,ip.parse)(n,t,e)}function N$e(n,t){if(1&n&&(D(0,"div")(1,"h2"),ye(2),U(),xe(3,"ul",6),U()),2&n){const e=t.$implicit;Q(2),br(e.key),Q(),_e("innerHTML",e.value,l3)}}ii.options=ii.setOptions=function(n){return function y$e(n){mg=n}(ii.defaults={...ii.defaults,...n}),ii},ii.getDefaults=function Mre(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}},ii.defaults=mg,ii.use=function(...n){const t=ii.defaults.extensions||{renderers:{},childTokens:{}};n.forEach(e=>{const i={...e};if(i.async=ii.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if(r.renderer){const o=t.renderers[r.name];t.renderers[r.name]=o?function(...s){let a=r.renderer.apply(this,s);return!1===a&&(a=o.apply(this,s)),a}:r.renderer}if(r.tokenizer){if(!r.level||"block"!==r.level&&"inline"!==r.level)throw new Error("extension level must be 'block' or 'inline'");t[r.level]?t[r.level].unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&("block"===r.level?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:"inline"===r.level&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),e.renderer){const r=ii.defaults.renderer||new b8;for(const o in e.renderer){const s=r[o];r[o]=(...a)=>{let l=e.renderer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.renderer=r}if(e.tokenizer){const r=ii.defaults.tokenizer||new _8;for(const o in e.tokenizer){const s=r[o];r[o]=(...a)=>{let l=e.tokenizer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.tokenizer=r}if(e.hooks){const r=ii.defaults.hooks||new v8;for(const o in e.hooks){const s=r[o];r[o]=v8.passThroughHooks.has(o)?a=>{if(ii.defaults.async)return Promise.resolve(e.hooks[o].call(r,a)).then(c=>s.call(r,c));const l=e.hooks[o].call(r,a);return s.call(r,l)}:(...a)=>{let l=e.hooks[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.hooks=r}if(e.walkTokens){const r=ii.defaults.walkTokens;i.walkTokens=function(o){let s=[];return s.push(e.walkTokens.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}ii.setOptions(i)})},ii.walkTokens=function(n,t){let e=[];for(const i of n)switch(e=e.concat(t.call(ii,i)),i.type){case"table":for(const r of i.header)e=e.concat(ii.walkTokens(r.tokens,t));for(const r of i.rows)for(const o of r)e=e.concat(ii.walkTokens(o.tokens,t));break;case"list":e=e.concat(ii.walkTokens(i.items,t));break;default:ii.defaults.extensions&&ii.defaults.extensions.childTokens&&ii.defaults.extensions.childTokens[i.type]?ii.defaults.extensions.childTokens[i.type].forEach(function(r){e=e.concat(ii.walkTokens(i[r],t))}):i.tokens&&(e=e.concat(ii.walkTokens(i.tokens,t)))}return e},ii.parseInline=Lre(np.lexInline,ip.parseInline),ii.Parser=ip,ii.parser=ip.parse,ii.Renderer=b8,ii.TextRenderer=Rre,ii.Lexer=np,ii.lexer=np.lex,ii.Tokenizer=_8,ii.Slugger=Ore,ii.Hooks=v8,ii.parse=ii;let U$e=(()=>{class n{constructor(e){this.data=e,this.changes=this.getChangelogChanges()}getChangelogChanges(){let i=ii.parse('# Change Log - Visualization\r\n\r\nAll notable changes to this project will be documented in this file.\r\n\r\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\r\nand this project adheres to [Semantic Versioning](http://semver.org/)\r\n\r\n## [unreleased] (Added \u{1f680} | Changed | Removed \u{1f5d1} | Fixed \u{1f41e} | Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb})\r\n\r\n## [1.129.0] - 2024-10-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Add thousands separation for big numbers [#3758](https://github.com/MaibornWolff/codecharta/pull/3758)\r\n- Add popup when comparing files with different complexity metrics [#3773](https://github.com/MaibornWolff/codecharta/pull/3773)\r\n- Add experimental feature: dynamic floor lable height for large maps [#3778](https://github.com/MaibornWolff/codecharta/pull/3778)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Remove horizontal scrollbar in the File/ Node Explorer dropdown and styling fixes [#3765](https://github.com/MaibornWolff/codecharta/pull/3765)\r\n- Fix issue when multiple files are selected then the edge metrics in the primary metrics section are not displayed correctly. [#3753](https://github.com/MaibornWolff/codecharta/pull/3753)\r\n- Metric Scenarios (before Metric Templates) are available again [#3762](https://github.com/MaibornWolff/codecharta/pull/3762)\r\n- Legend Panel closes on outside click [#3770](https://github.com/MaibornWolff/codecharta/pull/3770)\r\n\r\n### Changed\r\n\r\n- Renaming of Metric Templates to Metric Scenarios [#3656](https://github.com/MaibornWolff/codecharta/pull/3656)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Enable View Encapsulation for components in the ribbon bar [#3779](https://github.com/MaibornWolff/codecharta/pull/3779)\r\n\r\n## [1.128.0] - 2024-09-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Add feature to zoom at the mouse cursor [#3693](https://github.com/MaibornWolff/codecharta/pull/3693)\r\n- Add a zoom slider under the cube, allowing to zoom in and out while always displaying the current zoom factor. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix breaking map selection layout by setting automatic line extension. [#3764](https://github.com/orgs/MaibornWolff/projects/11/views/3?pane=issue&itemId=80844170)\r\n- Fix issue where zooming out too much makes the map disappear and zooming in too much causes you to go through the map. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697)\r\n- Camera perspective is correctly adopted from the custom configuration[#3698](https://github.com/MaibornWolff/codecharta/pull/3698)\r\n- Fix camera behavior when `Reset Camera when changing map` option is deactivated [#3699](https://github.com/MaibornWolff/codecharta/pull/3699)\r\n\r\n### Changed\r\n\r\n- Change OrbitControls to MapControls for improved map navigation [#3693](https://github.com/MaibornWolff/codecharta/pull/3693)\r\n- Remove unnecessary button that opened and closed the file explorer [#3647](https://github.com/MaibornWolff/codecharta/pull/3748)\r\n- Overhaul Focus and Unfocus functionality[#3706](https://github.com/MaibornWolff/codecharta/pull/3706)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 18 to 20 [#3690](https://github.com/MaibornWolff/codecharta/pull/3690)\r\n- Enabled view encapsulation for Global Configuration dialog, Ribbon Bar and File Panel [#3712](https://github.com/MaibornWolff/codecharta/pull/3712)\r\n- Enabled view encapsulation for Slider [#3713](https://github.com/MaibornWolff/codecharta/pull/3713)\r\n- Enabled view encapsulation for the Toolbar [#3717](https://github.com/MaibornWolff/codecharta/pull/3717)\r\n- Enabled view encapsulation for the Legend Panel [#3720](https://github.com/MaibornWolff/codecharta/pull/3720)\r\n- Enabled view encapsulation for the Attribute Side Bar [#3726](https://github.com/MaibornWolff/codecharta/pull/3726)\r\n- Enabled view encapsulation for Buttons [#3729](https://github.com/MaibornWolff/codecharta/pull/3729)\r\n- Enabled view encapsulation for the Export 3D Map Dialog [#3732](https://github.com/MaibornWolff/codecharta/pull/3732)\r\n- Enabled view encapsulation for Dialogs [#3736](https://github.com/MaibornWolff/codecharta/pull/3736)\r\n\r\n## [1.127.1] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Revert [#3655](https://github.com/MaibornWolff/codecharta/pull/3665) as we implement new navigation methods\r\n\r\n## [1.127.0] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Zooming doesn\'t affect the camera position [#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix the issue where the map disappears after excessive zooming out.[#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix visualization standalone electron build by bumping the version to 29 [#3681](https://github.com/MaibornWolff/codecharta/pull/3681)\r\n\r\n### Added \u{1f680}\r\n\r\n- Export multi-material 3MF for 3D printing of maps in color [#3616](https://github.com/MaibornWolff/codecharta/pull/3616)\r\n\r\n### Changed\r\n\r\n- IMPORTANT: The sonar complexity will no longer be renamed to MCC! [#3456](https://github.com/MaibornWolff/codecharta/pull/3606)\r\n\r\n## [1.126.0] - 2024-06-03\r\n\r\n### Added \u{1f680}\r\n\r\n- Overhaul the Suspicious Metrics menu [#3612](https://github.com/MaibornWolff/codecharta/pull/3612)\r\n\r\n## [1.125.0] - 2024-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Add search bar for custom configs [#3529](https://github.com/MaibornWolff/codecharta/pull/3529)\r\n- Automatically reverse the metric direction for those where higher values indicate better codequality, such as `branch_coverage` [#3518](https://github.com/MaibornWolff/codecharta/pull/3518)\r\n- Display summary metrics for root node as default [#3525](https://github.com/MaibornWolff/codecharta/pull/3525)\r\n- Remove whitespace on screenshots [#3527](https://github.com/MaibornWolff/codecharta/pull/3527)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix small style issues [#3544](https://github.com/MaibornWolff/codecharta/pull/3544)\r\n- Fix key handling for selection metrics [#3546](https://github.com/MaibornWolff/codecharta/pull/3546)\r\n- Fix applying default metric templates to ensure options reset correctly [#3560](https://github.com/MaibornWolff/codecharta/pull/3560)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update angular to v17\r\n\r\n## [1.124.1] - 2024-03-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix metrics being reset on excluding / flattening buildings [#3524](https://github.com/MaibornWolff/codecharta/pull/3524)\r\n- Take direction of attributes into account when creating the list with highest metrics [#3526](https://github.com/MaibornWolff/codecharta/pull/3526)\r\n\r\n## [1.124.0] - 2024-03-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Display diagram of color distribution [#3511](https://github.com/MaibornWolff/codecharta/pull/3511)\r\n
    \r\n color-metric-diagram\r\n
    \r\n- Persist uploaded files and applied configuration accross page-reloads [#3486](https://github.com/MaibornWolff/codecharta/pull/3486)\r\n- Height, color, edge and area metric can be selected via query parameters [#3513](https://github.com/MaibornWolff/codecharta/pull/3513)\r\n- Capturing a screenshot of the map also captures the legend [#3520](https://github.com/MaibornWolff/codecharta/pull/3520)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 16 to 18 [#3452](https://github.com/MaibornWolff/codecharta/pull/3452)\r\n\r\n## [1.123.0] - 2024-02-26\r\n\r\n### Changed\r\n\r\n- CodeCharta Analysis and Visualization now have separate changelogs and releases [#3499](https://github.com/MaibornWolff/codecharta/pull/3499)\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight building on-click of file in explorer [#3488](https://github.com/MaibornWolff/codecharta/pull/3488)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix buildings inability to be completely red in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edge preview in visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edges start/end intersecting with building in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix style issues in the node/file explorer of visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n\r\n## [1.122.0] - 2024-01-16\r\n\r\n### Added \u{1f680}\r\n\r\n- File explorer can be pinned while analyzing the code-map [#3459](https://github.com/MaibornWolff/codecharta/pull/3459)\r\n- Validate input file during interactive parser configuration [#3460](https://github.com/MaibornWolff/codecharta/pull/3460)\r\n- Add functionality to screenshot legend [#3471](https://github.com/MaibornWolff/codecharta/pull/3471)\r\n\r\n### Changed\r\n\r\n- Multiple values for options need to be separated by comma [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Changed the short-form of the `--no-issues` flag in the SourceCodeParser from `-i` to `-ni` [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Clarify sonar user token question [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the `--user` flag to `--user-token` in SonarImporter [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the interactive dialog of `modify` to prompt user for single action to perform [#3448](https://github.com/MaibornWolff/codecharta/pull/3448)\r\n- Selected buildings now keep their label until they are unselected [#3465](https://github.com/MaibornWolff/codecharta/pull/3465)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix saving the number of top-labels in custom configs [#3461](https://github.com/MaibornWolff/codecharta/pull/3461)\r\n- Fix parsers crashing after printing output to stdout [#3442](https://github.com/MaibornWolff/codecharta/pull/3442)\r\n- Fix removal of nodes with identical names in `modify` [#3446](https://github.com/MaibornWolff/codecharta/pull/3446)\r\n- Fix the highlighting of very high risk metrics to highlight only matching files [#3454](https://github.com/MaibornWolff/codecharta/pull/3454)\r\n\r\n## [1.121.1] - 2023-12-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix github-pages not showing documentation [#3436](https://github.com/MaibornWolff/codecharta/pull/3436)\r\n\r\n## [1.121.0] - 2023-12-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add logging of absolute file paths of output files [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Changed\r\n\r\n- Changed short form of parameter `--file-extensions` of RawTextParser from `-f` to `-fe` [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Update readme and gh-pages for RawTextParser [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Changed the `--format` flag for csv-output in SourceCodeParser from `table` to `csv` [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix RawTextParser producing incorrect output when no (or multiple) file extensions were specified in interactive mode [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Fix handling of empty inputs for the `--metrics`, `--exclude`, `--file-extensions` flags in the RawTextParser [#3415](https://github.com/MaibornWolff/codecharta/pull/3415)\r\n- Fix RawTextParser incorrectly setting max indentation level to a predefined value [#3419](https://github.com/MaibornWolff/codecharta/pull/3419)\r\n- Fix the csv-exporter so that it exports multiple projects instead of just one when multiple projects are specified [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n- Fix file extensions of output files for merged projects [#3421](https://github.com/MaibornWolff/codecharta/pull/3421)\r\n- Fix the ability for users to accidentally pass invalid metrics to the RawTextParser without it crashing [#3424](https://github.com/MaibornWolff/codecharta/pull/3424)\r\n- Fix deselected buildings with green/red roof in delta mode do not reset their color roof [#3426](https://github.com/MaibornWolff/codecharta/pull/3426)\r\n- Fix parser hang issue in interactive mode caused by unintentional "enter" input after the last question [#3422](https://github.com/MaibornWolff/codecharta/pull/3422)\r\n\r\n### Chore \u200d\u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgraded to angular 16 [#3408](https://github.com/MaibornWolff/codecharta/pull/3408)\r\n\r\n## [1.120.1] - 2023-11-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Deprecated download button removed (functionality has been replaced by custom views) [#3398](https://github.com/MaibornWolff/codecharta/pull/3398)\r\n- Remove the \'new\' badges from the \'Custom Views\' and \'Suspicious Metrics\' features as these features are no longer new [#3393](https://github.com/MaibornWolff/codecharta/pull/3399)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix an issue with web demo on Safari showing a white screen and not loading [#3396](https://github.com/MaibornWolff/codecharta/pull/3396)\r\n- Fix the ability for users to skip the value for tab-width when configuring the rawtextparser and estimate its value [#3404](https://github.com/MaibornWolff/codecharta/pull/3404)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add documentation for the installation requirements for metric-gardener [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n- Add hints to README (visualization and package) about MacOS arm64 standalone execution [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n\r\n## [1.120.0] - 2023-11-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Only ask to merge results after parser suggestion execution when more than one parser was executed [#3384](https://github.com/MaibornWolff/codecharta/pull/3384)\r\n- Add the description of each parser to the list of suggested parsers [#3387](https://github.com/MaibornWolff/codecharta/pull/3387)\r\n\r\n### Changed\r\n\r\n- Adjust console output of metric gardener importer to no longer include one line for each processed node [#3386](https://github.com/MaibornWolff/codecharta/pull/3390)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix command not found issue for --version and --help in the analysis [#3377](https://github.com/MaibornWolff/codecharta/pull/3377)\r\n- Fix metric gardener importer getting stuck for large inputs [#3382](https://github.com/MaibornWolff/codecharta/pull/3382)\r\n- Update docs for ccsh to remove outdated parameters and unify the pages structure [#3333](https://github.com/MaibornWolff/codecharta/pull/3388)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Raise minimum required Java Version from 8 to 11 [#3359](https://github.com/MaibornWolff/codecharta/pull/3359)\r\n- Swap nw.js to electron for standalone execution [#3373](https://github.com/MaibornWolff/codecharta/pull/3373)\r\n\r\n## [1.119.1] - 2023-08-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ccsh execution under windows via cmd-terminal [#3354](https://github.com/MaibornWolff/codecharta/pull/3354)\r\n\r\n## [1.119.0] - 2023-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add message outputting which parser is being configured during parser suggestions [#3335](https://github.com/MaibornWolff/codecharta/pull/3335)\r\n- Add basic validity checking for all input resources (files/folders, url for SonarImporter) [#3325](https://github.com/MaibornWolff/codecharta/pull/3325)\r\n- Automatically start specific interactive parser when calling parser without args [#3332](https://github.com/MaibornWolff/codecharta/pull/3332)\r\n\r\n## [1.118.0] - 2023-06-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric tooltips that display attribute descriptors and provide hyperlinks in the sidebar to the metric\'s documentation [#3273](https://github.com/MaibornWolff/codecharta/pull/3273)
    \r\n \r\n- Expand and restructure documentation regarding Docker usage [#3312](https://github.com/MaibornWolff/codecharta/pull/3312)\r\n- Add current working directories as hint or default value to interactive parser and parser suggestions when asking for input [#3319](https://github.com/MaibornWolff/codecharta/pull/3319)\r\n- Add helpful status messages when calculating parser suggestions [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Speed up parser suggestions significantly [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n- Fix color range reset not triggering on color metric change [#3311](https://github.com/MaibornWolff/codecharta/pull/3311)\r\n\r\n## [1.117.0] - 2023-05-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Add support for parser suggestions to SVN-, MetricGardener-, RawText- and SourceCodeParser [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Add semi automatic merging feature after executing multiple parsers [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Expand developer documentation to include common problems and solutions for them [#3289](https://github.com/MaibornWolff/codecharta/pull/3289)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix entrypoint for analysis docker image [#3259](https://github.com/MaibornWolff/codecharta/pull/3259)\r\n- Show again delta of a building which have nothing in common in red or green [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n- Always show description of suspicious metrics [#3285](https://github.com/MaibornWolff/codecharta/pull/3285)\r\n- Show suspicious metrics and risk profile documentation pages in navigation bar [#3290](https://github.com/MaibornWolff/codecharta/pull/3290)\r\n- Merge filter will now abort execution when an invalid file is specified as input [#3305](https://github.com/MaibornWolff/codecharta/pull/3305)\r\n- Fix formatting issues in docs turning `--` to `\u2013` [#3301](https://github.com/MaibornWolff/codecharta/pull/3301)\r\n\r\n### Changed\r\n\r\n- Adjusted documentation for parser suggestions [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Make the size of the CodeCharta logo more suitable for any screen size and remove MaibornWolff logo [#3302](https://github.com/MaibornWolff/codecharta/pull/3302)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Replace custom Redux adapter through real NgRx [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n\r\n## [1.116.0] - 2023-04-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add automatic parser suggestions to recommend usable parsers for a codebase (supports GitLogParser and SonarImporter) when running `ccsh` command [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)
    \r\n ![image](https://user-images.githubusercontent.com/129938897/234309117-c9edd4e7-7c53-4ba7-b849-ec9c3f8f3215.png)\r\n- Add documentation subsections for interactive shell and parser suggestions\r\n\r\n### Changed\r\n\r\n- Changed default behavior when launching ccsh without arguments to parser suggestions [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n- Old interactive parser selection now reachable by passing `-i` or `--interactive` as arguments [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix suspicious metrics and risk profile docs not loading [#3272](https://github.com/MaibornWolff/codecharta/pull/3272)\r\n\r\n## [1.115.1] - 2023-04-06\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Support for Custom Views created before CodeCharta version 1.110.0 or older is no longer be maintained [#3265](https://github.com/MaibornWolff/codecharta/pull/3265)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix the disappearance of the suspicious metrics labels [#3263](https://github.com/MaibornWolff/codecharta/pull/3263)\r\n- Fix UI components that look different since version 1.115.0 [#3260](https://github.com/MaibornWolff/codecharta/pull/3260)\r\n- Show latest release notes in changelog dialog [#3264](https://github.com/MaibornWolff/codecharta/pull/3264)\r\n\r\n## [1.115.0] - 2023-03-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Display the CodeCharta logo next to the MaibornWolff logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Tooltip for primary and secondary metrics that displays AttributeDescriptor information in the sidebar [#3239](https://github.com/MaibornWolff/codecharta/pull/3239)
    \r\n ![image](https://user-images.githubusercontent.com/65733509/227218468-b7d1e1ae-b847-40ab-8513-f3762b8787bb.png)\r\n- Supports adding note to a custom view, provides a preview and an edit option for notes from the selection menu [#3234](https://github.com/MaibornWolff/codecharta/pull/3234)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/226942610-9e08d39c-324d-4de3-81d0-4e5da4e589aa.png)\r\n ![image](https://user-images.githubusercontent.com/72517530/226943152-1bb339bb-c39f-4bf6-a32d-ee8476249f98.png)\r\n\r\n### Changed\r\n\r\n- The Suspicious metrics and Risk profile Feature is now also available outside the Experimental Feature Mode [#2963](https://github.com/MaibornWolff/codecharta/pull/2963)
    \r\n ![image](https://user-images.githubusercontent.com/47224279/222686442-05d4b83c-04d7-4275-b1eb-4339e8906130.jpg)\r\n- Made the background color a bit lighter [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Saturate the distribution bar colors [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of all metric menus [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the global configuration dialog [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the metric chooser panel [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Change the primary color to match the color of the CodeCharta logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the docs for suspicious metrics and risk profile feature [#3238](https://github.com/MaibornWolff/codecharta/pull/3238)\r\n- Improve Custom Views Dialog [#3238](https://github.com/MaibornWolff/codecharta/pull/3248)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unselecting a folder in Presentation Mode leads to console error [#3215](https://github.com/MaibornWolff/codecharta/pull/3215)\r\n- Fix Shrunken FileExplorer\'s file list on small displays [#3235](https://github.com/MaibornWolff/codecharta/pull/3235)\r\n- Fix various margin problems in the UI [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Fix bumpy animations when moving/turning the map, hover buildings (showing labels and edges) [#3244](https://github.com/MaibornWolff/codecharta/pull/3244)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgrade all material UI components to MDC (not using the UI legacy components any more) [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n\r\n## [1.114.0] - 2023-01-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to hide floor labels under the Area Metric Options. This recalculates the map. [#3175](https://github.com/MaibornWolff/codecharta/pull/3175)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Camera settings for custom views generated with version 1.101.1 and earlier are now ignored. [#3196](https://github.com/MaibornWolff/codecharta/pull/3196)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reposition legend panel button again, when attribute sidebar is open [#3183](https://github.com/MaibornWolff/codecharta/pull/3183)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors (metric descriptions) to TokeiImporter and SVNlogParser [#3176](https://github.com/MaibornWolff/codecharta/pull/3176)\r\n\r\n## [1.113.0] - 2022-12-15\r\n\r\n### Changed\r\n\r\n- The Custom Views Feature is now also available outside the Experimental Feature Mode [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/204557970-0ba31f3b-5209-4707-a2d0-55cc45509f8a.png)\r\n- Please note that the functionality of downloading cc.json maps will no longer be supported from April 2023. Instead, use the Custom View feature to create and share configurations for different views of your map. [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)\r\n- Change tooltips in the legend to show the metric description [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)
    \r\n ![image](https://user-images.githubusercontent.com/27358421/205251507-100b1e1a-d86e-44f3-89cf-f32bf295aabd.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve metric titles by loading them from cc.json [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)\r\n- Add attribute descriptors to SoureCodeParser [#3166](https://github.com/MaibornWolff/codecharta/pull/3166)\r\n\r\n## [1.112.1] - 2022-12-01\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reverted PR [#3077](https://github.com/MaibornWolff/codecharta/pull/3077) that introduced a rendering bug, where buildings sizes were not proportional to their area value [#3159](https://github.com/MaibornWolff/codecharta/pull/3159)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors to SonarImporter [#3149](https://github.com/MaibornWolff/codecharta/pull/3149)\r\n- Add title field to attribute descriptors [#3158](https://github.com/MaibornWolff/codecharta/pull/3158)\r\n\r\n## [1.112.0] - 2022-11-25\r\n\r\n### Added \u{1f680}\r\n\r\n- New calculation algorithm for treeMap that accounts for paddings and floor labels [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ribbon-bar shadow moving down when search is expanded [#3138](https://github.com/MaibornWolff/codecharta/pull/3138)\r\n- Fix loading errors of maps containing no programming-language-info [#3144](https://github.com/MaibornWolff/codecharta/pull/3144)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Documentation for new treeMap calculation algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Add attribute descriptors (metric descriptions) to some filters and importers [#3091](https://github.com/MaibornWolff/codecharta/pull/3091)\r\n\r\n## [1.111.0] - 2022-11-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description to every Custom View [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/201381274-a9a913d5-8f9d-4da6-9f26-6476e194ce3b.png)\r\n- Highlight files and folders with no area metric or an area metric value of zero in the search panel [#3126](https://github.com/MaibornWolff/codecharta/pull/3126)\r\n\r\n### Changed\r\n\r\n- Be aware, that all Custom Views generated with version 1.110.0 or older will be unusable by April 2023 [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Node Context-Menu in Map Tree View opening multiple times [#3135](https://github.com/MaibornWolff/codecharta/pull/3135)\r\n- Fix crashing on focusing or hovering un-rendered buildings [#3123](https://github.com/MaibornWolff/codecharta/pull/3123)\r\n- Fix showing changelog entries in the dialog when a new version is available [#3123](https://github.com/MaibornWolff/codecharta/pull/3129)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update supported latest browsers [#3125](https://github.com/MaibornWolff/codecharta/pull/3125)\r\n- Split e2e and unit test configs [#3128](https://github.com/MaibornWolff/codecharta/pull/3128)\r\n\r\n## [1.110.0] - 2022-11-04\r\n\r\n### Changed\r\n\r\n- Custom Views are now applicable even if maps or mode are different. Missing maps or map selection mode is displayed in the tooltip [#3090](https://github.com/MaibornWolff/codecharta/pull/3090)\r\n- Be aware, that all Custom Views generated with version 1.109.1 or older will be unusable by April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken link to Custom View documentation [#3101](https://github.com/MaibornWolff/codecharta/pull/3101)\r\n- Don\'t re-center map after every state change like changing area metric [#3109](https://github.com/MaibornWolff/codecharta/pull/3109)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Adjust Custom View API and maintain old Custom Views until April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n- Migrate codeMap.render.service, codeMap.label.service, codeMap.mouseEvent.service, codeMap.arrow.service, codeCharta.service, sharpnessMode.service, isLoadingFile.service, scaling.service and experimentalFeaturesEnabled.service to Angular [#3094](https://github.com/MaibornWolff/codecharta/pull/3094)\r\n- Extract tree map size into a const as this is never changed [3098](https://github.com/MaibornWolff/codecharta/pull/3098)\r\n- Migrate markedPackages.service, edges.service, blacklist.service, files.service and injector.service [3106](https://github.com/MaibornWolff/codecharta/pull/3106)\r\n- Refactor out `LoadInitialFileService` and fix with it loose Promise in tests [#3110](https://github.com/MaibornWolff/codecharta/pull/3110)\r\n- Migrate codeCharta.component, storeService.service and remove AngularJS dual boot from bootstrapping [#3114](https://github.com/MaibornWolff/codecharta/pull/3114)\r\n- Remove obsolete AngularJS dependencies [#3115](https://github.com/MaibornWolff/codecharta/pull/3115)\r\n\r\n## [1.109.1] - 2022-10-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links on new GitHub Page \'Docker Containers\' [#3089](https://github.com/MaibornWolff/codecharta/pull/3089)\r\n\r\n## [1.109.0] - 2022-10-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description and documentation to Custom View modal [#3085](https://github.com/MaibornWolff/codecharta/pull/3085)\r\n- Add a new button that links the height metric to the color metric so that the colour metric is automatically set to\r\n the selected height metric [#3058](https://github.com/MaibornWolff/codecharta/pull/3058)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/193291144-fdc73a15-2087-47e2-845b-05c666aec71d.png)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/194300920-60ce9fcd-0dd5-46ef-a90b-01d9a29205e6.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix interactive GitLogParser using wrong dialogue with repo-scan subcommand [#3073](https://github.com/MaibornWolff/codecharta/pull/3073)\r\n- Fix CodeCharta Analysis container exiting when detached [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Fix CodeCharta Analysis container not coming with the sonar-scanner pre-installed [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Rerender immediately after marking a folder with a color [#3067](https://github.com/MaibornWolff/codecharta/pull/3067)\r\n- Clicking the \'reset height metric settings\' button resets the number of top labels to the dynamic default value [#3066](https://github.com/MaibornWolff/codecharta/pull/3066)\r\n- Unfocus nodes when changing selected files, which prevents the app from crashing [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update Docker Publish Action in Release Pipeline [#3060](https://github.com/MaibornWolff/codecharta/pull/3060)\r\n- Write documentation for docker containers [#3063](https://github.com/MaibornWolff/codecharta/pull/3063)\r\n- Migrate isAttributeSideBarVisible.service, threeScene.service, threeCamera.service and threeStats.service to Angular [#3068](https://github.com/MaibornWolff/codecharta/pull/3068)\r\n- Migrate dialog.service to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Add documentation for new treeMap algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Migrate dialog.service to Angular [#3070](https://github.com/MaibornWolff/codecharta/pull/3070)\r\n- Migrate FocusedNodePathService, LayoutAlgorithmService, ThreeOrbitControlsService and ThreeViewerService to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Migrate updateAttributeTypes.service to Angular [#3082](https://github.com/MaibornWolff/codecharta/pull/3082)\r\n\r\n## [1.108.1] - 2022-09-29\r\n\r\n## Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update formatting in Docker Release Pipeline [#3059](https://github.com/MaibornWolff/codecharta/pull/3059)\r\n\r\n## [1.108.0] - 2022-09-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add new Analysis docker container, together with a docker-compose file that contains analysis, visualization and a\r\n SonarQube instance [#3057](https://github.com/MaibornWolff/codecharta/pull/3057)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- remove outdated Crococosmo, Understand and Jasome Importer from Analysis including its documentation [#3053](https://github.com/MaibornWolff/codecharta/pull/3053)\r\n\r\n## [1.107.0] - 2022-09-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Add subcommand to GitLogParser to run necessary git commands automatically [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n\r\n### Changed\r\n\r\n- Change default behaviour of GitLogParser to use new subcommands [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n- Set default value for displaying labels 1 per 100 buildings with a maximum of 10 labels [#3046](https://github.com/MaibornWolff/codecharta/pull/3046)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Uncheck the box when \'reset invert height\' icon is clicked [#3048](https://github.com/MaibornWolff/codecharta/pull/3048)\r\n- Update ReadMe and GitHub pages for MetricGardener [#3045](https://github.com/MaibornWolff/codecharta/pull/3045)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate codeMap.component to Angular with minor internal improvements [#3049](https://github.com/MaibornWolff/codecharta/pull/3049)\r\n- Remove threeUpdateCycle.service [#3050](https://github.com/MaibornWolff/codecharta/pull/3050)\r\n- Migrate metricData.service, edgeMetric.service, nodeMetricData.service and edgeMetricData.service to Angular [#3051](https://github.com/MaibornWolff/codecharta/pull/3051)\r\n- Migrate threeRenderer.service to Angular [#3052](https://github.com/MaibornWolff/codecharta/pull/3052)\r\n\r\n## [1.106.1] - 2022-09-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- CC-JSON Files not loaded on Safari browser [#3042](https://github.com/MaibornWolff/codecharta/pull/3042)\r\n- Show loading spinners while loading a file [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n- Prevent clicking on not opened metric options in ribbon bar [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n- Set cursor to pointer on color settings panel of delta mode [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Throttle rendering and migrate codeMap.preRender.service to Angular [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n\r\n## [1.106.0] - 2022-09-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add option to CSVImporter to specify the path column name [#3026](https://github.com/MaibornWolff/codecharta/pull/3026)\r\n\r\n### Changed\r\n\r\n- Stop asking the user to compress a file when printing to stdOut [#3024](https://github.com/MaibornWolff/codecharta/pull/3024)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix anongit script using the wrong whitespace, causing gitlogparser to fail [#3030](https://github.com/MaibornWolff/codecharta/pull/3030)\r\n- Reshow suspicious metrics badge when calculated data has changed [#2997](https://github.com/MaibornWolff/codecharta/pull/2997)\r\n\r\n## [1.105.0] - 2022-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to run MetricGardener before its parser if requested [#3015](https://github.com/MaibornWolff/codecharta/pull/3015)\r\n- Add missing documentation for MetricGardener importer [#3016](https://github.com/MaibornWolff/codecharta/pull/3016)\r\n\r\n### Changed\r\n\r\n- Increase the size of the close button to simplify closing the attribute sidebar [#3014](https://github.com/MaibornWolff/codecharta/pull/3014)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix console error when clicking switch button in delta mode [#3023](https://github.com/MaibornWolff/codecharta/pull/3023)\r\n- Fix broken images to new document pages about how using SonarQube [#3012](https://github.com/MaibornWolff/codecharta/pull/3012)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate tool bar component to Angular [#3020](https://github.com/MaibornWolff/codecharta/pull/3020)\r\n- Remove obsolete AngularJS IsPresentationModeService and ShowOnlyBuildingsWithEdgesService [#3005](https://github.com/MaibornWolff/codecharta/pull/3005)\r\n\r\n## [1.104.1] - 2022-08-31\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links to new document pages about how using SonarQube [#3009](https://github.com/MaibornWolff/codecharta/pull/3009)\r\n\r\n## [1.104.0] - 2022-08-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Copy-to-Clipboard-Button to paste the top 10 files with highest metric values [#2942](https://github.com/MaibornWolff/codecharta/pull/2942), [#2996](https://github.com/MaibornWolff/codecharta/pull/2995)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089603-ecfa8e31-8241-42a2-9954-2de554347381.png)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089577-5cd2eec0-5293-4083-b629-0e3c5621047c.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Correct file types now get appended to the name of the output file when using the interactive ccsh [#2914](https://github.com/MaibornWolff/codecharta/pull/2914)\r\n- Fix exit code handling and update integrationTest\'s golden_test.sh to cover all modules [#2988](https://github.com/MaibornWolff/codecharta/pull/2988)\r\n- Fix missing color pickers within edge metric options [#2993](https://github.com/MaibornWolff/codecharta/pull/2993)\r\n- Fix labels being displayed at an incorrect height and lines being disconnected from labels [#2991](https://github.com/MaibornWolff/codecharta/pull/2991)\r\n- Provides a list of metrics where no calculation could be performed in relation to a suspicion [#2996](https://github.com/MaibornWolff/codecharta/pull/2996)
    \r\n ![missing_values_suspicious_metrics](https://user-images.githubusercontent.com/31436472/187439165-77eda080-ceba-4bab-b077-4f6a2d6162b5.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate view cube component and its service to Angular [#2998](https://github.com/MaibornWolff/codecharta/pull/2998)\r\n\r\n## [1.104.0] - 2022-08-29\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate presentation mode button to Angular [#2938](https://github.com/MaibornWolff/codecharta/pull/2938)\r\n\r\n## [1.103.6] - 2022-08-17\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix bug in CompressionStreamHandler\'s input stream validation, that caused endless blocking reads from System.In [#2987](https://github.com/MaibornWolff/codecharta/pull/2987)\r\n\r\n## [1.103.5] - 2022-08-12\r\n\r\n### Changed\r\n\r\n- Update visualization readme file [#2932](https://github.com/MaibornWolff/codecharta/pull/2932)\r\n- Update the documentation for the usage of SonarQube [#2965](https://github.com/MaibornWolff/codecharta/pull/2965)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Add permission to upload-assets action [#2979](https://github.com/MaibornWolff/codecharta/pull/2979), [#2982](https://github.com/MaibornWolff/codecharta/pull/2982)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate download button to Angular [#2973](https://github.com/MaibornWolff/codecharta/pull/2973)\r\n\r\n## [1.103.3] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update Ubuntu images package list as part of the wine action [#2976](https://github.com/MaibornWolff/codecharta/pull/2976)\r\n\r\n## [1.103.2] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Highlight buildings on hover of file extension bar [#2969](https://github.com/MaibornWolff/codecharta/pull/2969)\r\n- Fix of the npm visualization installation under MacOS by version bumping nwjs [#2974](https://github.com/MaibornWolff/codecharta/pull/2974)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate file extension bar to Angular [#2968](https://github.com/MaibornWolff/codecharta/pull/2968)\r\n\r\n## [1.103.1] - 2022-08-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Change release action script in order to show changelog in release notes [#2970](https://github.com/MaibornWolff/codecharta/pull/2970)\r\n\r\n## [1.103.0] - 2022-08-09\r\n\r\n### Changed\r\n\r\n- Update links to demo website [#2961](https://github.com/MaibornWolff/codecharta/pull/2961)\r\n\r\n### Added \u{1f680}\r\n\r\n- Show tooltip with explanation for some metrics [#2957](https://github.com/MaibornWolff/codecharta/pull/2957)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix installation instructions for Apple Silicon [#2956](https://github.com/MaibornWolff/codecharta/pull/2956)\r\n- Fix release tag [#2954](https://github.com/MaibornWolff/codecharta/pull/2954)\r\n- Prevent dark map on unhover [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Zoom in/out time [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Fix webpack build package being corrupt if zipped under linux by changing the compression path [#2934](https://github.com/MaibornWolff/codecharta/pull/2934)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Load metric templates lazily and migrate them to Angular [#2960](https://github.com/MaibornWolff/codecharta/pull/2960)\r\n\r\n## [1.102] - 2022-08-04\r\n\r\n### Changed\r\n\r\n- Changed storing format for camera position within custom views and scenarios. Loading of created custom views or scenarios in old format will stop working in 2023 [2880](https://github.com/MaibornWolff/codecharta/pull/2880)\r\n- Add error messages for the user to "Add Scenario Dialog" [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n\r\n### Added \u{1f680}\r\n\r\n- Switch reference and comparison file by button click in delta mode [#2933](https://github.com/MaibornWolff/codecharta/pull/2933)\r\n ![image](https://user-images.githubusercontent.com/72517530/182630368-2d2b177d-8b4b-4850-8486-8d9afc7153c5.png)\r\n- Add display of changed files in delta mode (changed := metric values changed or list of applied metrics\r\n changed) [#2890](https://github.com/MaibornWolff/codecharta/pull/2890)\r\n ![image](https://user-images.githubusercontent.com/72517530/182631857-6192dea1-7a01-4684-90a6-d5da8615434a.png)\r\n- Load compressed files (cc.json.gz) via URL parameter [#2917](https://github.com/MaibornWolff/codecharta/pull/2917)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix SonarImporter requesting no metrics from SonarQube when the list of metrics was left empty [#2913](https://github.com/MaibornWolff/codecharta/pull/2913)\r\n- Exclude edge metrics from custom scenarios, when there are no edge metrics available. Before it was impossible to apply those custom configs [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n- Fix of NoSuchMethodException due to a call of method `readNBytes()` that is not available in Java 9 with replacement call `read()` [#2930](https://github.com/MaibornWolff/codecharta/pull/2930)\r\n- Keep selected metrics when excluding buildings [#2935](https://github.com/MaibornWolff/codecharta/pull/2935)\r\n- Update UI correctly when toggling between standard and delta mode [#2937](https://github.com/MaibornWolff/codecharta/pull/2937)\r\n\r\n## [1.101.1] - 2022-07-27\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Modify build script for GitHub pages in order to provide zipped maps.\r\n\r\n## [1.101.0] - 2022-07-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Transform a metric gardener json file into a code charta json file, that can be correctly visualized [#2675](https://github.com/MaibornWolff/codecharta/pull/2875)\r\n\r\n### Changed\r\n\r\n- Restore previous selected files when switching back from delta to standard mode [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n- Add more metrics that can be preselected when opening a cc.json file [#2907](https://github.com/MaibornWolff/codecharta/pull/2907) [#2908](https://github.com/MaibornWolff/codecharta/pull/2908)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Let file selection always show what is actual rendered within the map [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve performance by slightly delaying node-name popups and removing unused functionality [#2897](https://github.com/MaibornWolff/codecharta/pull/2897)\r\n\r\n## [1.100.0] - 2022-07-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add a description for the statements metric [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n\r\n### Changed\r\n\r\n- Select matching metric combination based on available metrics [#2862](https://github.com/MaibornWolff/codecharta/pull/2862)\r\n- Unify UI of buttons in toolbar [#2857](https://github.com/MaibornWolff/codecharta/pull/2857)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix resetting of color range within color settings panel [#2877](https://github.com/MaibornWolff/codecharta/pull/2877)\r\n- Fix resetting of colors in delta mode within color settings panel [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n- Restore global settings on page load again [#2878](https://github.com/MaibornWolff/codecharta/pull/2878)\r\n- Fix \'undefinded\' being displayed as a metric description when no description was available [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n- Fix windows standalone builds [#2881](https://github.com/MaibornWolff/codecharta/pull/2881)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate color settings panel to Angular [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n\r\n## [1.99.1] - 2022-06-22\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix packaging of standalone app for macOS and Windows [#2847](https://github.com/MaibornWolff/codecharta/pull/2847)\r\n- Fix dialogparser test of sourcecode parser[#2860](https://github.com/MaibornWolff/codecharta/pull/2860)\r\n\r\n## [1.99.0] - 2022-06-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the remaining parsers [#2833](https://github.com/MaibornWolff/codecharta/pull/2833) [#2836](https://github.com/MaibornWolff/codecharta/pull/2836) [#2842](https://github.com/MaibornWolff/codecharta/pull/2842) [#2843](https://github.com/MaibornWolff/codecharta/pull/2843) [#2846](https://github.com/MaibornWolff/codecharta/pull/2846)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix analysis bug where importers would get stuck before file output [#2854](https://github.com/MaibornWolff/codecharta/pull/2854)\r\n- Use correct icon for height metric chooser again [#2851](https://github.com/MaibornWolff/codecharta/pull/2851)\r\n- Close height metric option instead of making it only invisible on close [#2853](https://github.com/MaibornWolff/codecharta/pull/2853)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate changelog dialog to Angular [#2849](https://github.com/MaibornWolff/codecharta/pull/2849)\r\n- Migrate node path panel to Angular [#2855](https://github.com/MaibornWolff/codecharta/pull/2855)\r\n\r\n## [1.98.0] - 2022-06-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Add missing documentation for ccsh filters and csv exporter [#2831](https://github.com/MaibornWolff/codecharta/pull/2831)\r\n- Add support for compressed files to all analysis filters and to `check` validation [#2820](https://github.com/MaibornWolff/codecharta/pull/2820)\r\n\r\n### Changed\r\n\r\n- Update Readme file [#2837](https://github.com/MaibornWolff/codecharta/pull/2837)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Default selected metrics on file changes when default scenario is not applicable [#2828](https://github.com/MaibornWolff/codecharta/pull/2828)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove old references to single mode states and actions [#2574](https://github.com/MaibornWolff/codecharta/pull/2841)\r\n- Rename multiple mode references to standard [#2574](https://github.com/MaibornWolff/codecharta/pull/2848)\r\n\r\n## [1.97.0] - 2022-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the parsers [#2737](https://github.com/MaibornWolff/codecharta/pull/2737) [#2822](https://github.com/MaibornWolff/codecharta/pull/2822)
    \r\n ![m](https://user-images.githubusercontent.com/48621967/161549546-1463914e-c223-4912-acb1-db4e357e76c5.png)\r\n\r\n### Changed\r\n\r\n- Hide color metric range-slider in color metric options of ribbon bar in delta mode instead of disabling it [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Display max value of selected distribution metric in file extension bar [#2824](https://github.com/MaibornWolff/codecharta/pull/2824)\r\n- Display max value of selected metric in all metric chooser of ribbon bar [#2825](https://github.com/MaibornWolff/codecharta/pull/2825)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Handle invalid input of range-slider correctly [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Use real color range min value instead of 0 and take color range min value into account for calculating initial first third of positive color [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Fix range-slider in case of min value equal to max value [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Track not only changes to color metric options by slider but also by related input field [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Migrate center-map-button-component to Angular [#2809](https://github.com/MaibornWolff/codecharta/pull/2809)\r\n- Migrate the following components to Angular: globalSettingsButton.component, dialog.globalSettings.component, layoutSelection.component, sharpnessModeSelector.component, maxTreeMapFiles.component, maxTreeMapFiles.service, hideFlatBuildings.service, resetCameraIfNewFileIsLoaded.service [#2815](https://github.com/MaibornWolff/codecharta/pull/2815)\r\n- Migrate area-settings-panel-component to Angular [#2821](https://github.com/MaibornWolff/codecharta/pull/2821)\r\n\r\n## [1.96.0] - 2022-05-17\r\n\r\n### Changed\r\n\r\n- Remove all mentions of regular `.cc` `.json` `.gz` file extensions from file panel and sidebar [#2793](https://github.com/MaibornWolff/codecharta/pull/2793)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update slider of area metric options correctly on changes of related input field [#2787](https://github.com/MaibornWolff/codecharta/pull/2787)\r\n- Limit length of labels in legend panel [#2804](https://github.com/MaibornWolff/codecharta/pull/2804)\r\n- Prevent invalid input for margin in area metric options to be submitted [#2799](https://github.com/MaibornWolff/codecharta/pull/2799)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Introduce custom angular material theme [#2784](https://github.com/MaibornWolff/codecharta/pull/2784)\r\n- Migrate height-settings-panel-component [#2790](https://github.com/MaibornWolff/codecharta/pull/2790)\r\n- Fully migrate custom-config-component [#2760](https://github.com/MaibornWolff/codecharta/pull/2760)\r\n\r\n## [1.95.2] - 2022-04-19\r\n\r\n### Changed\r\n\r\n- Restrict upload in custom views menu to custom views. Custom views uploaded in the custom views menu are now allowed to have an arbitrary file suffix [#2773](https://github.com/MaibornWolff/codecharta/pull/2773)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate reset-settings-button-component to Angular [#2774](https://github.com/MaibornWolff/codecharta/pull/2774)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set files loaded via URL to multiple mode by default when delta mode is not selected [#2769](https://github.com/MaibornWolff/codecharta/pull/2769)\r\n\r\n## [1.95.1] - 2022-04-01\r\n\r\n### Changed\r\n\r\n- Display project name as file name (if not empty or blank) for loaded files via URL [#2767](https://github.com/MaibornWolff/codecharta/pull/2767)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fixes floor labels being drawn next to the map if margin was changed after map height is unequal to 1 [#2763](https://github.com/MaibornWolff/codecharta/pull/2763)\r\n- Fixes floor labels being stuck inside folder geometry when scaling [#2766](https://github.com/MaibornWolff/codecharta/pull/2766)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate metric-hovered-value-component to Angular [#2752](https://github.com/MaibornWolff/codecharta/pull/2752)\r\n\r\n## [1.95.0] - 2022-03-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Focused gradient option for color metric. Only applies a gradient between the two set borders. [#2750](https://github.com/MaibornWolff/codecharta/pull/2750)\r\n\r\n### Changed\r\n\r\n- Mark SCMLogParserV2 as stable and deprecate SCMLogParser for Git [2725](https://github.com/MaibornWolff/codecharta/pull/2725)\r\n - Rename SCMLogParserV2 to GitLogParser\r\n - Rename SCMLogParser to SVNLogParser and remove git parsing\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set initially correct attribute type of primary edge metric in attribute sidebar [#2731](https://github.com/MaibornWolff/codecharta/issues/2731)\r\n- Fix switching secondary metrics to median aggregation in attribute sidebar [#2630](https://github.com/MaibornWolff/codecharta/issues/2630)\r\n\r\n## [1.94.0] - 2022-03-21\r\n\r\n### Changed\r\n\r\n- Improve sonarimport help message [#2717](https://github.com/MaibornWolff/codecharta/pull/2717)\r\n- Remove blacklist entry on click of name as well [#2712](https://github.com/MaibornWolff/codecharta/pull/2712)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate add `custom config button` in ribbonbar to Angular [#2736](https://github.com/MaibornWolff/codecharta/pull/2736)\r\n\r\n## [1.93.0] - 2022-03-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Show amount of added and removed files in attribute sidebar when delta mode is enabled and a folder is selected [#2701](https://github.com/MaibornWolff/codecharta/pull/2701/files)
    \r\n ![xs](https://user-images.githubusercontent.com/72517530/157468180-4e2d052b-63b8-4040-bb22-b633a24d3b8a.png)\r\n\r\n### Changed\r\n\r\n- Suspicious metrics and risk profile are calculated for all selected maps [#2721](https://github.com/MaibornWolff/codecharta/pull/2721)\r\n- Close search panel and ribbon bar dropdowns on every outside click [#2692](https://github.com/MaibornWolff/codecharta/issues/2692)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix GameObjects importer edge cases [#2705](https://github.com/MaibornWolff/codecharta/pull/2705)\r\n\r\n## [1.92.1] - 2022-03-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix removing maps with long file names [#2696](https://github.com/MaibornWolff/codecharta/pull/2697)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate search-bar-component to Angular [#2686](https://github.com/MaibornWolff/codecharta/pull/2686)\r\n\r\n## [1.92.0] - 2022-03-01\r\n\r\n### Changed\r\n\r\n- Design and add a new CodeChara Logo [#2682](https://github.com/MaibornWolff/codecharta/pull/2682)
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/155682925-ecc9fe5d-77de-4927-9c6a-b1059ae9eead.png)\r\n- Risk profile is now calculated for every occurring programming languages in selected file(s)[#2679](https://github.com/MaibornWolff/codecharta/pull/2679)\r\n\r\n## [1.91.1] - 2022-02-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n## [1.91.0] - 2022-02-21\r\n\r\n### Changed\r\n\r\n- Refactor edge metric panel [#2670](https://github.com/MaibornWolff/codecharta/pull/2670)\r\n - Remove edge metric option \'none\'\r\n - By default, the first edge metric is enabled when map has edge metrics\r\n - Disable edge metric panel when loaded map has no edge metrics\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve loading times by reducing the size of JavaScript files [#2667](https://github.com/MaibornWolff/codecharta/pull/2667)\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate loading gifs to Angular and remove now unused `isLoadingMap.service` [#2668](https://github.com/MaibornWolff/codecharta/pull/2668)\r\n\r\n## [1.90.0] - 2022-02-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Parse and import GameObjects file structure into cc.json on upload [#2646](https://github.com/MaibornWolff/codecharta/pull/2646)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix flaky string comparison possibly due to puppeteer update [#2659](https://github.com/MaibornWolff/codecharta/pull/2659)\r\n- Fix show garbage bin next to the loaded maps [#2647](https://github.com/MaibornWolff/codecharta/pull/2647)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Run standalone version of CodeCharta in Node.js web target (and disable [#1314](https://github.com/MaibornWolff/codecharta/issues/1314)), so that local storage is available [#2637](https://github.com/MaibornWolff/codecharta/pull/2637)\r\n\r\n## [1.89.0] - 2022-02-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add area metric option to invert the amount of area, which is used for the nodes [#2626](https://github.com/MaibornWolff/codecharta/pull/2626)\r\n- Add button to clear search field [#2638](https://github.com/MaibornWolff/codecharta/pull/2638)
    \r\n ![xs](https://user-images.githubusercontent.com/48218172/151999974-3b8a7cca-52b2-4757-b3c0-e3b2e36ad237.png)\r\n\r\n### Changed\r\n\r\n- New buttons for selecting attribute types [#2631](https://github.com/MaibornWolff/codecharta/pull/2631)\r\n ![xs](https://user-images.githubusercontent.com/72517530/151762455-07e47bf5-18aa-4721-a60a-6dfee057e1e5.png)\r\n- Migrate context menu with slightly new layout touch to Angular. Migrated version prevents rendering outside of view [#1661](https://github.com/MaibornWolff/codecharta/issues/1661)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Remove delay of keeping a building highlight permanently [#2641](https://github.com/MaibornWolff/codecharta/issues/2641)\r\n\r\n## [1.88.0] - 2022-01-24\r\n\r\n### Changed\r\n\r\n- Rename custom configs to custom view [#2625](https://github.com/MaibornWolff/codecharta/pull/2625)\r\n- Combine single and multiple mode into standard mode [#2578](https://github.com/MaibornWolff/codecharta/pull/2578)\r\n ![xs](https://user-images.githubusercontent.com/72517530/150765617-2d66eb78-2c26-45c5-b63b-f84994ed88ab.png)\r\n- Improve file validation handling and provide more descriptive import messages [#2604](https://github.com/MaibornWolff/codecharta/pull/2604)\r\n ![xs](https://user-images.githubusercontent.com/48621967/150532207-f3b482ed-3a14-43c0-b1a3-80ac4c25d5e0.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n - Unfocus focused node only when map starts to load and not also when map has finished loading. This shouldn\'t change any behavior for the user [#2614](https://github.com/MaibornWolff/codecharta/pull/2614)\r\n\r\n## [1.87.1] - 2022-01-17\r\n\r\n### Changed\r\n\r\n- User-friendly renaming for display quality options [#2601](https://github.com/MaibornWolff/codecharta/pull/2601)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color of selected building in delta mode [#2603](https://github.com/MaibornWolff/codecharta/pull/2603)\r\n- Fix link to news page when clicking \'Know more\' button changelog dialog [#2602](https://github.com/MaibornWolff/codecharta/pull/2602)\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n## [1.87.0] - 2022-01-11\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate `unfocus-button-component` to Angular.\r\n\r\n### Changed\r\n\r\n- Remove suspicious metrics from custom map configurations [#2564](https://github.com/MaibornWolff/codecharta/pull/2564).\r\n- Add \'show/hide non-applicable CustomConfigs\' button to Custom Configs menu [#2591](https://github.com/MaibornWolff/codecharta/pull/2591).\r\n\r\n## [1.86.0] - 2021-12-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add 3D export feature for 3D printing [#2561](https://github.com/MaibornWolff/codecharta/pull/2561).
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/146173663-e0ea177e-6ed8-4ddb-bd11-410415541e9f.png)\r\n ![l](https://user-images.githubusercontent.com/48621967/146174397-42a6e475-ed2f-47c0-ba9c-4f8304d53399.png)\r\n\r\n### Changed\r\n\r\n- Replace all color pickers in the context of ongoing Angular migration [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing names of custom configs properly [#2557](https://github.com/MaibornWolff/codecharta/pull/2557).\r\n- Fix minor memory leak in context menu for code map buildings [#2565](https://github.com/MaibornWolff/codecharta/issues/2565).\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate legend panel to Angular [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n## [1.85.0] - 2021-12-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix delta values of secondary metrics not shown in delta mode within attribute side bar [#2539](https://github.com/MaibornWolff/codecharta/issues/2539).\r\n- Use icon tag instead of font awesome icon [#2537](https://github.com/MaibornWolff/codecharta/pull/2537).\r\n- Rename text for placeholder of metric chooser [#2547](https://github.com/MaibornWolff/codecharta/pull/2547)\r\n- Fix attribute type selector of primary edge metric not shown [#2528](https://github.com/MaibornWolff/codecharta/issues/2528).\r\n- Identical files and files with identical file names but different hashes can be loaded [#2548](https://github.com/MaibornWolff/codecharta/pull/2548)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `secondaryMetrics` from store and remove `secondaryMetrics.service` as the data can be derived from selected node [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Migrate `attribute-side-bar-component` to Angular [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Switch from Webpack 4 Loaders to Asset Module to load icons properly with css-loader 6.x [#2542](https://github.com/MaibornWolff/codecharta/pull/2542).\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Remove notification dialog when deleting a custom config [#2553](https://github.com/MaibornWolff/codecharta/pull/2553)\r\n\r\n## [1.84.1] - 2021-11-29\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix compressed files not being loaded ([#2524](https://github.com/MaibornWolff/codecharta/pull/2525))\r\n\r\n## [1.84.0] - 2021-11-22\r\n\r\n### Changed\r\n\r\n- Improved the UI and usability of the Suspicious Metrics Feature ([#2376](https://github.com/MaibornWolff/codecharta/pull/2494))
    \r\n - The Metrics and the Analysis are now split in two menus
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/141795078-bb856f53-1bc3-4c09-8be5-d031899835ae.png)\r\n - The Suspicious Metrics are now sorted with the Very High Risk on top
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141793011-1bfc0e19-bd3a-4bd2-af70-c3dd472821b6.png)\r\n - The bar in the analysis shows the percentages
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141791111-564778fa-b767-4ee4-b024-6856f1a79b4b.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing labels when weighted gradient on yellow buildings in color metric options are enabled ([#2511](https://github.com/MaibornWolff/codecharta/pull/2511))\r\n- Fix rounding of the sum of percentages in risk profile ([#2393](https://github.com/MaibornWolff/codecharta/pull/2516))\r\n- Fix legend panel not having a background ([#2422](https://github.com/MaibornWolff/codecharta/pull/2510))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `nodeSearch.service.ts` and `searchedNodePaths` from store as they can be derived from `searchPattern` ([#2495](https://github.com/MaibornWolff/codecharta/pull/2495)).\r\n- Refactor where metric data are calculated ([#2514](https://github.com/MaibornWolff/codecharta/pull/2514)).\r\n- Migrate `attribute-type-selector-component` to Angular ([#2519](https://github.com/MaibornWolff/codecharta/pull/2519)).\r\n\r\n## [1.83.1] - 2021-11-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading files from URL in Web Demo ([#2494](https://github.com/MaibornWolff/codecharta/pull/2494))\r\n\r\n## [1.83.0] - 2021-11-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix unwanted calculations of suspicious metrics when experimental features are disabled ([#2471](https://github.com/MaibornWolff/codecharta/pull/2471))\r\n- Fix UI issues in the configuration panel ([#2322](https://github.com/maibornwolff/codecharta/issues/2322))\r\n- Fix tooltip of sorting order button in map tree view showing wrong sorting order ([#2473](https://github.com/maibornwolff/codecharta/issues/2473))\r\n\r\n### Changed\r\n\r\n- Calculate MD5 checksum when generating .cc.json files ([#2411](https://github.com/MaibornWolff/codecharta/pull/2450))\r\n\r\n## [1.82.0] - 2021-10-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix what\'s new section including the last opened version ([#2447](https://github.com/MaibornWolff/codecharta/pull/2453))\r\n- Fix unfocus button text not showing correctly ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n\r\n### Changed\r\n\r\n- Folders in the Folder structure view of the top left come now always before any files, regardless of the sort order.\r\n\r\n## [1.81.0] - 2021-10-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color picker not being usable ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n- Fix Changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/135866024-ee06119a-1a62-4912-90df-ac3aa9216608.PNG)\r\n- Fix memory and performance issues related to drawing labels on floors/folders ([#2348](https://github.com/MaibornWolff/codecharta/issues/2348)).\r\n- Hides legend block if label description is not available and adds new metric descriptions ([#2377](https://github.com/maibornwolff/codecharta/issues/2377)).\r\n\r\n## [1.80.0] - 2021-10-04\r\n\r\n### Added \u{1f680}\r\n\r\n- Adds feature to display building colors as a gradients ([#2327](https://github.com/MaibornWolff/codecharta/issues/2327)).\r\n - "Weighted Gradient" only mixes colors in a small interval around the preset values.\r\n - "True Gradient" mixes colors from the 0 to the highest value, the two preset color range values determine the balance.\r\n - "Absolute" represents the old behaviour without gradients.
    \r\n ![l](https://user-images.githubusercontent.com/42114276/134924267-245c65c9-2893-43a8-9a0a-17e3182bf15a.JPG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken file/node search #2389\r\n- Fix changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))\r\n\r\n## [1.79.0] - 2021-09-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric descriptions to the frontend and show a translation next to the entry ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))
    \r\n \r\n- An option has been added to the global settings to enable copying screenshots to clipboard instead of saving them in a file ([#2326](https://github.com/MaibornWolff/codecharta/issues/2326))
    \r\n ![xl](https://user-images.githubusercontent.com/57844849/131342771-a3c637e3-8241-49aa-8d51-71e3a8d38aef.png)\r\n- Add changelog guidelines ([#2358](https://github.com/MaibornWolff/codecharta/pull/2358))\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/pull/2342))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/131360878-a8e1ef40-7f73-4de7-8b3f-4c8dc21448da.PNG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken method call in screenshot feature.\r\n- Improve changelog entries.\r\n\r\n### Changed\r\n\r\n- Changing the background color and remove "outgoing" and "incoming" edges from the legend, if not applicable ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))\r\n- Improve the user experience for the AI Feature "Suspicious Metrics and Risk Profiles" and enable it for any programming language ([#2362](https://github.com/MaibornWolff/codecharta/pull/2362))
    \r\n ![m](https://user-images.githubusercontent.com/26900540/133250867-adf4583d-9d0e-4f81-b8a7-1407b93d9f40.png)\r\n\r\n## [1.78.0] - 2021-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/issues/1315))\r\n- Add documentation for SCMLogParserV2 ([#1349](https://github.com/maibornwolff/codecharta/issues/1349))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Empty temporary label during hovering ([#2328](https://github.com/maibornwolff/codecharta/issues/2328))\r\n- Show the screenshot hotkey in the screenshot title ([#2323](https://github.com/maibornwolff/codecharta/issues/2323))\r\n- Improved rendering performance ([#2345](https://github.com/MaibornWolff/codecharta/pull/2345))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update GH-Pages and visualization dependencies ([#2356](https://github.com/maibornwolff/codecharta/issues/2356))\r\n\r\n## [1.77.0] - 2021-07-30\r\n\r\n### Added \u{1f680}\r\n\r\n- The "Color Metric Options" panel and "Legend" panel display the maximum value of the selected metric instead of infinite. ([#1520](https://github.com/maibornwolff/codecharta/issues/1520))\r\n- Mark color-section as unimportant in delta mode ([#769](https://github.com/maibornwolff/codecharta/issues/769))\r\n\r\n### Changed\r\n\r\n- Small ui improvements added. ([#1881](https://github.com/MaibornWolff/codecharta/issues/1881))\r\n- Numbers/Percentages always show in the distribution bar([#1540](https://github.com/MaibornWolff/codecharta/issues/1540))\r\n - Toggle between percentage and absolute numbers by clicking anywhere on the (expanded) distribution bar.\r\n - The old expanded distribution bar is now accessible through a button.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is no longer possible to exclude all files on the map ([#901](https://github.com/MaibornWolff/codecharta/issues/901))\r\n\r\n## [1.76.0] - 2021-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom metric scenarios which include the \'Color-Metric\' (rloc) will now also save any changes made to the color scheme.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance improvements when loading new files. ([#1312](https://github.com/maibornwolff/codecharta/issues/1312))\r\n\r\n## [1.75.0] - 2021-07-05\r\n\r\n### Added \u{1f680}\r\n\r\n- Imported files are now compressed by default. Use the -nc parameter to uncompress the files. ([#1702](https://github.com/maibornwolff/codecharta/issues/1702))\r\n- Export the current view as a png image by using "Ctrl+Alt+S" or clicking the corresponding button ([#674](https://github.com/MaibornWolff/codecharta/issues/674))\r\n- Show only labels of buildings according to a chosen color ([#1347](https://github.com/MaibornWolff/codecharta/issues/1347))\r\n- New buttons to reset the color hex values and color metric thresholds separately ([#1613](https://github.com/MaibornWolff/codecharta/issues/1613))
    \r\n ![l](https://user-images.githubusercontent.com/50167165/121889295-5b071780-cd19-11eb-87ef-aba0ab0c6c09.png)\r\n\r\n### Changed\r\n\r\n- Metric aggregations now work as intended and are available from the sidebar when selecting folders ([#1953](https://github.com/MaibornWolff/codecharta/issues/1953))\r\n- Opening new files does no longer remove old ones.\r\n - Already loaded files can be individually removed.\r\n - The \'Multiple\' view will select the latest files.
    \r\n ![l](https://user-images.githubusercontent.com/50167165/123071234-c6856f00-d414-11eb-8326-e25f614e75d7.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is now possible to rotate the map by rotating the view cube ([#353](https://github.com/MaibornWolff/codecharta/issues/353))\r\n\r\n## [1.74.0] - 2021-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- SonarImport: SonarQube 8.8 support. Older versions are still supported.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Only show labels for building included in the search\r\n- Color slider not initialized correctly ([#1592](https://github.com/MaibornWolff/codecharta/issues/1592))\r\n\r\n## [1.73.0] - 2021-05-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Improve descriptions ([#1879](https://github.com/MaibornWolff/codecharta/issues/1879))\r\n

    \r\n ![m](https://user-images.githubusercontent.com/57844849/115393175-b2897b00-a1e1-11eb-8601-d2128f3469a3.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Excluding in delta mode is broken ([#1578](https://github.com/MaibornWolff/codecharta/issues/1578))\r\n (Inclusion and exclusion of files using wildcard searches in the flatten and exclude operations)\r\n- Fix labels and lines missing a connection in some cases([#1716](https://github.com/MaibornWolff/codecharta/issues/1716))\r\n- Ribbons resizing when expanding ([#1952](https://github.com/MaibornWolff/codecharta/issues/1952))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix breaking changes with newest three-js version([#1877](https://github.com/MaibornWolff/codecharta/issues/1877))\r\n\r\n## [1.72.0] - 2021-04-22\r\n\r\n### Added \u{1f680}\r\n\r\n- Hints for Global Settings ([#1715](https://github.com/MaibornWolff/codecharta/issues/1715))\r\n- Indicate total nodes and excluded / flattened nodes in file explorer ([#1880](https://github.com/MaibornWolff/codecharta/issues/1880))\r\n- Add path to node context menu ([#1667](https://github.com/MaibornWolff/codecharta/issues/1667))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Made the header semi responsive ([#1037](https://github.com/MaibornWolff/codecharta/issues/1037))\r\n\r\n## [1.71.2] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Fixed web visualization in github\r\n\r\n## [1.71.1] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.71.0] - 2021-03-16\r\n\r\n### Changed\r\n\r\n- Disable unready AI function\r\n- Fix linter errors\r\n- Fix editorconfig\r\n\r\n## [1.70.2] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Project naming for Docker deployment\r\n\r\n## [1.70.1] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.70.0] - 2021-03-09\r\n\r\n### Changed\r\n\r\n- Render on demand ([#1728](https://github.com/MaibornWolff/codecharta/issues/1728))\r\n\r\n### Fixed\r\n\r\n- Memory leaks\r\n\r\n## [1.69.0] - 2021-02-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Added WebGL FXAA antialias & PixelRatio Options in order to achieve better resolution on high dpi displays(https://github.com/MaibornWolff/codecharta/pull/1551).

    \r\n ![option dialog](https://user-images.githubusercontent.com/74670211/106582136-f4404900-6543-11eb-8f5b-5e1ec47457c7.png)\r\n There are 4 available modes:\r\n - **standard mode**: the pixel density is only applied to the small cube with standard browser aliasing\r\n - **pixel ratio without aliasing**: no antialiasing is used\r\n - **pixel ration with FXAA**: Nvidia FXAA antialiasing shader is used as an alisaing technique. this has better perfromance the standard browser aliasing aliasing\r\n - **pixel ration with MSAA**: this is the best aliasing quality, slower then FXAA.\r\n- Added GPU Stats (only in dev mode)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unfocus now respects the focus depth ([#1099](https://github.com/MaibornWolff/codecharta/issues/1099))\r\n- Track anonymous usage data also for older CodeCharta API versions and fix some minor bugs.\r\n\r\n## [1.68.0] - 2021-02-08\r\n\r\n### Added \u{1f680}\r\n\r\n- A new experimental feature has been added to track anonymous metadata of a currently loaded map.\r\n - Neither the map name nor file names will be tracked but anonymous metric values and statistics like (average, min, max).\r\n - The tracked data will not be sent to a server yet. Instead, it can be downloaded as a json file in the Global Settings for now.\r\n - It is planned to send the anonymous data to a server in the future, so that we can collect tracking data automatically.\r\n - ![example of new feature](https://user-images.githubusercontent.com/26900540/106896300-ac5f2480-66f1-11eb-8096-246d1733c0ee.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Errors occurred in delta mode if names of root folders were different\r\n- Switching maps in delta mode now shows the differences between the maps ([#1606](https://github.com/maibornwolff/codecharta/issues/1606))\r\n- Label over hovered building not shown for height Metric value of zero ([#1623](https://github.com/MaibornWolff/codecharta/issues/1623))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- CodeChartaStorage class has been introduced to dynamically store values either on disk (standalone version) or in the localStorage (web version). This is the first step to solve [#684](https://github.com/MaibornWolff/codecharta/issues/684).\r\n\r\n## [1.67.0] - 2021-01-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow opening files from local drive by double clicking on the buildings or clicking on their names ([#1314](https://github.com/MaibornWolff/codecharta/issues/1314))\r\n - Only available in the standalone version!\r\n - files are opened in associated third-party applications\r\n - web-links are opened in a browser window\r\n- Allow customized color in the node context menu ([#1556](https://github.com/MaibornWolff/codecharta/issues/1556)).\r\n\r\n [!example of new feature #1556](https://user-images.githubusercontent.com/3596742/104302048-a007f300-54c8-11eb-86c1-287483884783.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- fixed wrong max tree map visibility ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- fixed incorrect label placement on delta maps that share no common nodes ([#1686](https://github.com/MaibornWolff/codecharta/issues/1686))\r\n\r\n## [1.66.0] - 2021-01-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow color of buildings to be customizable in the ribbon bar and in the legend. Colors of edges are now customizable as well ([#1533](https://github.com/MaibornWolff/codecharta/issues/1533))

    \r\n ![example of new feature](https://user-images.githubusercontent.com/3596742/103547861-3c1c7380-4ea5-11eb-8df2-541caf65b9df.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Global settings not reverting to default ones ([#1632](https://github.com/MaibornWolff/codecharta/issues/1632))\r\n- Maximum treemap files shown in squarified node ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- Wrong folder names and colors in legend when using the highlight folder feature ([#1555](https://github.com/MaibornWolff/codecharta/issues/1555))\r\n- Temporary labels are placed at the wrong height for scaled buildings ([#1618](https://github.com/MaibornWolff/codecharta/issues/1618))\r\n- Visible labels will disappear or placed lower for scaled buildings ([#1619](https://github.com/MaibornWolff/codecharta/issues/1619))\r\n- Unnecessary break line for secondary metrics ([#1093](https://github.com/MaibornWolff/codecharta/issues/1093))\r\n\r\n## [1.65.0] - 2020-12-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight label while hovering over building, draw a temporary label for hovered buildings that have none ([#1529](https://github.com/MaibornWolff/codecharta/issues/1529))\r\n- Integrated streetlayout ([#904](https://github.com/MaibornWolff/codecharta/issues/904))\r\n ![cc_street_ccv](https://user-images.githubusercontent.com/63230711/78872405-87eed900-7a49-11ea-984a-c0ef738779b9.png)\r\n In street layout file nodes are displayed as buildings and directories are displayed as streets. A street layout has the advantage of a more apparent directory structure and stable positioning of nodes after metric changes.\r\n two different Street layout are integrated : - StreetLayout : as described above. - TMStreet : a combination of street layout and squarified layout.\r\n\r\n### Changed\r\n\r\n- The button to see excluded buildings is now merged into the flattened button. Excluded and flattened buildings can now be seen by opening the building with the eye slash icon ([#1543](https://github.com/MaibornWolff/codecharta/issues/1543))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Height scaling not applied to buildings ([#1595](https://github.com/MaibornWolff/codecharta/issues/1595)))\r\n- Fixed multiple label positioning/scaling bugs\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- e2e flaky test ([#1322](https://github.com/MaibornWolff/codecharta/issues/1322))\r\n\r\n## [1.64.0] - 2020-12-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Download and upload Custom Configurations is now possible ([#1472](https://github.com/MaibornWolff/codecharta/issues/1472))\r\n\r\n - Open the Custom Configs menu in the toolbar on top of the map\r\n - Next to the `plus` Button you can see two new buttons: Upload and download.\r\n - Download: If you already have added Custom Configs you can download them by clicking the download button.\r\n - Custom Configs which are applicable for the currently selected map(s) will be downloaded as `.cc.config.json` files.\r\n - Upload: Click the upload button and specify your Custom Config file (`.cc.config.json`)\r\n - Already existing Custom Configs will be skipped.\r\n - Different Custom Configs with same names will be renamed.\r\n - Another way to upload your Custom Configs is to upload a `.cc.json` file together with one or multiple `.cc.config.json` files using the default `Load .cc.json map` button in the upper left corner.\r\n - The Configs are stored to the local storage of your browser.\r\n - If a limit of `768KB` is exceeded you will see a warning when trying to add a new Custom Config.\r\n - You can click the displayed "download and purge" button to download/backup at least 6 months old Configs and then purge them from the local storage to make space for new ones.\r\n - If we cannot purge any Configs, you might have to do that by your own by deleting specific Configs manually.\r\n\r\n### Changed\r\n\r\n- Increase possible margin size ([#1490](https://github.com/MaibornWolff/codecharta/pull/1490))\r\n - change displayed margin value from % to pixel\r\n - change dynamic margin value to a default margin value that should fit the map\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Re-enabled color selection for folders and on hover ([#1544](https://github.com/MaibornWolff/codecharta/pull/1544))\r\n- Labels do not take delta height into account ([#1523](https://github.com/MaibornWolff/codecharta/issues/1523))\r\n- The calculation of the map resolution scale factor was wrong ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n - The factor is used to decrease the map resolution especially for big maps to avoid performance issues.\r\n - Now only the selected maps will be considered for the calculation. Unselected maps will be skipped.\r\n\r\n## [1.63.0] - 2020-11-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Add the folder name onto the floor on the first 3 layers to get a better overview of the map ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n- UX Improvements related to labels allowing for user interaction #1404\r\n - Labels can be hovered, hovering their corresponding node\r\n - Selecting a label will select the corresponding node\r\n - Hovering a label will remove its transparency and move towards the user:\r\n - If other labels obstruct the hovered label it will move to the front\r\n - Increased the transparency of other labels; this makes it easier to distinguish the hovered label\r\n - Increase the amount of labels to 250.\r\n- Show file count of folders in Attribute-Side-Bar ([#1255](https://github.com/MaibornWolff/codecharta/issues/1255)):\r\n ![img showing file count of folder](https://user-images.githubusercontent.com/3596742/100371884-be915800-3008-11eb-89f5-ed57c62680cc.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Buildings are flattened when delta is active #824.\r\n- Selected Building now stays highlighted when map is rotated #1498\r\n\r\n## [1.62.0] - 2020-11-12\r\n\r\n### Added \u{1f680}\r\n\r\n- A new option in the Global Settings allows to enable/disable experimental features #1318\r\n - Click on the settings button in the upper right corner to open the Global Settings dialog.\r\n - Activate/Deactivate the new option "Enable Experimental Features"\r\n - The features will be shown/hidden accordingly\r\n- "CustomViews", the first experimental feature has been added #1318\r\n\r\n - It must be enabled by activating the new option in the Global Settings dialog as mentioned before.\r\n - You can save your current map configurations to replay/restore them later.\r\n - A saved CustomView can only be applied for it\'s original map.\r\n - This will enable you to be more efficient in analizing projects by switching between different CustomViews.\r\n\r\n- NodeContextMenu now contains option to keep buildings highlighted #1323\r\n\r\n- Fixed Folder algorithm supports nested (parent-child) Fixed Folders #1431\r\n 1. Define children of a Fixed Folder also as Fixed Folders by adding the `fixedPosition` attribute manually in `.cc.json`.\r\n 1. All children of a parent Fixed Folder must be fixed.\r\n 1. Read the how-to guide for further information: https://maibornwolff.github.io/codecharta/how-to/fixate_folders_with_a_custom_cc_json/\r\n\r\n### Changed\r\n\r\n- Improved search\r\n\r\n 1. Not providing any star in the search bar from now on expects the input to\r\n be a wildcard search. Thus, files are going to match paths that have\r\n leading or following characters. E.g., `oo` is going to match\r\n `/root/foobar`.\r\n 1. To use the explicit former search mode, wrap the search entry in quotes as\r\n in: `"oo"`. This would only match filenames that are exactly `oo`.\r\n 1. The search field accepts multiple search entries at once, separated by\r\n commata. `foo,bar` is going to search for both `*foo*` and `*bar*` and\r\n marks all matched files accordingly.\r\n 1. It is possible to invert the search with a leading exclamation mark as in\r\n `!foobar`. That will match any file that does not match `*foobar*`. It is\r\n only possible to invert the complete input, not individual search entries.\r\n 1. Whitespace handling changed to ignore leading whitespace.\r\n\r\n- Distribution metric #1188\r\n\r\n 1. set rloc to default distribution metric, showing language percentages for real lines of code, if available. Else set to unary to show language distribution over files\r\n\r\n- Improved file sorting in the file overview of the search bar\r\n - Numbers are sorted naturally\r\n - Characters are compared with their base character (e.g., `a` is now next to `\xe1`).\r\n- Label metric not shown by default anymore\r\n\r\n## [1.61.0] - 2020-10-30\r\n\r\n### Changed\r\n\r\n- Disable highlighting buildings during map movement #1432\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- File tree/flattened/excluded overlay visualization is buggy #1269\r\n- EdgePreview on Map broken when selecting zero #1276\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Schedules and merge retries of dependabot dependency updates changed\r\n\r\n## [1.60.2] - 2020-10-24\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Mouse cursor flickering #1170\r\n- Fix flipping map when clicking any option in the toolbar #1410\r\n- Fix edge metric not working correctly\r\n\r\n## [1.60.1] - 2020-10-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Issue with first start without an internet connection not working#1266\r\n- Issue with ribbon bar sizes for opened cards #1035\r\n\r\n## [1.60.0] - 2020-10-16\r\n\r\n### Added \u{1f680}\r\n\r\n- Parsing feedback with progressbar and probable ETA for parsers and SonarImporter #847\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n- Indicate the metric name next to a shown value in a new line on labels #1035\r\n- Checkboxes to display metric names and values and to display node names on labels #1035\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n\r\n### Changed\r\n\r\n- Label design #1035\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- First start without an internet connection of standalone not working #1266\r\n- Comparing a map in delta mode shows the correct differences\r\n- This mainly applies to maps compared with itself while it also fixes some other minor miscalculations\r\n- File extensions detection is improved\r\n- Zooming in and out the map will now close the node context menu #1324\r\n - Improved and simplified event handling in NodeContextMenu component\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improved performance of multiple operations (e.g., delta mode).\r\n\r\n## [1.59.0] - 2020-10-09\r\n\r\n### Added \u{1f680}\r\n\r\n- New EXPERIMENTAL SCMLogParser version\r\n- Improved performance around 300% when parsing CodeCharta\r\n- Improved memory usage\r\n- Fixed issue with old parser creating incorrect nodes in CodeCharta #871\r\n- ATTENTION: the parser is experimental, therefore some potential issues might remain, e.g. potentially an unhandled edge case when parsing node\r\n- To use the new parser a reversed git log is needed, as well as a git file list, refer to `ccsh scmlogparserv2 -h` for additional information\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Color-Metric slider is set and activated in the map accordingly to the released sliderbutton #1319\r\n- Deselcting a building will instantly dehighlight the buildings which were connected through edges #890\r\n\r\n## [1.58.1] - 2020-10-02\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Showing wrong edges when hovering a building after selecting one #1137\r\n\r\n## [1.58.0] - 2020-10-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Add active color metric to the top of the legend panel #1278\r\n- SourceCodeParser: Java 14 Support #1277\r\n\r\n## [1.57.4] - 2020-09-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Metric-Settings-Panels closed when clicking an option inside the panel #1258\r\n- Improve loading and rendering maps performance\r\n\r\n## [1.57.3] - 2020-09-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve overall performance for loading and rendering maps\r\n- Improve error messages when a file can\'t be loaded with the URL parameters\r\n\r\n## [1.57.2] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- New API version 1.2 not set correctly in analysis\r\n\r\n## [1.57.1] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Validation of unique filenames not checking for the complete path and instead throwing an error on duplicate filename\r\n\r\n## [1.57.0] - 2020-09-11\r\n\r\n### Added \u{1f680}\r\n\r\n- `fixedPosition` as a new property in the `cc.json` that allows to fixate folders in the map\r\n\r\n### Changed\r\n\r\n- `cc.json` version updated to `1.2`\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Compressed `cc.jsons (.gz) not marked as accepted when selecting a file in the file chooser\r\n\r\n### Docs \u{1f50e}\r\n\r\n- [How-To: Fixate Folders in the `cc.json`](https://maibornwolff.github.io//codecharta/how-to/fixate_folders_with_a_custom_cc_json/)\r\n- CC-Json-API changes\r\n\r\n## [1.56.0] - 2020-09-04\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve performance when switching to multiple or delta mode when edges are available\r\n- Scenario with EdgeMetric is only appliable when EdgeMetric is existing for the Map #1201\r\n- Starting standalone version results in infinite loading loop #1202\r\n- Expanded metric selection will close when clicking anywhere outside of that selection #1036\r\n\r\n## [1.55.0] - 2020-08-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Cursor indicator for different mouse actions #1042\r\n\r\n### Changed\r\n\r\n- Edge-Metrics sorted by name now instead of number of incoming and outgoing edges\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Number of incoming and outgoing edges not visible when hovering over a node #1095\r\n- Highlighting buildings in multiple mode now works #956\r\n\r\n## [1.54.0] - 2020-08-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Opening NodeContextMenu in the tree-view marks the node until it is closed #1068\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Missing Sonarcloud metrics in demo\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Added note how to fix missing `sh` command issue when running integration tests on Windows\r\n\r\n## [1.53.0] - 2020-08-14\r\n\r\n### Changed\r\n\r\n- NodeContextMenu will show up when releasing the right-mouse-button now #1027\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- NodeContextMenu showing up after moving the mouse while holding right-mouse-button #1027\r\n\r\n## [1.52.0] - 2020-08-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for Tokei 12 new JSON schema #1103\r\n\r\n### Changed\r\n\r\n- Rename master branch to main for a more inclusive naming #1117\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- After loading an invalid file the filechooser pops up again, so that the user can choose a valid file #1021\r\n- Quality gates on sonarcloud.io are red #879\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Moved developer guides to our [gh-pages](https://maibornwolff.github.io/codecharta/) #986\r\n\r\n## [1.51.0] - 2020-07-24\r\n\r\n### Added \u{1f680}\r\n\r\n- File chooser now accept ".json" files only to avoid accidentally loading incorrect files #1094\r\n- Lots of tooltips #1030\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Blacklisting a building would sometimes not update the map #1098\r\n- Changes made after opening the filechooser and closing it won\'t be applied #875\r\n- Edge metric list not always updated correctly when loading a new file #1106\r\n\r\n## [1.50.0] - 2020-07-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Line between scenario indicator and remove button #1069\r\n\r\n### Changed\r\n\r\n- Reduced transition time when opening or collapsing parts of the ribbon bar #1043\r\n- Search Panel will open now when clicking in the search field and collapse when clicking somewhere else #1071\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Opening the same file again will now reload the file and reset the application #1032\r\n- Improve render performance by persisting color conversions #1034\r\n- Sorting in tree-view not being applied #1040\r\n\r\n## [1.49.1] - 2020-07-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance significantly when switching between single, multiple and delta\r\n- Color-Range-Slider sometimes misbehaved when loading a new map or excluding buildings #926\r\n\r\n## [1.49.0] - 2020-06-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom scenarios can be created and saved through the scenario menu #675\r\n- Importer and parser documentation can now be found on the github Website #954\r\n- Output of sourcemonitor can now be compressed with the compression flag\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump angular from 1.7.9 to 1.8.0 in /visualization #995\r\n\r\n## [1.48.0] - 2020-06-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Support of compressed cc.json files. Files can be compressed in the analysis #848\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance of several importers #846\r\n\r\n## [1.47.1] - 2020-05-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Attribute-Side-Bar being invisible\r\n\r\n## [1.47.0] - 2020-05-02\r\n\r\n### Added \u{1f680}\r\n\r\n- When hovering over a folder, all buildings inside it will be highlighted as well #694\r\n\r\n### Changed\r\n\r\n- Rename the button Show-Complete-Map button to Unfocus #642\r\n- Move the Unfocus button (visible when right-clicking a focused node) to the node-context-menu #948\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Generating a delta map with merged empty folders in between is now working correctly #730\r\n- Reduced time when opening a new file #932\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump jquery from 3.4.0 to 3.5.0 in /visualization #944\r\n\r\n## [1.46.1] - 2020-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Error dialogs in case of validation or api version issues #610\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved overall rendering performance of larger maps by roughly 40% #836\r\n\r\n## [1.45.5] - 2020-04-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Median symbol for aggregated relative metrics #365\r\n- AttributeTypes for tokeiImporter and SCMLogParser #365\r\n- Ellipsis button in TreeView list when hovering a node to access context menu #780\r\n- Show gray eye-icon next to the ellipsis-button to indicate a flattened node #780\r\n- Attribute Type selector in the metric dropdowns for edges and nodes\r\n\r\n### Changed\r\n\r\n- Metrics with AttributeType relative are now aggregated using the median #365\r\n- Showing absolute number of files instead of relative number when hovering list item in TreeView #780\r\n- Clicking a hovered list item inside the TreeView opens folders #780\r\n- Color node name in gray when flattened #780\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Eye-icon in TreeView list to flatten a node #780\r\n- Option to focus a node when clicking the node name inside the TreeView #780\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Consistency of AttributeTypes representation #365\r\n- Wrong file description for tokeiimporter\r\n- Improved search performance #837\r\n\r\n## [1.44.0] - 2020-03-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Dialog to select between different sorting options #388\r\n- Button to reverse the current selected sorting #388\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Show file selection in toolBar after excluding or hiding a node instead of an empty toolBar #896\r\n\r\n## [1.43.0] - 2020-03-20\r\n\r\n### Changed\r\n\r\n- Selectable metrics will only contain metrics from the visible maps\r\n- Closing the attribute-side-bar by clicking somewhere in the map will now be triggered on mouse up instead of mouse down\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Search-panel opening for a short duration when importing a new file\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix vulnerability with nokogiri <1.10.8\r\n\r\n## [1.42.3] - 2020-03-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Loading Gif not displayed when preparing to render a new map #857\r\n- Selecting zero files in Multiple mode will not trigger the 3D CodeMap creation\r\n- Metrics in the dropdown menu now show the correct max value for the visible maps #876\r\n\r\n## [1.42.2] - 2020-02-14\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Replaced non standard `[[` in sh scripts #849\r\n- Improved performance for loading a new file #836\r\n- Marked Packages are loaded from files #798\r\n\r\n## [1.42.1] - 2020-02-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- GC Overhead Limit (OutOfMemory Exception) during analysis of large SCMLogs fixed #845\r\n\r\n## [1.42.0] - 2020-01-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for camel and kebab-case for ccsh arguments #772\r\n- RawTextParser for analysis #660\r\n- IndentationLevel as metric for RawTextParser #660\r\n- Show additional Pairing Rate of Selected Building, simultaneously to the currently hovered Buildings #736\r\n\r\n### Changed\r\n\r\n- Options of the ccsh are now consistently in kebab-case #772\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Path prefix handling in tokeiimporter #841\r\n\r\n## [1.41.8] - 2020-01-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Project name parameters in the ccsh #773\r\n\r\n## [1.41.6] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Deployment\r\n\r\n## [1.41.1] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance of loading maps with edges improved #823\r\n- Calculation of other Group for fileExtensionBar #768\r\n- Remove focus of UI elements when they are not visible anymore\r\n\r\n## [1.41.0] - 2019-12-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Show the relative number of files a folder includes compared to the project in the TreeView #380\r\n- Show the number of files a folder includes in the TreeView when hovering #380\r\n- When the File Extension Bar is hovered, all buildings corresponding to that extension are highlighted #545\r\n- Toggle between percentage and absolute values when clicking the file extension details section #545\r\n- Sum hovered delta values for folders #781\r\n\r\n## [1.40.0] - 2019-11-22\r\n\r\n### Changed\r\n\r\n- Replaced Blacklist Hide with Flatten option #691\r\n- Flattened buildings are not hidden by default #691\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump @types/three from 0.89.12 to 0.103.2 in /visualization #453\r\n- Bump angularjs-slider from 6.5.1 to 7.0.0 in /visualization #454\r\n- Bump webpack from 3.12.0 to 4.41.2 in /visualization #436\r\n- [Security] Bump angular from 1.7.7 to 1.7.9 in /visualization #800\r\n\r\n## [1.39.0] - 2019-11-15\r\n\r\n### Added\r\n\r\n- Progress indicator for SonarImporter #544\r\n\r\n### Changed\r\n\r\n- New style for hovered metric values #696\r\n- Redesigned slider labels in ribbonBar sections #696\r\n- Shortened ribbonBar sections #696\r\n\r\n### Fixed\r\n\r\n- Missing pictures and broken links in docs #785\r\n- SCMLogParser is now more resilient to unusual SVN commit messages #763\r\n\r\n## [1.38.1] - 2019-11-13\r\n\r\n### Added\r\n\r\n- New github-pages https://maibornwolff.github.io/codecharta/\r\n\r\n### Fixed\r\n\r\n- Sum symbol for hovered metric values only shows for folders #775\r\n\r\n## [1.38.0] - 2019-11-08\r\n\r\n### Added\r\n\r\n- Temporal coupling edges generated by SCMLogParser #622\r\n\r\n### Changed\r\n\r\n- Downloaded files are no longer formatted #679\r\n- Added highly and median coupled files metrics to non-churn metric list of SCMLogParser #622\r\n- Moved nodePathPanel to toolBar and updated style #607\r\n\r\n### Fixed\r\n\r\n- Removed attributes from downloaded files that should not be there #679\r\n\r\n## [1.37.0] - 2019-10-25\r\n\r\n### Added\r\n\r\n- Sidebar with information regarding the selected building #527\r\n- Sidebar closes when selected buildings is excluded #748\r\n\r\n### Changed\r\n\r\n- Animation to show or hide the legend panel #527\r\n\r\n### Removed\r\n\r\n- Expandable detail panel in lower left corner #527\r\n- Removed option to maximize/minimize detail panel #527\r\n\r\n### Fixed\r\n\r\n- Autofocus and label size for focused nodes #747\r\n- Selected buildings stays selected when settings are changed #748\r\n- IllegalStateException when scanning single file in SourceCodeParser #573\r\n- SourceCodeParser places files in the project root correctly into the hierarchy #574\r\n\r\n## [1.36.0] - 2019-10-18\r\n\r\n### Changed\r\n\r\n- Open and close the ribbonBar sections independently with an updated animation\r\n\r\n### Fixed\r\n\r\n- Camera is now resetted correctly, when unfocusing #634\r\n- Inputs of Color Range Slider now waits a second before it commits its values #676\r\n- Fixed root folder name in TreeView after new map after loading new map #649\r\n- Increased size of ribbonBar for big screens #644\r\n- File-Extension-Bar will not display excluded nodes anymore #725\r\n- Sanitize input for shelljs #600\r\n\r\n### Chore\r\n\r\n- Bump jacoco from 0.8.1 to 0.8.4 in /analysis\r\n\r\n## [1.35.0] - 2019-10-04\r\n\r\n### Added\r\n\r\n- Checkbox in global Settings for disabling camera reset, when new map is loaded #685\r\n- Pipe support for SourceCodeParser #716\r\n- Pipe support for SCMLogParser #717\r\n- Pipe support for SonarImporter #715\r\n\r\n### Fixed\r\n\r\n- Exclude and Hide options are disabled for empty and already existing search patterns #654\r\n\r\n## [1.34.0] - 2019-09-20\r\n\r\n### Added\r\n\r\n- Tokei Importer #538\r\n- Prominent Notice that we use Sonar-jar #713\r\n\r\n### Chore\r\n\r\n- Bump kotlin-reflect from 1.3.41 to 1.3.50 in /analysis\r\n- Bump json from 20180813 to 20190722 in /analysis\r\n- Bump rxjava from 2.2.9 to 2.2.12 in /analysis\r\n- Bump assertj-core from 3.12.2 to 3.13.2 in /analysis\r\n- Bump sonar-java-plugin from 5.12.1.17771 to 5.14.0.18788 in /analysis\r\n\r\n## [1.33.0] - 2019-09-10\r\n\r\n### Added\r\n\r\n- Edge Previews (Palm-Tree-Effect) #529\r\n- Dropdown to select Edge Metric, including Edge Counter #529\r\n- Edge Metric settings for Edge Height, Number of Previews & show only building with Edges #529\r\n\r\n### Changed\r\n\r\n- Edge Visualization to better distinguish between incoming and outgoing edges #529\r\n- Distribution metric is by default the same as area metric #689\r\n- MapTreeView below searchBar opens the first level by default #690\r\n- Focus metric search when opening metricChooser #693\r\n\r\n### Removed\r\n\r\n- Edge Options in Context menu #529\r\n\r\n### Fixed\r\n\r\n- SourceCodeParser now skips custom metrics for files, if the syntax tree cannot be created\r\n- Nodes with color metric equals 0 are colored correct again #677\r\n\r\n### Chore\r\n\r\n- [Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /visualization\r\n\r\n## [1.32.0] - 2019-08-09\r\n\r\n### Added\r\n\r\n- Search for metrics and an indicator for the highest value in dropdown #575\r\n- Button to enable PresentationMode that uses Flashlight-Hovering #576\r\n- Clarifying information which file is which in the file bar when in delta mode #615\r\n\r\n### Changed\r\n\r\n- Replaced Scenario dropdown with button on the left of the metric sections #628\r\n\r\n## [1.31.0] - 2019-08-02\r\n\r\n### Added\r\n\r\n- New Metric in SourceCodeParser: Maximum-Nesting-Level #659\r\n\r\n### Fixed\r\n\r\n- Label hight adjustment now matches scaling of map #594\r\n- SCMLogParser now guesses the input file encoding #614\r\n\r\n## [1.30.0] - 2019-07-26\r\n\r\n### Added\r\n\r\n- New Search Bar #526\r\n- Number of Renames Metric to SCMLogParser #621\r\n- Age In Weeks Metric for SCMLogParser #620\r\n\r\n### Changed\r\n\r\n- ToolBar now shows partially cut-off controls if the window is too small #582\r\n- Position of the legendPanel was moved to the bottom-right corner #633\r\n- RibbonBar only opens the three metric section\r\n- Moved Scenario-select to the right in order to use less space\r\n- Moved loading-gif from ribbonBar to toolBar\r\n\r\n### Removed\r\n\r\n- RibbonBar toggle button\r\n\r\n### Fixed\r\n\r\n- FileExtensionBar height to not show a bottom-margin in Chrome\r\n- PointerEvents not being propagated when RibbonBar was extended\r\n- Reduced memory usage of SCMLogParser to avoid OutOfMemory Exception #631\r\n\r\n### Chore\r\n\r\n- [Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 in /visualization\r\n- [Security] Bump lodash from 4.17.11 to 4.17.13 in /visualization\r\n- [Security] Bump fstream from 1.0.11 to 1.0.12 in /visualization\r\n\r\n## [1.29.0] - 2019-07-12\r\n\r\n### Changed\r\n\r\n- Moved Button to reset the map to the center next to the view-cube #606\r\n- Moved FileExtensionBar #527\r\n\r\n### Removed\r\n\r\n- Burger Menu / SideNav #526\r\n\r\n### Fixed\r\n\r\n- Colors in File-Extension-Bar will be displayed in MS Edge and Standlone now #584\r\n\r\n## [1.28.0] - 2019-06-28\r\n\r\n### Added\r\n\r\n- Releasing will now remind the developer to manually add the release notes #533\r\n- StructureModifier to remove and move nodes and set root of projects #547 / #181\r\n\r\n### Changed\r\n\r\n- More informative log messages regarding the success of project merging #547\r\n\r\n### Removed\r\n\r\n- Release Notes are not generated and added automatically to a release #533\r\n\r\n### Fixed\r\n\r\n- Margin will now be set correctly depending on whether dynamicMargin is enabled or not #602\r\n\r\n## [1.27.0] - 2019-06-25\r\n\r\n### Added\r\n\r\n- Automatically generates release notes from changelog and appends it to release #533\r\n- Adds global settings-menu with settings from options panel and weblinks #528\r\n\r\n### Changed\r\n\r\n- Moved File Settings from Ribbon Bar to new File Setting Bar #525\r\n- Rename sample file codemap-nodes #587\r\n- Hide checkbox to select white-positive-buildings in delta state #345\r\n\r\n### Removed\r\n\r\n- Removes Options panel from sidebar #528\r\n- Removes Weblinks panel from sidebar #528\r\n- Removed URL-parameter info from sidebar #525\r\n\r\n### Fixed\r\n\r\n- Unary Metric will no longer be auto-selected when a new map is loaded #579\r\n\r\n## [1.26.0] - 2019-06-14\r\n\r\n### Added\r\n\r\n- FileExtensionBar to show file-distribution of chosen metric #495\r\n- sum icon is now displayed on the left of the metric value #364\r\n- Added Pop-up dialog before downloading file to set filename and see what data will be stored #523\r\n\r\n### Fixed\r\n\r\n- Fix set default ColorRange when resetting color section #560\r\n\r\n## [1.25.1] - 2019-05-30\r\n\r\n### Added\r\n\r\n- SVN log parser keeps track of renaming of files for metric calculation #542\r\n\r\n### Fixed\r\n\r\n- Entries with renaming information in SVN logs are attributed to correct file #542\r\n- Unary metric will no longer be removed from the MetricChooser-Dropdown when a folder was excluded or hidden #548\r\n- Changing margin and then file or mode will no longer freeze the application #524\r\n\r\n### Chore\r\n\r\n- [Security] Bump tar from 2.2.1 to 2.2.2 in /visualization\r\n\r\n## [1.25.0] - 2019-05-17\r\n\r\n### Added\r\n\r\n- Added SonarJava to Source code parser #343\r\n- Added exclude and defaultExclude options to SourceCodeParser #508\r\n- Show loading-gif in ribbonBar when rerendering map\r\n\r\n### Changed\r\n\r\n- Using Sonar Plugins for Source code parser, giving the Sonar Metrics #343\r\n- Use debounced settings update instead of throttled\r\n- Filename of downloaded file now contains time #484\r\n\r\n### Fixed\r\n\r\n- Fixed issue with too long line in ccsh.bat #506\r\n- Prevent downloaded files from having multiple Timestamps #484\r\n- Do not show loadingGif when cancelling the fileChooser #498\r\n- Excluding a building now updates the maximum value of colorRange #355\r\n\r\n### Chore\r\n\r\n- Bump angular-material from 1.1.9 to 1.1.14 in /visualization\r\n- [Security] Bump jquery from 3.3.1 to 3.4.0 in /visualization\r\n\r\n## [1.24.0] - 2019-04-23\r\n\r\n### Removed\r\n\r\n- Settings as URL parameters #470\r\n\r\n### Fixed\r\n\r\n- Fixed issue with trailing slash in URL parameter of SonarImporter #356\r\n\r\n### Chore\r\n\r\n- Bump d3 from 4.13.0 to 5.9.2 in /visualization\r\n- Bump sinon from 4.5.0 to 7.3.1 in /visualization\r\n\r\n## [1.23.0] - 2019-03-22\r\n\r\n### Added\r\n\r\n- Project Name can be specified for merge filter #394\r\n\r\n### Changed\r\n\r\n- Throw a MergeException if project names do not match in MergeFilter #394\r\n\r\n### Fixed\r\n\r\n- Excluded buildings are no longer used for aggregated metric calculation #352\r\n\r\n### Chore\r\n\r\n- Bump browser-sync-webpack-plugin from 1.2.0 to 2.2.2 in /visualization\r\n- Bump @types/node from 8.10.19 to 11.11.3 in /visualization\r\n- Bump html-webpack-plugin from 2.30.1 to 3.2.0 in /visualization\r\n- Bump load-grunt-tasks from 3.5.2 to 4.0.0 in /visualization #444\r\n- Bump ajv from 5.5.2 to 6.10.0 in /visualization #447\r\n- Bump resolve-url-loader from 2.3.0 to 3.0.1 in /visualization #448\r\n\r\n## [1.22.0] - 2019-03-15\r\n\r\n### Added\r\n\r\n- Added buttons to select all/none/inversion of revisions/maps in multiple mode #391\r\n- Merge filter can merge all files of folders #392\r\n\r\n### Fixed\r\n\r\n- Fixed bug that code map was not re-loaded when changing from multiple to single revision mode #396\r\n- Fixed missing apiVersion in aggregated map #398\r\n- Input Fields of color sliders adjust width according to content #409\r\n\r\n### Chore\r\n\r\n- Bump nouislider from 11.1.0 to 13.1.1 in /visualization\r\n- Bump typescript from 2.7.2 to 3.3.3333 in /visualization\r\n- Bump @types/d3 from 4.13.0 to 5.7.1 in /visualization\r\n\r\n## [1.21.2] - 2019-02-26\r\n\r\n### Added\r\n\r\n- When entering Multiple Mode, all Maps/revisions are preselected\r\n\r\n### Fixed\r\n\r\n- Fixing non-existent metric aggregation on root-level when using multiple Files\r\n\r\n## [1.21.1] - 2019-02-22\r\n\r\n### Added\r\n\r\n- Hovering a node in the map also hovers it in the tree view #351\r\n\r\n### Fixed\r\n\r\n- Fixing sync between treeview hovering and map hovering #351\r\n- Folders can no longer be colored in the CodeMap or TreeView #359\r\n\r\n## [1.21.0] - 2019-02-16\r\n\r\n### Added\r\n\r\n- Color searched node names green in TreeView #225\r\n- Add option buttons (three dots) in TreeViewSearch to `Hide` or `Exclude` matching nodes #298\r\n- Show blacklist entry counter in blacklistPanel header #298\r\n- Option checkbox \'Hide Flattened Buildings\' #225\r\n- Hide/Flatten non-searched buildings #225\r\n- Hide/Flatten all buildings, if searchPattern can\'t find any matching nodes #225\r\n- Show maxValue of each metric in metricChooser select list #204\r\n- Colored color-slider inside the RibbonBar #318\r\n- Option to color positive buildings white #311\r\n- Clicking the ribbonBar section-titles toggles the ribbonBar #324\r\n- View-Cube displayed in top right corner #274\r\n- Adding prettier formatter\r\n- Adapt colorRange when changing colorMetric #330\r\n\r\n### Changed\r\n\r\n- Update TreeView filter with search field #225\r\n- Use \'gitignore\' style matching in TreeViewSearch #225\r\n- Reorder `Focus`, `Hide` and `Exclude` buttons in nodeContextMenu #298\r\n- Reorder sidebarPanels (BlacklistPanel beneath TreeViewSearchPanel) #298\r\n- Use `fa-ban`-icon as symbols for blacklistPanel (instead of `fa-list`) #298\r\n- Use `fa-ban`-icon as symbols for blacklistType `Exclude` (instead of `fa-times`) #298\r\n- Label size keeps readable for large maps or a high distance between camera and map #237\r\n- updated dependencies to fix vulnerabilities\r\n- Scenarios only update settings which exist in Scenario and not all #224\r\n- MergeFilter to merge unique blacklist entries #275\r\n- MergeFilter to only merge unique attributeType entries #275\r\n\r\n### Removed\r\n\r\n- Remove invertHeight checkbox in delta-view #306\r\n- Remove option to add blacklist entries from inside the blacklistPanel #298\r\n- Remove statistic functions in Experimental panel #308\r\n\r\n### Fixed\r\n\r\n- CodeMap does not move anymore when navigating in text-fields #307\r\n- Merge blacklist in multipleFile view and convert paths #275\r\n- Show logo in NW.js standalone application #233\r\n\r\n## [1.20.1] - 2018-12-19\r\n\r\nFixed release issues.\r\n\r\n## [1.20.0] - 2018-12-19\r\n\r\n### Added\r\n\r\n- button to unfocus node\r\n- NodeContextMenu: Option to only hide dependent edges\r\n- plop support\r\n\r\n### Changed\r\n\r\n- Renaming \'isolate node\' to \'focus node\'\r\n- Focusing a node does not remove the blacklist items of type Hide\r\n\r\n### Removed\r\n\r\n- NodeContextMenu: Option to \'show all\' nodes, which used to unhide all nodes\r\n\r\n### Fixed\r\n\r\n- Reshow hidden nodes from Treeview or Blacklist\r\n\r\n## [1.19.0] - 2018-11-02\r\n\r\n### Added\r\n\r\n- Deleted files in delta view use their previous area value in order to be visible #254\r\n\r\n### Fixed\r\n\r\n- Buildings in the delta view are not colored correctly #253\r\n- Reset Button in RibbonBar to reset \'Invert Colors\' #255\r\n- Remove lag of \'Invert Color\' checkboxes, when selecting single/delta mode #255\r\n\r\n## [1.18.1] - 2018-10-31\r\n\r\nFixed release issues\r\n\r\n## [1.18.0] - 2018-10-29\r\n\r\n### Added\r\n\r\n- Integration with Jasome through JasomeImporter #245\r\n- URL parameter \'mode\' with the values Single, Multiple or Delta\r\n- Blacklist to persist excluded or hidden nodes #205\r\n- Option to exclude nodes in nodeContextMenu #205\r\n- BlacklistPanel in SettingsSidebar to manage blacklist #205\r\n- Save-Button to download current CodeMap #205\r\n- Publishing visualization on Docker Hub #252\r\n\r\n### Changed\r\n\r\n- No longer fat jar of every subcomponent of analysis, baked into ccsh\r\n- Changed simple syserr write to logger call for analysis #243\r\n\r\n### Removed\r\n\r\n- URL parameter \'delta\' does not exist anymore\r\n\r\n### Fixed\r\n\r\n- Show delta of CodeMap when URL parameter mode=delta is set\r\n\r\n## [1.17.0] - 2018-09-28\r\n\r\n### Changed\r\n\r\n- Invert delta colors moved from color to heigh metric column in ribbon bar #220\r\n- Delta value now as kindOfMap shown #220\r\n- Aggreate maps as multiple rename #220\r\n\r\n### Fixed\r\n\r\n- Single/delta buttons now correctly activated when delta in ulr shown #220\r\n\r\n## [1.17.0] - 2018-09-21\r\n\r\n### Added\r\n\r\n- CodeMaatImport for temporal coupling dependencies #172\r\n- EdgeFilter to aggregate edge-attributes as node-attributes #222\r\n- Option to show and hide dependent edges from node-context-menu #218\r\n\r\n### Changed\r\n\r\n- MergeFilter merges edges #172\r\n\r\n## [1.16.2] - 2018-09-10\r\n\r\n### Fixed\r\n\r\n- missing event in firefox #232\r\n\r\n## [1.16.1] - 2018-08-31\r\n\r\n### Added\r\n\r\n- gitlab + dotnet manual\r\n\r\n## [1.16.0] - 2018-08-31\r\n\r\n### Added\r\n\r\n- add the option to add multiple files via url parameter (e.g. ?file=a&file=b...)\r\n\r\n## [1.15.1] - 2018-08-13\r\n\r\nFixed release issues\r\n\r\n## [1.15.0] - 2018-08-13\r\n\r\n### Added\r\n\r\n- e2e tests are running in CI Environment (headless)\r\n- pupeteer as e2e test framework\r\n- Show names of marked packages in legend\r\n- Added a source code importer that can analyse rloc,mcc for java source code\r\n- keep settings when the user changes a file\r\n- Added option to set white background\r\n\r\n### Removed\r\n\r\n- cypress\r\n\r\n## [1.14.2] - 2018-07-16\r\n\r\n### Changed\r\n\r\n- Changed folder detail metrics from mean to sum\r\n\r\n## [1.14.1] - 2018-07-13\r\n\r\nFixed release issues\r\n\r\n## [1.14.0] - 2018-07-13\r\n\r\n### Added\r\n\r\n- Added UnderstandImporter to Analysis\r\n- Packages can be highlighted in different colors #152\r\n- Adding a context menu with highlighting colors and convenience methods for the tree view and 3D view #155\r\n- Folders and files to highlight can be described in the cc.json #165\r\n- Dynamic/automatic margin computing de/activated by tick\r\n\r\n### Changed\r\n\r\n- Details panel: using the sum of the childrens metrics instead of the mean value\r\n\r\n### Fixed\r\n\r\n- Display buttons do not trigger map changes #185\r\n- Flickering surfaces when zooming out\r\n\r\n## [1.13.0] - 2018-06-08\r\n\r\n### Added\r\n\r\n- Layout switcher #141\r\n- Added CrococosmoImporter to Analysis\r\n- Added type, dirs, name to CSVExporter\r\n- Invert height of building checkbox\r\n- Aggregate multiple maps in visualization #110\r\n- Auto Focus selected map part\r\n- Timmer added to applySettings in SettingsService\r\n\r\n### Changed\r\n\r\n- Crococosmo xml files will now generate a cc.json file for each version\r\n- Suppressing ARIA warnings\r\n- Simplified gradle structure of analysis part\r\n- Deltas added in the metric quick access panel #138\r\n- Ticks and ResetValue Buttons call to onSettingsChange to avoid applySettings timer\r\n- compacting empty middle packages #150\r\n- Detail panel minimized by default\r\n\r\n### Fixed\r\n\r\n- filter by regex shows parent nodes #116\r\n- typo in scss file\r\n\r\n## [1.12.0] - 2018-04-27\r\n\r\n### Added\r\n\r\n- horizontal quick access metric chooser\r\n- Link behind filepath in detailPanel #84\r\n- Double click event-handler on Buildings #84\r\n- Detail Panel can be minimized and maximized\r\n- Settings option to minimize Detail Panel\r\n- cypress as an e2e test runner\r\n\r\n### Removed\r\n\r\n- metric details from legend\r\n- metric chooser from settings panel\r\n\r\n## [1.11.2] - 2018-04-13\r\n\r\n### Fixed\r\n\r\n- a sonar importer bug which prevented the importer to fetch the last page #122\r\n\r\n## [1.11.1] - 2018-04-11\r\n\r\nFixed release issues\r\n\r\n## [1.11.0] - 2018-04-11\r\n\r\n### Added\r\n\r\n- SASS support\r\n- simple regex filter\r\n- Reset Button\r\n- Dialog Service replaces console log calls and window.alert calls\r\n- linking tree view and map hover\r\n- auto fit scene button\r\n- anugularJS material\r\n- Scenarios are now filtered by compatibility for the given map\r\n- Link in visualization #84\r\n\r\n### Removed\r\n\r\n- materialize-css\r\n- grunt\r\n\r\n### Fixed\r\n\r\n- less flickering and artifacts\r\n\r\n## [1.10.0] - 2018-03-22\r\n\r\n### Changed\r\n\r\n- Clean up UI #86\r\n- Updated analysis dependencies\r\n\r\n### Fixed\r\n\r\n- Delta View shows Deltas of itself as non-trivial if nodes have same name #89: Compare deltas by path not name\r\n- Delta calculation performance boost #91\r\n- Problems when intermediate nodes missed metrics #92\r\n- removed unnecessary calculations\r\n- removed bug in SonarImporter that slowed up performance and missed out multiple metrics\r\n- minor bugs\r\n\r\n## [1.9.3] - 2018-02-23\r\n\r\n### Changed\r\n\r\n- sorting treeview by folders and names\r\n\r\n## [1.9.2] - 2018-02-20\r\n\r\n### Added\r\n\r\n- added preliminary CSVExporter for visualisation data\r\n\r\n### Changed\r\n\r\n- padding rendering\r\n- minimal building height is 1 to prevent clipping issues\r\n- fallback values for visualization when no metric is available (area = 1, height = 1, color = grey). Data in data structure will not be changed.\r\n\r\n## [1.9.1] - 2018-02-20\r\n\r\n### Fixed\r\n\r\n- detail panel bug fix\r\n\r\n## [1.9.0] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- moved to unscoped npm packages\r\n\r\n## [1.8.2] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- detail panel background is white now. better visibility\r\n\r\n## [1.8.1] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- revision chooser moved to settings panel and uses now understandable dropdowns instead of links. Part of the #82 proposals\r\n\r\n## [1.8.0] - 2018-02-20\r\n\r\n### Added\r\n\r\n- Experimental dependency support\r\n- loading indicator\r\n- file path to detail panel\r\n- collapsible tree view and visibility/isolation per node toggles\r\n\r\n### Changed\r\n\r\n- added a ray-aabb intersection test before precise testing. Less time is spent in intersection methods.\r\n\r\n### Fixed\r\n\r\n- fixed a minor bug\r\n- canvas mouse event listener are now limited to the canvas dom element. UI events will not trigger the canvas listeners anymore\r\n- canvas mouse events distinguish now between click and drag. Dragging does not reset selection anymore\r\n- slider input #64\r\n- rz slider initialization bug\r\n- increasing test coverage\r\n- deltas where calculated on map loading even though, they were disabled\r\n\r\n## [1.7.2] - 2018-02-02\r\n\r\n### Fixed\r\n\r\n- url to homepage\r\n- analysis package\r\n\r\n## [1.7.1] - 2018-02-02\r\n\r\nFixed release issues\r\n\r\n## [1.7.0] - 2018-02-02\r\n\r\n### Changed\r\n\r\n- npm pachage scoped to @maibornwolff\r\n- Defined further scenarios via json file\r\n- Added description for metrics and scenarios\r\n- using fixed point values in detail panel (ui) to truncate infinite or long decimals\r\n- folders now use the mean attributes of their buildings(leaves)\r\n\r\n### Fixed\r\n\r\n- Bugfix: detail panel should be cleared before setting new details else old values may survive\r\n\r\n## [1.6.7] - 2018-02-01\r\n\r\nFixed release issues\r\n\r\n## [1.6.6] - 2018-02-01\r\n\r\n### Added\r\n\r\n- added anonymous git log generator anongit\r\n- browser demo shows codecharta-visualization sonar analysis\r\n\r\n### Changed\r\n\r\n- rewrote command line interface\r\n- linking ccsh to bin/ccsh will be deleted later\r\n\r\n### Fixed\r\n\r\n- No underscore for scenarios in tooltips #71\r\n\r\n## [1.6.5] - 2018-01-30\r\n\r\nFixed release issues\r\n\r\n## [1.6.4] - 2018-01-30\r\n\r\n### Fixed\r\n\r\n- fixed broken SonarImporter due to jdk9 migration\r\n\r\n## [1.6.3] - 2018-01-26\r\n\r\n### Added\r\n\r\n- added npm publish for analysis\r\n- simple release script for automatic changelog updates, commits, tags, version bumps\r\n\r\n## [1.6.2] - 2018-01-25\r\n\r\n### Added\r\n\r\n- added support for git log --raw and git log --numstat --raw\r\n- added support for git log --numstat and codechurn\r\n- added support for renames in SCMLogParser for git log --name-status\r\n- added support for renames in SCMLogParser for git log --numstat, git log --raw and git log --numstat --raw\r\n- added new SCM experimental metrics range_of_weeks_with_commits and successive_weeks_of_commits\r\n- the file origin of a node is displayed in the details now\r\n- sonarqube analysis on CI build\r\n- npm publish support in visualization\r\n\r\n### Changed\r\n\r\n- Deltas are no longer experimental\r\n- two selected delta maps now merge their nodes correctly. The map where\r\n a node was missing get\'s a copy of this node with metrics=0.\r\n File additions/deletions are therefore only visible when areaMetric is\r\n unary and deltas are activated.\r\n\r\n### Fixed\r\n\r\n- delta display bug for heights\r\n- going back from delta view now correctly removes deltas from node data\r\n- Delta shown although not in delta mode #60\r\n- Allow inversion of delta colors #57\r\n- npm binary error\r\n\r\n## [1.5.2] - 2018-01-04\r\n\r\n### Changed\r\n\r\n- scaling slider now has steps of 0.1. This allows the user to select precise values like 2.0\r\n- updated jdk to jdk9\r\n\r\n### Fixed\r\n\r\n- Opening the same file a second time does not work #53\r\n- added missing require declaration\r\n- added glsl loader in testing environment\r\n- Native Application support is bugged while building in Travis CI #48\r\n\r\n## [1.5.1] - 2017-11-14\r\n\r\n### Added\r\n\r\n- command line parameter to toggle "authors" attribute in SCMLogParser\r\n\r\n### Fixed\r\n\r\n- when passing a file through the "file" parameter in the URL, the map now renders correctly\r\n\r\n## [1.5.0] - 2017-10-24\r\n\r\n### Added\r\n\r\n- experimental delta functionality\r\n- loading multiple maps\r\n- experimental margin slider\r\n\r\n### Changed\r\n\r\n- faster rendering\r\n\r\n### Removed\r\n\r\n- nwjs packages and native apps due to a bug\r\n\r\n### Fixed\r\n\r\n- using color metric instead of height metric for color range slider ceil\r\n\r\n## [1.4.0] - 2017-09-14\r\n\r\n### Added\r\n\r\n- Typescript support\r\n- Browsersync\r\n- added advanced merging strategy "leaf" in MergeFilter\r\n- advanced merging with restructuring\r\n\r\n### Changed\r\n\r\n- Browserify replaced with Webpack\r\n- Better debugging\r\n- Karma instead of Mocha\r\n\r\n## [1.3.2] - 2017-08-18\r\n\r\n### Added\r\n\r\n- add slider controls for color thresholds #19\r\n- Added additional structuring in SonarImporter for multi-module projects\r\n- button to generate current url parameters\r\n- camera position is now a setting (e.g. in scenarios or url parameters)\r\n- margin slider: make it easier to find out to which package/folder a class belongs #20\r\n\r\n### Changed\r\n\r\n- better url parameter resolution (nested parameters are handled correctly)\r\n- changed hover color. Allows better distinction between hover and select\r\n\r\n### Removed\r\n\r\n- obsolete helper grid\r\n\r\n### Fixed\r\n\r\n- changing display or color settings resets scaling #18\r\n- scenario description #32\r\n- Scaling should not scale the labels #35\r\n\r\n## [1.3.1] - 2017-07-05\r\n\r\n### Fixed\r\n\r\n- Prevented override of URL-parameters by default scenario\r\n\r\n## [1.3.0] - 2017-07-05\r\n\r\n### Added\r\n\r\n- Adding simple merge functionality for multiple json files\r\n- Added CSVImporter\r\n- Added Translation for SonarQube metrics\r\n- Added descriptions for metrics\r\n\r\n### Changed\r\n\r\n- Changed uppercase metrics, e.g. RLOC, to lowercase metrics\r\n\r\n### Fixed\r\n\r\n- Simple cc.json does not display anything #17\r\n\r\n## [1.2.0] - 2017-06-19\r\n\r\n### Added\r\n\r\n- Adding Labels and UI\r\n- Support for links to source page of SonarQube in sonarimporter\r\n- Added SCMLogParser\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: legend is wrong #21\r\n\r\n## [1.1.5] - 2017-05-31\r\n\r\n### Fixed\r\n\r\n- Wrong version numbers in analysis part\r\n\r\n## [1.1.4] - 2017-05-26\r\n\r\n### Added\r\n\r\n- Scenarios and default scenario\r\n- Translation API for Metrics\r\n- Metric tooltips in dropdown\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Sonarimporter crashes with null pointer exception when there is a component without path. #13\r\n\r\n## [1.1.3] - 2017-05-01\r\n\r\n### Added\r\n\r\n- Support for SonarQube Measures-API\r\n- Error logging for sonarqube errors\r\n\r\n### Changed\r\n\r\n- Standard Sonar metric is now complexity,ncloc,functions,duplicated_lines,classes,blocker_violations,generated_lines,bugs,commented_out_code_lines,lines,violations,comment_lines,duplicated_blocks\r\n\r\n## [1.1.2] - 2017-04-28\r\n\r\n### Added\r\n\r\n- Translation API for Metrics\r\n\r\n## [1.1.1] - 2017-04-07\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Flickering surfaces #3\r\n- GitHub Issue: Unable to install due to readlink error on macOS #4\r\n\r\n## [1.1.0] - 2017-03-27\r\n\r\n### Added\r\n\r\n- SourceMonitorImporter for importing projects from SourceMonitor.\r\n\r\n## [1.0.0] - 2017-03-17\r\n\r\n### Added\r\n\r\n- SonarImporter for importing projects from SonarQube.\r\n- ValidationTool for validating an existing json file.\r\n',{headerIds:!1}).split("\n");const r=this.findVersionLine(i,this.data.currentVersion),o=this.findVersionLine(i,this.data.previousVersion);i=i.slice(r,o+1);const s=["Added \u{1f680}","Fixed \u{1f41e}","Changed","Removed \u{1f5d1}","Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}"],a={};for(const l of s){const c=new RegExp(`

    ${l}

    `),d=this.getAllIndexes(i,c),u=[];for(const h of d){const f=h+2,A=this.findEndChangesLine(i,h);for(const y of i.slice(f,A))u.push(`${y}
    `)}u.length>0&&(a[l]=u.join("\n"))}return a}getAllIndexes(e,i){return e.reduce((r,o,s)=>(i.test(o)&&r.push(s),r),[])}findVersionLine(e,i){const r=new RegExp(`\\[${i}]`);return e.findIndex(o=>r.test(o))}findEndChangesLine(e,i){return i+e.slice(i+1).findIndex(r=>/

    /.test(r)||/

    /.test(r))}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-change-log-dialog"]],decls:16,vars:5,consts:[["color","primary"],["mat-dialog-content",""],[1,"content"],["mat-dialog-actions",""],["href","https://maibornwolff.github.io/codecharta/news/","target","_blank","rel","noopener noreferrer"],["mat-button","","cdkFocusInitial","",3,"mat-dialog-close"],[3,"innerHTML"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0),ye(1,"Changelog"),U(),D(2,"div",1)(3,"h1"),ye(4,"What is new in CodeCharta?"),U(),D(5,"h2"),ye(6),U(),D(7,"div",2),Or(8,N$e,4,2,"div",null,qr),qe(10,"keyvalue"),U()(),D(11,"div",3)(12,"a",4),ye(13,"Know more"),U(),D(14,"button",5),ye(15,"CLOSE"),U()()),2&i&&(Q(6),Jd("",r.data.previousVersion," \u2192 ",r.data.currentVersion,""),Q(2),Lr(rt(10,3,r.changes)),Q(6),_e("mat-dialog-close",!0))},dependencies:[cs,Jl,kc,ec,zm,_E],encapsulation:2})}}return n})();function Nre(n){const t=n.split(".");return{major:Number.parseInt(t[0])||0,minor:Number.parseInt(t[1])||0,patch:Number.parseInt(t[2])||0}}let Ure=(()=>{class n{constructor(e){this.dialog=e,this.version=X1.rE}synchronizeLocalCodeChartaVersion(){const e=localStorage.getItem("codeChartaVersion");null!==e?function H$e(n,t){const e=Nre(n),i=Nre(t);return e.major===i.major&&e.minor===i.minor&&e.patch===i.patch?0:e.major>i.major?1:e.majori.minor?1:e.minori.patch?1:e.patch{class n{constructor(e,i,r,o,s){this.store=e,this.actions$=i,this.uploadFilesService=r,this.threeRendererService=o,this.codeMapRenderService=s,this.actionsRequiringRender$=this.actions$.pipe(za(...Hre)),this.renderCodeMap$=Ao(()=>Sh([this.store.select(Hc),this.actionsRequiringRender$]).pipe(qi(([a])=>!!a.unifiedMapNode),function Q$e(n,t=t_,e){const i=mR(n,t);return function V$e(n,t){return fe((e,i)=>{const{leading:r=!0,trailing:o=!1}=t??{};let s=!1,a=null,l=null,c=!1;const d=()=>{l?.unsubscribe(),l=null,o&&(f(),c&&i.complete())},u=()=>{l=null,c&&i.complete()},h=A=>l=ls(n(A)).subscribe(De(i,d,u)),f=()=>{if(s){s=!1;const A=a;a=null,i.next(A),!c&&h(A)}};e.subscribe(De(i,A=>{s=!0,a=A,(!l||l.closed)&&(r?f():h(A))},()=>{c=!0,(!(o&&s&&l)||l.closed)&&i.complete()}))})}(()=>i,e)}(16.666666666666668,t_,{leading:!1,trailing:!0}),Dr(([a])=>{this.codeMapRenderService.render(a.unifiedMapNode),this.codeMapRenderService.scaleMap(),this.threeRendererService.render()}),lx()),{dispatch:!1}),this.removeLoadingIndicatorAfterRender$=Ao(()=>this.renderCodeMap$.pipe(qi(()=>!this.uploadFilesService.isUploading),Dr(()=>{this.store.dispatch(cA({value:!1})),this.store.dispatch(r_({value:!1}))})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(fd),ve(tne),ve(Ki),ve(lee))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),q$e=(()=>{class n{constructor(e,i,r,o){this.store=e,this.renderCodeMapEffect=i,this.threeMapControlsService=r,this.actions$=o,this.autoFitTo$=Ao(()=>Sh([this.store.select(au),this.store.select(rie)]).pipe(G1(1),hd(this.store.select(iie)),qi(([,s])=>s),gh(()=>this.renderCodeMapEffect.renderCodeMap$.pipe($o(1))),Dr(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1}),this.autoFitToWhenResetCameraIfNewFileIsLoadedSetToFalse$=Ao(()=>this.actions$.pipe(za("StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"),ox(),gh(()=>this.renderCodeMapEffect.renderCodeMap$.pipe($o(1))),Dr(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Vre),ve(cc),ve(fd))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),G$e=(()=>{class n{constructor(e){this.store=e,this.linkHeightAndColorMetric$=Ao(()=>Sh([this.store.select(ex),this.store.select(F5)]).pipe(qi(([,i])=>i),Qe(([i])=>pd({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),W$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),$$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),j$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),X$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,are]})}}return n})(),K$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,W$e,$$e,j$e,X$e]})}}return n})();const y8=Kt(wre,mb,(n,t)=>n?t.get(n.nodeId):null);function Y$e(n,t){if(1&n){const e=Dn();D(0,"button",1),ze("click",function(){return Ot(e),Rt(Le().flattenNode())}),xe(1,"img",2),ye(2," FLATTEN "),U()}}function Z$e(n,t){if(1&n){const e=Dn();D(0,"button",3),ze("click",function(){return Ot(e),Rt(Le().unFlattenNode())}),xe(1,"img",2),ye(2," SHOW "),U()}}let J$e=(()=>{class n{constructor(e){this.store=e}flattenNode(){this.store.dispatch(UP({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}unFlattenNode(){this.store.dispatch(n2({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-flatten-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:2,vars:1,consts:[["mat-button","","title","Flatten node and children-nodes, but keep an empty space"],["mat-button","","title","Flatten node and children-nodes, but keep an empty space",3,"click"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"png-icon"],["mat-button","","title","Show node and children-nodes",3,"click"]],template:function(i,r){1&i&&pt(0,Y$e,3,0,"button",0)(1,Z$e,3,0),2&i&&Tt(0,null!=r.codeMapNode&&r.codeMapNode.isFlattened?1:0)},dependencies:[cs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();const w8=Kt(lc,n=>n.focusedNodePath),Qre=Kt(w8,n=>n[0]);let eje=(()=>{class n{transform(e,i){if(!e||!i)return{isNodeFocused:!1,isParentFocused:!1};const r=e===i.path;return{isNodeFocused:r,isParentFocused:!r&&i.path.startsWith(e)}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"isNodeFocused",type:n,pure:!0})}}return n})();function tje(n,t){if(1&n){const e=Dn();D(0,"button",1),ze("click",function(){return Ot(e),Rt(Le(2).handleFocusNodeClicked())}),xe(1,"i",2),ye(2," FOCUS "),U()}}function nje(n,t){if(1&n){const e=Dn();D(0,"button",5),ze("click",function(){return Ot(e),Rt(Le(3).handleUnfocusAllNodesClicked())}),xe(1,"i",2),ye(2," UNFOCUS ALL "),U()}}function ije(n,t){if(1&n){const e=Dn();D(0,"button",3),ze("click",function(){return Ot(e),Rt(Le(2).handleUnfocusNodeClicked())}),xe(1,"i",2),ye(2),U(),pt(3,nje,3,0,"button",4),qe(4,"async")}if(2&n){const e=Le(),i=Le();Q(2),sn(" ",e.isParentFocused?"UNFOCUS PARENT":"UNFOCUS"," "),Q(),Tt(3,rt(4,2,i.hasPreviousFocusedNodePath$)?3:-1)}}function rje(n,t){if(1&n&&pt(0,tje,3,0,"button",0)(1,ije,5,4),2&n){const e=t;Tt(0,e.isNodeFocused?-1:0),Q(),Tt(1,e.isNodeFocused||e.isParentFocused?1:-1)}}let oje=(()=>{class n{constructor(e){this.store=e,this.currentFocusedNodePath$=this.store.select(Qre),this.hasPreviousFocusedNodePath$=this.store.select(w8).pipe(Qe(i=>i.length>1))}handleFocusNodeClicked(){this.store.dispatch(AI({value:this.codeMapNode.path}))}handleUnfocusNodeClicked(){this.store.dispatch(gI())}handleUnfocusAllNodesClicked(){this.store.dispatch(hx())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-focus-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:6,consts:[["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes"],["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes",3,"click"],[1,"fa","fa-bullseye"],["mat-button","","aria-label","Remove Focus from node","title","Show previous focused node",3,"click"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map",3,"click"]],template:function(i,r){if(1&i&&(pt(0,rje,2,2),qe(1,"async"),qe(2,"isNodeFocused")),2&i){let o;Tt(0,(o=Io(2,3,rt(1,1,r.currentFocusedNodePath$),r.codeMapNode))?0:-1,o)}},dependencies:[cs,Kn,eje],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();function sje(n,t){if(1&n){const e=Dn();D(0,"button",1),ze("click",function(){return Ot(e),Rt(Le().addNodeToConstantHighlight())}),xe(1,"i",2),ye(2," KEEP HIGHLIGHT "),U()}}function aje(n,t){if(1&n){const e=Dn();D(0,"button",3),ze("click",function(){return Ot(e),Rt(Le().removeNodeFromConstantHighlight())}),xe(1,"i",2),ye(2," REMOVE HIGHLIGHT "),U()}}let lje=(()=>{class n{constructor(e,i){this.threeSceneService=e,this.idToBuilding=i}ngOnChanges(e){e.codeMapNode&&(this.isHighlighted=this.calculateIsHighlighted())}addNodeToConstantHighlight(){this.threeSceneService.addNodeAndChildrenToConstantHighlight(this.codeMapNode)}removeNodeFromConstantHighlight(){this.threeSceneService.removeNodeAndChildrenFromConstantHighlight(this.codeMapNode)}calculateIsHighlighted(){if(!this.codeMapNode)return!1;const e=this.idToBuilding.get(this.codeMapNode.id);return!!e&&this.threeSceneService.getConstantHighlight().has(e.id)}static{this.\u0275fac=function(i){return new(i||n)($(Vc),$(jw))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-highlight-buttons"]],inputs:{codeMapNode:"codeMapNode"},features:[xr],decls:2,vars:1,consts:[["mat-button","","title","Highlight node constantly"],["mat-button","","title","Highlight node constantly",3,"click"],[1,"fa","fa-cubes"],["mat-button","","title","Remove constant highlight",3,"click"]],template:function(i,r){1&i&&pt(0,sje,3,0,"button",0)(1,aje,3,0),2&i&&Tt(0,r.isHighlighted?1:0)},dependencies:[cs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();const cje=Kt(pb,n=>n.markingColors),dje=Kt(y8,cje,tJ,(n,t,e)=>{if(null===n)return t.map(r=>({color:r,isMarked:!1}));const i=Mee(e,n.path);return t.map(r=>({color:r,isMarked:-1!==i&&r===e[i].color}))});function uje(n,t){1&n&&xe(0,"i",5)}function hje(n,t){if(1&n){const e=Dn();D(0,"button",4),ze("click",function(){const r=Ot(e).$implicit,o=Le(),s=Le();return Rt(r.isMarked?s.unmarkFolder(o.path):s.markFolder(o.path,r.color))}),pt(1,uje,1,0,"i",5),U()}if(2&n){const e=t.$implicit;zi("background-color",e.color),Q(),Tt(1,e.isMarked?1:-1)}}function fje(n,t){if(1&n){const e=Dn();D(0,"div",1),Or(1,hje,2,3,"button",2,qr),qe(3,"async"),D(4,"cc-color-picker",3),ze("onColorChange",function(r){const o=Ot(e);return Rt(Le().markFolder(o.path,r))}),U()()}if(2&n){const e=Le(),i=Lo(3);Q(),Lr(rt(3,2,e.markFolderItems$)),Q(3),_e("hexColor","#ff0000")("triggerTemplate",i)}}function mje(n,t){1&n&&xe(0,"div",6)}let pje=(()=>{class n{constructor(e){this.store=e,this.markFolderItems$=this.store.select(dje),this.codeMapNode$=this.store.select(y8)}markFolder(e,i){this.store.dispatch(I1({packages:[{path:e,color:i}]}))}unmarkFolder(e){this.store.dispatch(o2({path:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-mark-folder-row"]],decls:4,vars:3,consts:[["colorPickerTriggerTemplate",""],[1,"row"],["title","Colorize folder",1,"colorButton",3,"background-color"],[3,"onColorChange","hexColor","triggerTemplate"],["title","Colorize folder",1,"colorButton",3,"click"],[1,"fa","fa-times"],[1,"cc-color-picker-trigger","fa","fa-paint-brush"]],template:function(i,r){if(1&i&&(pt(0,fje,5,4,"div",1),qe(1,"async"),pt(2,mje,1,0,"ng-template",null,0,jf)),2&i){let o;Tt(0,(o=rt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[AJ,Kn],styles:["[_nghost-%COMP%] .row[_ngcontent-%COMP%]{display:flex}[_nghost-%COMP%] [_ngcontent-%COMP%]:hover{cursor:pointer}[_nghost-%COMP%] .colorButton[_ngcontent-%COMP%]{width:32px;height:32px}[_nghost-%COMP%] .colorButton[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:25px;display:block;color:red;text-shadow:-1px 0 white,0 1px white,1px 0 white,0 -1px white}[_nghost-%COMP%] cc-color-picker[_ngcontent-%COMP%]{width:32px;height:32px}[_nghost-%COMP%] cc-color-picker[_ngcontent-%COMP%] .cc-color-picker-trigger[_ngcontent-%COMP%]{font-size:25px;margin-top:8px}"]})}}return n})(),Aje=(()=>{class n{constructor(e){this.store=e}excludeNode(){this.store.dispatch(HP({items:[{path:this.codeMapNode.path,type:"exclude",nodeType:this.codeMapNode.type}]}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-exclude-button"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:0,consts:[["mat-button","","id","exclude-button","title","Exclude node and children-nodes and reorder the CodeMap",3,"click"],[1,"fa","fa-ban"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.excludeNode()}),xe(1,"i",1),ye(2," EXCLUDE\n"),U())},dependencies:[cs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})(),gje=(()=>{class n{transform(e){return`${0===e.lastIndexOf("/")?"":"..."}${e.slice(e.lastIndexOf("/"))}`}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"lastPartOfNodePath",type:n,pure:!0})}}return n})();function _je(n,t){1&n&&(D(0,"div"),xe(1,"cc-mark-folder-row")(2,"mat-divider"),U())}function bje(n,t){if(1&n&&(D(0,"mat-card",0),pt(1,_je,3,0,"div"),D(2,"div",1)(3,"button",2),ye(4),qe(5,"lastPartOfNodePath"),U(),xe(6,"cc-focus-buttons",3)(7,"cc-flatten-buttons",3)(8,"cc-highlight-buttons",3)(9,"cc-exclude-button",3),U()()),2&n){const e=t;Q(),Tt(1,(null==e||null==e.children?null:e.children.length)>0?1:-1),Q(2),Ua("title",e.path),Q(),sn(" ",rt(5,7,e.path)," "),Q(2),_e("codeMapNode",e),Q(),_e("codeMapNode",e),Q(),_e("codeMapNode",e),Q(),_e("codeMapNode",e)}}let vje=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.codeMapNode$=this.store.select(y8)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-node-context-menu-card"]],decls:2,vars:3,consts:[["appearance","outlined","id","codemap-context-menu"],[1,"button-group"],["mat-button","","disabled","true",3,"title"],[3,"codeMapNode"]],template:function(i,r){if(1&i&&(pt(0,bje,10,9,"mat-card",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[cs,DN,rx,J$e,oje,lje,pje,Aje,Kn,gje],styles:["#codemap-context-menu[_ngcontent-%COMP%]{padding:12px}#codemap-context-menu[_ngcontent-%COMP%] .button-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;width:100%}"]})}}return n})(),yje=(()=>{class n{constructor(e,i){this.overlay=e,this.store=i,this.overlayReference=null,this.close=()=>{document.removeEventListener("click",this.onLeftClickHideNodeContextMenu,!0),document.removeEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").removeEventListener("wheel",this.close,!0),this.store.dispatch(gb(null)),this.overlayReference&&this.resetOverlay()},this.onLeftClickHideNodeContextMenu=r=>{this.isEventFromColorPicker(r)||this.close()},this.onRightClickHideNodeContextMenu=r=>{2===r.button&&this.close()}}open(e,i){this.overlayReference&&this.resetOverlay();const r=this.overlay.position().flexibleConnectedTo({x:e,y:i}).withPositions([{originX:"end",originY:"bottom",overlayX:"start",overlayY:"top"}]);this.overlayReference=this.overlay.create({positionStrategy:r,scrollStrategy:this.overlay.scrollStrategies.close()}),this.overlayReference.attach(new H1(vje)),this.overlayReference.overlayElement.addEventListener("contextmenu",o=>{o.preventDefault()}),document.addEventListener("click",this.onLeftClickHideNodeContextMenu,!1),document.addEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").addEventListener("wheel",this.close,!0)}resetOverlay(){this.overlayReference.dispose(),this.overlayReference=null}isEventFromColorPicker(e){return e.composedPath().some(r=>"CC-COLOR-PICKER"===r?.nodeName||"COLOR-CHROME"===r?.nodeName)}static{this.\u0275fac=function(i){return new(i||n)(ve(Ls),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),wje=(()=>{class n{constructor(e,i){this.actions$=e,this.nodeContextMenu=i,this.openNodeContextMenu$=Ao(()=>this.actions$.pipe(za(gb),Dr(r=>{r.value&&this.nodeContextMenu.open(r.value.xPositionOfRightClickEvent,r.value.yPositionOfRightClickEvent)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve(yje))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),xje=(()=>{class n{constructor(e){this.store=e,this.resetSelectedEdgeMetricWhenItDoesntExistAnymore$=Ao(()=>this.store.select(Xs).pipe(hd(this.store.select(tf)),qi(([i,r])=>!i.edgeMetricData.some(o=>o.name===r)),Qe(([i])=>i.edgeMetricData[0]?.name),d1(),Qe(i=>yh({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const Eje=[[r2,I1,o2,VP,dW,uW,OP,LP,RP,NP,UP,t2,n2],[A1,E1,M1,_ee,XN,yee,u5,bh,YE,ZE,JE,S1,kP,XE,y1,v1,b1,_1,Z0,Y0,ax,sm,KE,jE,$E,w1,x1,C1,BP,PP,g1],[J0,e2,yh,ru,e_,am,P1,Eee,hx,AI,gI,wh,T1,pd,vh],[..._2]].flat();let Sje=(()=>{class n{constructor(e,i){var r=this;this.actions$=e,this.state=i,this.saveCcState$=Ao(()=>this.actions$.pipe(qi(o=>o.type!==Ab.type),za(...Eje),n_(500),Dr(k(function*(){const o=r.state.getValue();yield function ube(n){return YP.apply(this,arguments)}(o)}))),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Tje=(()=>{class n{constructor(e){this.actions$=e,this.setIsLoadingFile$=Ao(()=>this.actions$.pipe(za(..._2),Qe(()=>cA({value:!0})))),this.setIsLoadingMap$=Ao(()=>this.actions$.pipe(za(...Hre),Qe(()=>r_({value:!0}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Ije=(()=>{class n{constructor(e){this.store=e,this.unfocusNodes$=Ao(()=>this.store.select(au).pipe(Qe(()=>hx())))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Fje=(()=>{class n{constructor(e){this.store=e,this.resetIsEdgeMetricVisible$=Ao(()=>this.store.select(tf).pipe(hd(this.store.select(oU)),qi(([,i])=>!i),Qe(()=>XE())))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Dje(n,t){const e=new Map;if(1===n.length)return n[0].settings.fileSettings.edges;for(const i of n)if(i.settings.fileSettings.edges)for(const r of i.settings.fileSettings.edges){const o={fromNodeName:t?Ww(i.fileMeta.fileName,r.fromNodeName):r.fromNodeName,toNodeName:t?Ww(i.fileMeta.fileName,r.toNodeName):r.toNodeName,attributes:lu(r.attributes),visible:r.visible},s=e.get(`${o.fromNodeName}|${o.toNodeName}`);if(void 0!==s)for(const a of Object.keys(o.attributes))s.attributes[a]=o.attributes[a];else e.set(`${o.fromNodeName}|${o.toNodeName}`,o)}return[...e.values()]}function kje(n,t){if(1===n.length)return n[0].settings.fileSettings.markedPackages;const e=new Map;for(const i of n)if(i.settings.fileSettings.markedPackages)for(const r of i.settings.fileSettings.markedPackages){const o={path:t?mZ(i.fileMeta.fileName,r.path):r.path,color:r.color};e.set(`${o.path}|${o.color}`,o)}return[...e.values()]}function Bje(n,t){const e=new Map;if(1===n.length)return n[0].settings.fileSettings.blacklist;for(const i of n)if(i.settings.fileSettings.blacklist)for(const r of i.settings.fileSettings.blacklist){const o={path:t?mZ(i.fileMeta.fileName,r.path):r.path,type:r.type};e.set(`${o.path}|${o.type}`,o)}return[...e.values()]}function Pje(n){const t={},e={};for(const i of n){for(const r of Object.keys(i.nodes))t[r]||(t[r]=i.nodes[r]);for(const r of Object.keys(i.edges))e[r]||(e[r]=i.edges[r])}return{nodes:t,edges:e}}function Rje(n){const t={};for(const e of n)for(const i of Object.keys(e))t[i]||(t[i]=e[i]);return t}let Oje=(()=>{class n{constructor(e,i){this.actions$=e,this.state=i,this.updateFileSettings$=Ao(()=>this.actions$.pipe(za(..._2),Qe(()=>{const r=this.state.getValue(),o=function gbe(n){return l2(n).map(t=>t.file)}(r.files),s=CW(r.files),a=au(r).map(({file:c})=>c.settings.fileSettings.attributeTypes),l=au(r).map(({file:c})=>c.settings.fileSettings.attributeDescriptors);return xb({value:{fileSettings:{edges:Dje(o,s),markedPackages:kje(o,s),blacklist:Bje(o,s),attributeTypes:Pje(a),attributeDescriptors:Rje(l)}}})})))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Lje=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateMapColors$=Ao(()=>this.store.select(Nm).pipe(Qe(r=>{const o=this.state.getValue();if(1===o.fileSettings.attributeDescriptors[r]?.direction){const a=JSON.parse(md(o.appSettings.mapColors)),l=a.negative;return a.negative=a.positive,a.positive=l,bh({value:a})}return bh({value:Cu})})))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Nje=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateVisibleTopLabels$=Ao(()=>this.store.select(au).pipe(LU(),hd(this.store.select(JT)),Qe(([[r,o],s])=>{const l=md(r)===md(o)?this.state.getValue().appSettings.amountOfTopLabels:xN(s);return sm({value:l})})))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Uje=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.resetColorRange$=Ao(()=>this.actions$.pipe(za(..._2),gh(()=>this.store.select(Jh).pipe(G1(1),$o(1))),Qe(r=>ru({value:iI(r)})))),this.resetColorRangeOnColorMetricChange$=Ao(()=>this.actions$.pipe(za(pd),gh(()=>this.store.select(Jh).pipe($o(1))),Qe(r=>ru({value:iI(r)}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Hje=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),Vje=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.threeMapControlsService=r,this.focusNode$=Ao(()=>this.actions$.pipe(za(AI),hd(this.store.select(Qre).pipe(gd(null),LU())),Dr(([,[o,s]])=>{o&&!Tee(s,o)?this.threeMapControlsService.unfocusNode(()=>{this.threeMapControlsService.focusNode(s)}):this.threeMapControlsService.focusNode(s)})),{dispatch:!1}),this.unfocus$=Ao(()=>this.actions$.pipe(za(gI),hd(this.store.select(w8)),Dr(([,o])=>{this.threeMapControlsService.unfocusNode(),0!==o.length&&this.threeMapControlsService.focusNode(o[0])})),{dispatch:!1}),this.unfocusAll$=Ao(()=>this.actions$.pipe(za(hx),Dr(()=>{this.threeMapControlsService.unfocusNode()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t),ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Qje=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),zje=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n,bootstrap:[uQe]})}static{this.\u0275inj=It({providers:[Ure,{provide:zV,useFactory:e=>()=>e.synchronizeLocalCodeChartaVersion(),deps:[Ure],multi:!0}],imports:[Ez,aq,E_e.forRoot(TNe,{metaReducers:[INe]}),j_e.forRoot([Ije,_re,wje,xWe,Uje,mVe,Fje,Vre,q$e,Nje,G$e,xje,Oje,Tje,Sje,ove,Lje,Vje]),Wi,ud,l1,Hje,b$e,K$e,Qje]})}}return n})();typeof window<"u"&&!window.__TEST_ENVIRONMENT__&&Xpe().bootstrapModule(zje)},7172:(ut,Se,p)=>{"use strict";var z=p(6685),k=p(5841),m=p(8493),q=p(2420),F=p(8861),I=p(7741),G=p(8930),T=p(2615),W=p(1677);ut.exports=ie,ie.prototype.validate=function Me(Ye,Pt){var jt;if("string"==typeof Ye){if(!(jt=this.getSchema(Ye)))throw new Error('no schema with key or ref "'+Ye+'"')}else{var En=this._addSchema(Ye);jt=En.validate||this._compile(En)}var Xt=jt(Pt);return!0!==jt.$async&&(this.errors=jt.errors),Xt},ie.prototype.compile=function He(Ye,Pt){var jt=this._addSchema(Ye,void 0,Pt);return jt.validate||this._compile(jt)},ie.prototype.addSchema=function Te(Ye,Pt,jt,En){if(Array.isArray(Ye)){for(var Xt=0;Xt{"use strict";var Se=ut.exports=function(){this._cache={}};Se.prototype.put=function(z,k){this._cache[z]=k},Se.prototype.get=function(z){return this._cache[z]},Se.prototype.del=function(z){delete this._cache[z]},Se.prototype.clear=function(){this._cache={}}},4442:(ut,Se,p)=>{"use strict";var z=p(8892).MissingRef;ut.exports=function k(m,q,F){var I=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof q&&(F=q,q=void 0);var G=T(m).then(function(){var V=I._addSchema(m,void 0,q);return V.validate||W(V)});return F&&G.then(function(V){F(null,V)},F),G;function T(V){var X=V.$schema;return X&&!I.getSchema(X)?k.call(I,{$ref:X},!0):Promise.resolve()}function W(V){try{return I._compile(V)}catch(P){if(P instanceof z)return function X(P){var K=P.missingSchema;if(Me(K))throw new Error("Schema "+K+" is loaded but "+P.missingRef+" cannot be resolved");var oe=I._loadingSchemas[K];return oe||(oe=I._loadingSchemas[K]=I._opts.loadSchema(K)).then(ie,ie),oe.then(function(He){if(!Me(K))return T(He).then(function(){Me(K)||I.addSchema(He,K,void 0,q)})}).then(function(){return W(V)});function ie(){delete I._loadingSchemas[K]}function Me(He){return I._refs[He]||I._schemas[He]}}(P);throw P}}}},8892:(ut,Se,p)=>{"use strict";var z=p(5841);function m(F,I,G){this.message=G||m.message(F,I),this.missingRef=z.url(F,I),this.missingSchema=z.normalizeId(z.fullPath(this.missingRef))}function q(F){return F.prototype=Object.create(Error.prototype),F.prototype.constructor=F,F}ut.exports={Validation:q(function k(F){this.message="validation failed",this.errors=F,this.ajv=this.validation=!0}),MissingRef:q(m)},m.message=function(F,I){return"can't resolve reference "+I+" from id "+F}},7741:(ut,Se,p)=>{"use strict";var z=p(1677),k=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m=[0,31,28,31,30,31,30,31,31,30,31,30,31],q=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,F=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,I=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,T=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,W=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,V=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,X=/^(?:\/(?:[^~/]|~0|~1)*)*$/,P=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,K=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function oe(Ne){return z.copy(oe[Ne="full"==Ne?"full":"fast"])}function Me(Ne){var st=Ne.match(k);if(!st)return!1;var Fe=+st[2],ge=+st[3];return Fe>=1&&Fe<=12&&ge>=1&&ge<=(2==Fe&&function ie(Ne){return Ne%4==0&&(Ne%100!=0||Ne%400==0)}(+st[1])?29:m[Fe])}function He(Ne,st){var Ge=Ne.match(q);if(!Ge)return!1;var Fe=Ge[1],ge=Ge[2],Oe=Ge[3];return(Fe<=23&&ge<=59&&Oe<=59||23==Fe&&59==ge&&60==Oe)&&(!st||Ge[5])}ut.exports=oe,oe.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":T,url:W,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:F,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:et,uuid:V,"json-pointer":X,"json-pointer-uri-fragment":P,"relative-json-pointer":K},oe.full={date:Me,time:He,"date-time":function Xe(Ne){var st=Ne.split(Te);return 2==st.length&&Me(st[0])&&He(st[1],!0)},uri:function ke(Ne){return Je.test(Ne)&&I.test(Ne)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":T,url:W,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:F,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:et,uuid:V,"json-pointer":X,"json-pointer-uri-fragment":P,"relative-json-pointer":K};var Te=/t|\s/i,Je=/\/|:/,gt=/[^\\]\\Z/;function et(Ne){if(gt.test(Ne))return!1;try{return new RegExp(Ne),!0}catch{return!1}}},6685:(ut,Se,p)=>{"use strict";var z=p(5841),k=p(1677),m=p(8892),q=p(8861),F=p(604),I=k.ucs2length,G=p(362),T=m.Validation;function V(Te,Xe,Je){var ke=P.call(this,Te,Xe,Je);return ke>=0?{index:ke,compiling:!0}:(this._compilations[ke=this._compilations.length]={schema:Te,root:Xe,baseId:Je},{index:ke,compiling:!1})}function X(Te,Xe,Je){var ke=P.call(this,Te,Xe,Je);ke>=0&&this._compilations.splice(ke,1)}function P(Te,Xe,Je){for(var ke=0;ke{"use strict";var z=p(5568),k=p(362),m=p(1677),q=p(2420),F=p(4331);function I(ke,gt,et){var Ne=this._refs[et];if("string"==typeof Ne){if(!this._refs[Ne])return I.call(this,ke,gt,Ne);Ne=this._refs[Ne]}if((Ne=Ne||this._schemas[et])instanceof q)return P(Ne.schema,this._opts.inlineRefs)?Ne.schema:Ne.validate||this._compile(Ne);var Ge,Fe,ge,st=G.call(this,gt,et);return st&&(Ge=st.schema,gt=st.root,ge=st.baseId),Ge instanceof q?Fe=Ge.validate||ke.call(this,Ge.schema,gt,void 0,ge):void 0!==Ge&&(Fe=P(Ge,this._opts.inlineRefs)?Ge:ke.call(this,Ge,gt,void 0,ge)),Fe}function G(ke,gt){var et=z.parse(gt),Ne=Me(et),st=ie(this._getId(ke.schema));if(0===Object.keys(ke.schema).length||Ne!==st){var Ge=Te(Ne),Fe=this._refs[Ge];if("string"==typeof Fe)return T.call(this,ke,Fe,et);if(Fe instanceof q)Fe.validate||this._compile(Fe),ke=Fe;else{if(!((Fe=this._schemas[Ge])instanceof q))return;if(Fe.validate||this._compile(Fe),Ge==Te(gt))return{schema:Fe,root:ke,baseId:st};ke=Fe}if(!ke.schema)return;st=ie(this._getId(ke.schema))}return V.call(this,et,st,ke.schema,ke)}function T(ke,gt,et){var Ne=G.call(this,ke,gt);if(Ne){var st=Ne.schema,Ge=Ne.baseId;ke=Ne.root;var Fe=this._getId(st);return Fe&&(Ge=Xe(Ge,Fe)),V.call(this,et,Ge,st,ke)}}ut.exports=I,I.normalizeId=Te,I.fullPath=ie,I.url=Xe,I.ids=function Je(ke){var gt=Te(this._getId(ke)),et={"":gt},Ne={"":ie(gt,!1)},st={},Ge=this;return F(ke,{allKeys:!0},function(Fe,ge,Oe,tt,Re,mt,St){if(""!==ge){var Lt=Ge._getId(Fe),qt=et[tt],wn=Ne[tt]+"/"+Re;if(void 0!==St&&(wn+="/"+("number"==typeof St?St:m.escapeFragment(St))),"string"==typeof Lt){Lt=qt=Te(qt?z.resolve(qt,Lt):Lt);var On=Ge._refs[Lt];if("string"==typeof On&&(On=Ge._refs[On]),On&&On.schema){if(!k(Fe,On.schema))throw new Error('id "'+Lt+'" resolves to more than one schema')}else if(Lt!=Te(wn))if("#"==Lt[0]){if(st[Lt]&&!k(Fe,st[Lt]))throw new Error('id "'+Lt+'" resolves to more than one schema');st[Lt]=Fe}else Ge._refs[Lt]=wn}et[ge]=qt,Ne[ge]=wn}}),st},I.inlineRef=P,I.schema=G;var W=m.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function V(ke,gt,et,Ne){if(ke.fragment=ke.fragment||"","/"==ke.fragment.slice(0,1)){for(var st=ke.fragment.split("/"),Ge=1;Ge{"use strict";var z=p(2956),k=p(1677).toHash;ut.exports=function(){var q=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],F=["type","$comment"];return q.all=k(F),q.types=k(["number","integer","string","array","object","boolean","null"]),q.forEach(function(T){T.rules=T.rules.map(function(W){var V;if("object"==typeof W){var X=Object.keys(W)[0];V=W[X],W=X,V.forEach(function(K){F.push(K),q.all[K]=!0})}return F.push(W),q.all[W]={keyword:W,code:z[W],implements:V}}),q.all.$comment={keyword:"$comment",code:z.$comment},T.type&&(q.types[T.type]=T)}),q.keywords=k(F.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),q.custom={},q}},2420:(ut,Se,p)=>{"use strict";var z=p(1677);ut.exports=function k(m){z.copy(m,this)}},1132:ut=>{"use strict";ut.exports=function(p){for(var q,z=0,k=p.length,m=0;m=55296&&q<=56319&&m{"use strict";function k(Fe,ge,Oe,tt){var Re=tt?" !== ":" === ",mt=tt?" || ":" && ",St=tt?"!":"",Lt=tt?"":"!";switch(Fe){case"null":return ge+Re+"null";case"array":return St+"Array.isArray("+ge+")";case"object":return"("+St+ge+mt+"typeof "+ge+Re+'"object"'+mt+Lt+"Array.isArray("+ge+"))";case"integer":return"(typeof "+ge+Re+'"number"'+mt+Lt+"("+ge+" % 1)"+mt+ge+Re+ge+(Oe?mt+St+"isFinite("+ge+")":"")+")";case"number":return"(typeof "+ge+Re+'"'+Fe+'"'+(Oe?mt+St+"isFinite("+ge+")":"")+")";default:return"typeof "+ge+Re+'"'+Fe+'"'}}ut.exports={copy:function z(Fe,ge){for(var Oe in ge=ge||{},Fe)ge[Oe]=Fe[Oe];return ge},checkDataType:k,checkDataTypes:function m(Fe,ge,Oe){if(1===Fe.length)return k(Fe[0],ge,Oe,!0);var tt="",Re=I(Fe);for(var mt in Re.array&&Re.object&&(tt=Re.null?"(":"(!"+ge+" || ",tt+="typeof "+ge+' !== "object")',delete Re.null,delete Re.array,delete Re.object),Re.number&&delete Re.integer,Re)tt+=(tt?" && ":"")+k(mt,ge,Oe,!0);return tt},coerceToTypes:function F(Fe,ge){if(Array.isArray(ge)){for(var Oe=[],tt=0;tt=ge)throw new Error("Cannot access property/index "+tt+" levels up, current level is "+ge);return Oe[ge-tt]}if(tt>ge)throw new Error("Cannot access data "+tt+" levels up, current level is "+ge);if(mt="data"+(ge-tt||""),!Re)return mt}for(var Lt=mt,qt=Re.split("/"),wn=0;wn{"use strict";var Se=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];ut.exports=function(p,z){for(var k=0;k{"use strict";var z=p(8198);ut.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:z.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:z.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},9402:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I;var K="maximum"==z,oe=K?"exclusiveMaximum":"exclusiveMinimum",ie=p.schema[oe],Me=p.opts.$data&&ie&&ie.$data,He=K?"<":">",Te=K?">":"<",Xe=void 0;if(!X&&"number"!=typeof I&&void 0!==I)throw new Error(z+" must be number");if(!Me&&void 0!==ie&&"number"!=typeof ie&&"boolean"!=typeof ie)throw new Error(oe+" must be number or boolean");if(Me){var Ge,Je=p.util.getData(ie.$data,F,p.dataPathArr),ke="exclusive"+q,gt="exclType"+q,et="exclIsNumber"+q,st="' + "+(Ne="op"+q)+" + '";m+=" var schemaExcl"+q+" = "+Je+"; ",Xe=oe,(Ge=Ge||[]).push(m+=" var "+ke+"; var "+gt+" = typeof "+(Je="schemaExcl"+q)+"; if ("+gt+" != 'boolean' && "+gt+" != 'undefined' && "+gt+" != 'number') { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(Xe||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: '"+oe+" should be boolean' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Fe=m;m=Ge.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Fe+"]); ":" validate.errors = ["+Fe+"]; return false; ":" var err = "+Fe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=" "+gt+" == 'number' ? ( ("+ke+" = "+P+" === undefined || "+Je+" "+He+"= "+P+") ? "+V+" "+Te+"= "+Je+" : "+V+" "+Te+" "+P+" ) : ( ("+ke+" = "+Je+" === true) ? "+V+" "+Te+"= "+P+" : "+V+" "+Te+" "+P+" ) || "+V+" !== "+V+") { var op"+q+" = "+ke+" ? '"+He+"' : '"+He+"='; ",void 0===I&&(Xe=oe,T=p.errSchemaPath+"/"+oe,P=Je,X=Me)}else if(st=He,(et="number"==typeof ie)&&X){var Ne="'"+st+"'";m+=" if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=" ( "+P+" === undefined || "+ie+" "+He+"= "+P+" ? "+V+" "+Te+"= "+ie+" : "+V+" "+Te+" "+P+" ) || "+V+" !== "+V+") { "}else et&&void 0===I?(ke=!0,Xe=oe,T=p.errSchemaPath+"/"+oe,P=ie,Te+="="):(et&&(P=Math[K?"min":"max"](ie,I)),ie===(!et||P)?(ke=!0,Xe=oe,T=p.errSchemaPath+"/"+oe,Te+="="):(ke=!1,st+="=")),Ne="'"+st+"'",m+=" if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=" "+V+" "+Te+" "+P+" || "+V+" !== "+V+") { ";return Xe=Xe||z,(Ge=Ge||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: '"+(Xe||"_limit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { comparison: "+Ne+", limit: "+P+", exclusive: "+ke+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be "+st+" ",m+=X?"' + "+P:P+"'"),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",Fe=m,m=Ge.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Fe+"]); ":" validate.errors = ["+Fe+"]; return false; ":" var err = "+Fe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",W&&(m+=" else { "),m}},3792:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || ");var oe=z,ie=ie||[];ie.push(m+=" "+V+".length "+("maxItems"==z?">":"<")+" "+P+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(oe||"_limitItems")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have ",m+="maxItems"==z?"more":"fewer",m+=" than ",m+=X?"' + "+P+" + '":""+I,m+=" items' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Me=m;return m=ie.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},3226:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=!1===p.opts.unicode?" "+V+".length ":" ucs2length("+V+") ";var oe=z,ie=ie||[];ie.push(m+=" "+("maxLength"==z?">":"<")+" "+P+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(oe||"_limitLength")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be ",m+="maxLength"==z?"longer":"shorter",m+=" than ",m+=X?"' + "+P+" + '":""+I,m+=" characters' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Me=m;return m=ie.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},2119:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || ");var oe=z,ie=ie||[];ie.push(m+=" Object.keys("+V+").length "+("maxProperties"==z?">":"<")+" "+P+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(oe||"_limitProperties")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have ",m+="maxProperties"==z?"more":"fewer",m+=" than ",m+=X?"' + "+P+" + '":""+I,m+=" properties' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Me=m;return m=ie.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},9218:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.schema[z],F=p.schemaPath+p.util.getProperty(z),I=p.errSchemaPath+"/"+z,G=!p.opts.allErrors,T=p.util.copy(p),W="";T.level++;var V="valid"+T.level,X=T.baseId,P=!0,K=q;if(K)for(var oe,ie=-1,Me=K.length-1;ie0||!1===oe:p.util.schemaHasRules(oe,p.RULES.all))&&(P=!1,T.schema=oe,T.schemaPath=F+"["+ie+"]",T.errSchemaPath=I+"/"+ie,m+=" "+p.validate(T)+" ",T.baseId=X,G&&(m+=" if ("+V+") { ",W+="}"));return G&&(m+=P?" if (true) { ":" "+W.slice(0,-1)+" "),m}},3883:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p),oe="";K.level++;var ie="valid"+K.level;if(I.every(function(et){return p.opts.strictKeywords?"object"==typeof et&&Object.keys(et).length>0||!1===et:p.util.schemaHasRules(et,p.RULES.all)})){var He=K.baseId;m+=" var "+P+" = errors; var "+X+" = false; ";var Te=p.compositeRule;p.compositeRule=K.compositeRule=!0;var Xe=I;if(Xe)for(var Je,ke=-1,gt=Xe.length-1;ke{"use strict";ut.exports=function(p,z,k){var m=" ",F=p.errSchemaPath+"/"+z,G=p.util.toQuotedString(p.schema[z]);return!0===p.opts.$comment?m+=" console.log("+G+");":"function"==typeof p.opts.$comment&&(m+=" self._opts.$comment("+G+", "+p.util.toQuotedString(F)+", validate.root.schema);"),m}},439:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;P&&(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; "),P||(m+=" var schema"+q+" = validate.schema"+G+";");var oe=oe||[];oe.push(m+="var "+X+" = equal("+V+", schema"+q+"); if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'const' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValue: schema"+q+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be equal to constant' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ie=m;return m=oe.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ie+"]); ":" validate.errors = ["+ie+"]; return false; ":" var err = "+ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" }",W&&(m+=" else { "),m}},7939:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p);K.level++;var ie="valid"+K.level,Me="i"+q,He=K.dataLevel=p.dataLevel+1,Te="data"+He,Xe=p.baseId,Je=p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all);if(m+="var "+P+" = errors;var "+X+";",Je){var ke=p.compositeRule;p.compositeRule=K.compositeRule=!0,K.schema=I,K.schemaPath=G,K.errSchemaPath=T,m+=" var "+ie+" = false; for (var "+Me+" = 0; "+Me+" < "+V+".length; "+Me+"++) { ",K.errorPath=p.util.getPathExpr(p.errorPath,Me,p.opts.jsonPointers,!0);var gt=V+"["+Me+"]";K.dataPathArr[He]=Me;var et=p.validate(K);K.baseId=Xe,p.util.varOccurences(et,Te)<2?m+=" "+p.util.varReplace(et,Te,gt)+" ":m+=" var "+Te+" = "+gt+"; "+et+" ",m+=" if ("+ie+") break; } ",p.compositeRule=K.compositeRule=ke,m+=" if (!"+ie+") {"}else m+=" if ("+V+".length == 0) {";var Ne=Ne||[];Ne.push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should contain a valid item' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var st=m;return m=Ne.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+st+"]); ":" validate.errors = ["+st+"]; return false; ":" var err = "+st+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { ",Je&&(m+=" errors = "+P+"; if (vErrors !== null) { if ("+P+") vErrors.length = "+P+"; else vErrors = null; } "),p.opts.allErrors&&(m+=" } "),m}},5237:ut=>{"use strict";ut.exports=function(p,z,k){var V,ie,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,X="data"+(F||""),P="valid"+q,K="errs__"+q,oe=p.opts.$data&&I&&I.$data;oe?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",ie="schema"+q):ie=I;var Je,ke,gt,et,Ne,Me=this,He="definition"+q,Te=Me.definition,Xe="";if(oe&&Te.$data){var st=Te.validateSchema;m+=" var "+He+" = RULES.custom['"+z+"'].definition; var "+(Ne="keywordValidate"+q)+" = "+He+".validate;"}else{if(!(et=p.useCustomRule(Me,I,p.schema,p)))return;ie="validate.schema"+G,Ne=et.code,Je=Te.compile,ke=Te.inline,gt=Te.macro}var Ge=Ne+".errors",Fe="i"+q,ge="ruleErr"+q,Oe=Te.async;if(Oe&&!p.async)throw new Error("async keyword in sync schema");if(ke||gt||(m+=Ge+" = null;"),m+="var "+K+" = errors;var "+P+";",oe&&Te.$data&&(Xe+="}",m+=" if ("+ie+" === undefined) { "+P+" = true; } else { ",st&&(Xe+="}",m+=" "+P+" = "+He+".validateSchema("+ie+"); if ("+P+") { ")),ke)m+=Te.statements?" "+et.validate+" ":" "+P+" = "+et.validate+"; ";else if(gt){var tt=p.util.copy(p);Xe="",tt.level++;var Re="valid"+tt.level;tt.schema=et.validate,tt.schemaPath="";var mt=p.compositeRule;p.compositeRule=tt.compositeRule=!0;var St=p.validate(tt).replace(/validate\.schema/g,Ne);p.compositeRule=tt.compositeRule=mt,m+=" "+St}else{(Lt=Lt||[]).push(m),m="",m+=" "+Ne+".call( ",m+=p.opts.passContext?"this":"self",m+=Je||!1===Te.schema?" , "+X+" ":" , "+ie+" , "+X+" , validate.schema"+p.schemaPath+" ",m+=" , (dataPath || '')",'""'!=p.errorPath&&(m+=" + "+p.errorPath);var qt=F?"data"+(F-1||""):"parentData",wn=F?p.dataPathArr[F]:"parentDataProperty",On=m+=" , "+qt+" , "+wn+" , rootData ) ";m=Lt.pop(),!1===Te.errors?(m+=" "+P+" = ",Oe&&(m+="await "),m+=On+"; "):m+=Oe?" var "+(Ge="customErrors"+q)+" = null; try { "+P+" = await "+On+"; } catch (e) { "+P+" = false; if (e instanceof ValidationError) "+Ge+" = e.errors; else throw e; } ":" "+Ge+" = null; "+P+" = "+On+"; "}if(Te.modifying&&(m+=" if ("+qt+") "+X+" = "+qt+"["+wn+"];"),m+=""+Xe,Te.valid)W&&(m+=" if (true) { ");else{var Lt;m+=" if ( ",void 0===Te.valid?(m+=" !",m+=gt?""+Re:""+P):m+=" "+!Te.valid+" ",V=Me.keyword,(Lt=Lt||[]).push(m+=") { "),(Lt=Lt||[]).push(m=""),m="",!1!==p.createErrors?(m+=" { keyword: '"+(V||"custom")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { keyword: '"+Me.keyword+"' } ",!1!==p.opts.messages&&(m+=" , message: 'should pass \""+Me.keyword+"\" keyword validation' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+X+" "),m+=" } "):m+=" {} ";var _i=m;m=Lt.pop();var jn=m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+_i+"]); ":" validate.errors = ["+_i+"]; return false; ":" var err = "+_i+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";m=Lt.pop(),ke?Te.errors?"full"!=Te.errors&&(m+=" for (var "+Fe+"="+K+"; "+Fe+"{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p),K="";P.level++;var oe="valid"+P.level,ie={},Me={},He=p.opts.ownProperties;for(ke in I)if("__proto__"!=ke){var Te=I[ke],Xe=Array.isArray(Te)?Me:ie;Xe[ke]=Te}m+="var "+X+" = errors;";var Je=p.errorPath;for(var ke in m+="var missing"+q+";",Me)if((Xe=Me[ke]).length){if(m+=" if ( "+V+p.util.getProperty(ke)+" !== undefined ",He&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(ke)+"') "),W){m+=" && ( ";var gt=Xe;if(gt)for(var Ne=-1,st=gt.length-1;Ne0||!1===Te:p.util.schemaHasRules(Te,p.RULES.all))&&(m+=" "+oe+" = true; if ( "+V+p.util.getProperty(ke)+" !== undefined ",He&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(ke)+"') "),m+=") { ",P.schema=Te,P.schemaPath=G+p.util.getProperty(ke),P.errSchemaPath=T+"/"+p.util.escapeFragment(ke),m+=" "+p.validate(P)+" ",P.baseId=qt,m+=" } ",W&&(m+=" if ("+oe+") { ",K+="}"));return W&&(m+=" "+K+" if ("+X+" == errors) {"),m}},4299:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;P&&(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ");var oe="i"+q,ie="schema"+q;P||(m+=" var "+ie+" = validate.schema"+G+";"),m+="var "+X+";",P&&(m+=" if (schema"+q+" === undefined) "+X+" = true; else if (!Array.isArray(schema"+q+")) "+X+" = false; else {"),m+=X+" = false;for (var "+oe+"=0; "+oe+"<"+ie+".length; "+oe+"++) if (equal("+V+", "+ie+"["+oe+"])) { "+X+" = true; break; }",P&&(m+=" } ");var Me=Me||[];Me.push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValues: schema"+q+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be equal to one of the allowed values' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var He=m;return m=Me.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+He+"]); ":" validate.errors = ["+He+"]; return false; ":" var err = "+He+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" }",W&&(m+=" else { "),m}},4097:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||"");if(!1===p.opts.format)return W&&(m+=" if (true) { "),m;var P,X=p.opts.$data&&I&&I.$data;X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I;var K=p.opts.unknownFormats,oe=Array.isArray(K);if(X)m+=" var "+(ie="format"+q)+" = formats["+P+"]; var "+(Me="isObject"+q)+" = typeof "+ie+" == 'object' && !("+ie+" instanceof RegExp) && "+ie+".validate; var "+(He="formatType"+q)+" = "+Me+" && "+ie+".type || 'string'; if ("+Me+") { ",p.async&&(m+=" var async"+q+" = "+ie+".async; "),m+=" "+ie+" = "+ie+".validate; } if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'string') || "),m+=" (","ignore"!=K&&(m+=" ("+P+" && !"+ie+" ",oe&&(m+=" && self._opts.unknownFormats.indexOf("+P+") == -1 "),m+=") || "),m+=" ("+ie+" && "+He+" == '"+k+"' && !(typeof "+ie+" == 'function' ? ",m+=p.async?" (async"+q+" ? await "+ie+"("+V+") : "+ie+"("+V+")) ":" "+ie+"("+V+") ",m+=" : "+ie+".test("+V+"))))) {";else{var ie;if(!(ie=p.formats[I])){if("ignore"==K)return p.logger.warn('unknown format "'+I+'" ignored in schema at path "'+p.errSchemaPath+'"'),W&&(m+=" if (true) { "),m;if(oe&&K.indexOf(I)>=0)return W&&(m+=" if (true) { "),m;throw new Error('unknown format "'+I+'" is used in schema at path "'+p.errSchemaPath+'"')}var Me,He=(Me="object"==typeof ie&&!(ie instanceof RegExp)&&ie.validate)&&ie.type||"string";if(Me){var Te=!0===ie.async;ie=ie.validate}if(He!=k)return W&&(m+=" if (true) { "),m;if(Te){if(!p.async)throw new Error("async format in sync schema");m+=" if (!(await "+(Xe="formats"+p.util.getProperty(I)+".validate")+"("+V+"))) { "}else{m+=" if (! ";var Xe="formats"+p.util.getProperty(I);Me&&(Xe+=".validate"),m+="function"==typeof ie?" "+Xe+"("+V+") ":" "+Xe+".test("+V+") ",m+=") { "}}var Je=Je||[];Je.push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'format' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { format: ",m+=X?""+P:""+p.util.toQuotedString(I),m+=" } ",!1!==p.opts.messages&&(m+=" , message: 'should match format \"",m+=X?"' + "+P+" + '":""+p.util.escapeQuotes(I),m+="\"' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+p.util.toQuotedString(I),m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ke=m;return m=Je.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ke+"]); ":" validate.errors = ["+ke+"]; return false; ":" var err = "+ke+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",W&&(m+=" else { "),m}},2061:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p);K.level++;var oe="valid"+K.level,ie=p.schema.then,Me=p.schema.else,He=void 0!==ie&&(p.opts.strictKeywords?"object"==typeof ie&&Object.keys(ie).length>0||!1===ie:p.util.schemaHasRules(ie,p.RULES.all)),Te=void 0!==Me&&(p.opts.strictKeywords?"object"==typeof Me&&Object.keys(Me).length>0||!1===Me:p.util.schemaHasRules(Me,p.RULES.all)),Xe=K.baseId;if(He||Te){var Je;K.createErrors=!1,K.schema=I,K.schemaPath=G,K.errSchemaPath=T,m+=" var "+P+" = errors; var "+X+" = true; ";var ke=p.compositeRule;p.compositeRule=K.compositeRule=!0,m+=" "+p.validate(K)+" ",K.baseId=Xe,K.createErrors=!0,m+=" errors = "+P+"; if (vErrors !== null) { if ("+P+") vErrors.length = "+P+"; else vErrors = null; } ",p.compositeRule=K.compositeRule=ke,He?(m+=" if ("+oe+") { ",K.schema=p.schema.then,K.schemaPath=p.schemaPath+".then",K.errSchemaPath=p.errSchemaPath+"/then",m+=" "+p.validate(K)+" ",K.baseId=Xe,m+=" "+X+" = "+oe+"; ",He&&Te?m+=" var "+(Je="ifClause"+q)+" = 'then'; ":Je="'then'",m+=" } ",Te&&(m+=" else { ")):m+=" if (!"+oe+") { ",Te&&(K.schema=p.schema.else,K.schemaPath=p.schemaPath+".else",K.errSchemaPath=p.errSchemaPath+"/else",m+=" "+p.validate(K)+" ",K.baseId=Xe,m+=" "+X+" = "+oe+"; ",He&&Te?m+=" var "+(Je="ifClause"+q)+" = 'else'; ":Je="'else'",m+=" } "),m+=" if (!"+X+") { var err = ",!1!==p.createErrors?(m+=" { keyword: 'if' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { failingKeyword: "+Je+" } ",!1!==p.opts.messages&&(m+=" , message: 'should match \"' + "+Je+" + '\" schema' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&W&&(m+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),m+=" } ",W&&(m+=" else { ")}else W&&(m+=" if (true) { ");return m}},2956:(ut,Se,p)=>{"use strict";ut.exports={$ref:p(3953),allOf:p(9218),anyOf:p(3883),$comment:p(757),const:p(439),contains:p(7939),dependencies:p(3899),enum:p(4299),format:p(4097),if:p(2061),items:p(9240),maximum:p(9402),minimum:p(9402),maxItems:p(3792),minItems:p(3792),maxLength:p(3226),minLength:p(3226),maxProperties:p(2119),minProperties:p(2119),multipleOf:p(9095),not:p(8457),oneOf:p(7681),pattern:p(9438),properties:p(6319),propertyNames:p(6611),required:p(5051),uniqueItems:p(5329),validate:p(604)}},9240:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p),oe="";K.level++;var ie="valid"+K.level,Me="i"+q,He=K.dataLevel=p.dataLevel+1,Te="data"+He,Xe=p.baseId;if(m+="var "+P+" = errors;var "+X+";",Array.isArray(I)){var Je=p.schema.additionalItems;if(!1===Je){m+=" "+X+" = "+V+".length <= "+I.length+"; ";var ke=T;T=p.errSchemaPath+"/additionalItems";var gt=gt||[];gt.push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+I.length+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have more than "+I.length+" items' "),p.opts.verbose&&(m+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var et=m;m=gt.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+et+"]); ":" validate.errors = ["+et+"]; return false; ":" var err = "+et+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",T=ke,W&&(oe+="}",m+=" else { ")}var Ne=I;if(Ne)for(var st,Ge=-1,Fe=Ne.length-1;Ge0||!1===st:p.util.schemaHasRules(st,p.RULES.all)){m+=" "+ie+" = true; if ("+V+".length > "+Ge+") { ";var ge=V+"["+Ge+"]";K.schema=st,K.schemaPath=G+"["+Ge+"]",K.errSchemaPath=T+"/"+Ge,K.errorPath=p.util.getPathExpr(p.errorPath,Ge,p.opts.jsonPointers,!0),K.dataPathArr[He]=Ge;var Oe=p.validate(K);K.baseId=Xe,p.util.varOccurences(Oe,Te)<2?m+=" "+p.util.varReplace(Oe,Te,ge)+" ":m+=" var "+Te+" = "+ge+"; "+Oe+" ",m+=" } ",W&&(m+=" if ("+ie+") { ",oe+="}")}"object"==typeof Je&&(p.opts.strictKeywords?"object"==typeof Je&&Object.keys(Je).length>0||!1===Je:p.util.schemaHasRules(Je,p.RULES.all))&&(K.schema=Je,K.schemaPath=p.schemaPath+".additionalItems",K.errSchemaPath=p.errSchemaPath+"/additionalItems",m+=" "+ie+" = true; if ("+V+".length > "+I.length+") { for (var "+Me+" = "+I.length+"; "+Me+" < "+V+".length; "+Me+"++) { ",K.errorPath=p.util.getPathExpr(p.errorPath,Me,p.opts.jsonPointers,!0),ge=V+"["+Me+"]",K.dataPathArr[He]=Me,Oe=p.validate(K),K.baseId=Xe,p.util.varOccurences(Oe,Te)<2?m+=" "+p.util.varReplace(Oe,Te,ge)+" ":m+=" var "+Te+" = "+ge+"; "+Oe+" ",W&&(m+=" if (!"+ie+") break; "),m+=" } } ",W&&(m+=" if ("+ie+") { ",oe+="}"))}else(p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all))&&(K.schema=I,K.schemaPath=G,K.errSchemaPath=T,m+=" for (var "+Me+" = 0; "+Me+" < "+V+".length; "+Me+"++) { ",K.errorPath=p.util.getPathExpr(p.errorPath,Me,p.opts.jsonPointers,!0),ge=V+"["+Me+"]",K.dataPathArr[He]=Me,Oe=p.validate(K),K.baseId=Xe,p.util.varOccurences(Oe,Te)<2?m+=" "+p.util.varReplace(Oe,Te,ge)+" ":m+=" var "+Te+" = "+ge+"; "+Oe+" ",W&&(m+=" if (!"+ie+") break; "),m+=" }");return W&&(m+=" "+oe+" if ("+P+" == errors) {"),m}},9095:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="var division"+q+";if (",X&&(m+=" "+P+" !== undefined && ( typeof "+P+" != 'number' || "),m+=" (division"+q+" = "+V+" / "+P+", ",m+=p.opts.multipleOfPrecision?" Math.abs(Math.round(division"+q+") - division"+q+") > 1e-"+p.opts.multipleOfPrecision+" ":" division"+q+" !== parseInt(division"+q+") ",m+=" ) ",X&&(m+=" ) ");var K=K||[];K.push(m+=" ) { "),m="",!1!==p.createErrors?(m+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { multipleOf: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be multiple of ",m+=X?"' + "+P:P+"'"),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var oe=m;return m=K.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+oe+"]); ":" validate.errors = ["+oe+"]; return false; ":" var err = "+oe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},8457:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p);P.level++;var K="valid"+P.level;if(p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all)){P.schema=I,P.schemaPath=G,P.errSchemaPath=T,m+=" var "+X+" = errors; ";var ie,oe=p.compositeRule;p.compositeRule=P.compositeRule=!0,P.createErrors=!1,P.opts.allErrors&&(ie=P.opts.allErrors,P.opts.allErrors=!1),m+=" "+p.validate(P)+" ",P.createErrors=!0,ie&&(P.opts.allErrors=ie),p.compositeRule=P.compositeRule=oe;var Me=Me||[];Me.push(m+=" if ("+K+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be valid' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var He=m;m=Me.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+He+"]); ":" validate.errors = ["+He+"]; return false; ":" var err = "+He+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { errors = "+X+"; if (vErrors !== null) { if ("+X+") vErrors.length = "+X+"; else vErrors = null; } ",p.opts.allErrors&&(m+=" } ")}else m+=" var err = ",!1!==p.createErrors?(m+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be valid' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",W&&(m+=" if (false) { ");return m}},7681:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p),oe="";K.level++;var ie="valid"+K.level,Me=K.baseId,He="prevValid"+q,Te="passingSchemas"+q;m+="var "+P+" = errors , "+He+" = false , "+X+" = false , "+Te+" = null; ";var Xe=p.compositeRule;p.compositeRule=K.compositeRule=!0;var Je=I;if(Je)for(var ke,gt=-1,et=Je.length-1;gt0||!1===ke:p.util.schemaHasRules(ke,p.RULES.all))?(K.schema=ke,K.schemaPath=G+"["+gt+"]",K.errSchemaPath=T+"/"+gt,m+=" "+p.validate(K)+" ",K.baseId=Me):m+=" var "+ie+" = true; ",gt&&(m+=" if ("+ie+" && "+He+") { "+X+" = false; "+Te+" = ["+Te+", "+gt+"]; } else { ",oe+="}"),m+=" if ("+ie+") { "+X+" = "+He+" = true; "+Te+" = "+gt+"; }";return p.compositeRule=K.compositeRule=Xe,m+=oe+"if (!"+X+") { var err = ",!1!==p.createErrors?(m+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { passingSchemas: "+Te+" } ",!1!==p.opts.messages&&(m+=" , message: 'should match exactly one schema in oneOf' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&W&&(m+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),m+="} else { errors = "+P+"; if (vErrors !== null) { if ("+P+") vErrors.length = "+P+"; else vErrors = null; }",p.opts.allErrors&&(m+=" } "),m}},9438:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I;var K=X?"(new RegExp("+P+"))":p.usePattern(I);m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'string') || ");var oe=oe||[];oe.push(m+=" !"+K+".test("+V+") ) { "),m="",!1!==p.createErrors?(m+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { pattern: ",m+=X?""+P:""+p.util.toQuotedString(I),m+=" } ",!1!==p.opts.messages&&(m+=" , message: 'should match pattern \"",m+=X?"' + "+P+" + '":""+p.util.escapeQuotes(I),m+="\"' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+p.util.toQuotedString(I),m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ie=m;return m=oe.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ie+"]); ":" validate.errors = ["+ie+"]; return false; ":" var err = "+ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},6319:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p),K="";P.level++;var oe="valid"+P.level,ie="key"+q,Me="idx"+q,He=P.dataLevel=p.dataLevel+1,Te="data"+He,Xe="dataProperties"+q,Je=Object.keys(I||{}).filter(St),ke=p.schema.patternProperties||{},gt=Object.keys(ke).filter(St),et=p.schema.additionalProperties,Ne=Je.length||gt.length,st=!1===et,Ge="object"==typeof et&&Object.keys(et).length,Fe=p.opts.removeAdditional,ge=st||Ge||Fe,Oe=p.opts.ownProperties,tt=p.baseId,Re=p.schema.required;if(Re&&(!p.opts.$data||!Re.$data)&&Re.length8)m+=" || validate.schema"+G+".hasOwnProperty("+ie+") ";else{var Lt=Je;if(Lt)for(var wn=-1,On=Lt.length-1;wn0||!1===ri:p.util.schemaHasRules(ri,p.RULES.all)){var Qo=p.util.getProperty(qt),So=(on=V+Qo,Ri&&void 0!==ri.default);if(P.schema=ri,P.schemaPath=G+Qo,P.errSchemaPath=T+"/"+p.util.escapeFragment(qt),P.errorPath=p.util.getPath(p.errorPath,qt,p.opts.jsonPointers),P.dataPathArr[He]=p.util.toQuotedString(qt),Yt=p.validate(P),P.baseId=tt,p.util.varOccurences(Yt,Te)<2){Yt=p.util.varReplace(Yt,Te,on);var Zi=on}else Zi=Te,m+=" var "+Te+" = "+on+"; ";if(So)m+=" "+Yt+" ";else{if(mt&&mt[qt]){m+=" if ( "+Zi+" === undefined ",Oe&&(m+=" || ! Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(qt)+"') "),m+=") { "+oe+" = false; ",li=p.errorPath,Pt=T;var jt,Er=p.util.escapeQuotes(qt);p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPath(li,qt,p.opts.jsonPointers)),T=p.errSchemaPath+"/required",(jt=jt||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+Er+"' } ",!1!==p.opts.messages&&(m+=" , message: '",m+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Er+"\\'",m+="' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",En=m,m=jt.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+En+"]); ":" validate.errors = ["+En+"]; return false; ":" var err = "+En+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T=Pt,p.errorPath=li,m+=" } else { "}else W?(m+=" if ( "+Zi+" === undefined ",Oe&&(m+=" || ! Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(qt)+"') "),m+=") { "+oe+" = true; } else { "):(m+=" if ("+Zi+" !== undefined ",Oe&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(qt)+"') "),m+=" ) { ");m+=" "+Yt+" } "}}W&&(m+=" if ("+oe+") { ",K+="}")}}if(gt.length){var _o=gt;if(_o)for(var jn,tl=-1,mf=_o.length-1;tl0||!1===ri:p.util.schemaHasRules(ri,p.RULES.all))&&(P.schema=ri,P.schemaPath=p.schemaPath+".patternProperties"+p.util.getProperty(jn),P.errSchemaPath=p.errSchemaPath+"/patternProperties/"+p.util.escapeFragment(jn),m+=Oe?" "+Xe+" = "+Xe+" || Object.keys("+V+"); for (var "+Me+"=0; "+Me+"<"+Xe+".length; "+Me+"++) { var "+ie+" = "+Xe+"["+Me+"]; ":" for (var "+ie+" in "+V+") { ",m+=" if ("+p.usePattern(jn)+".test("+ie+")) { ",P.errorPath=p.util.getPathExpr(p.errorPath,ie,p.opts.jsonPointers),on=V+"["+ie+"]",P.dataPathArr[He]=ie,Yt=p.validate(P),P.baseId=tt,p.util.varOccurences(Yt,Te)<2?m+=" "+p.util.varReplace(Yt,Te,on)+" ":m+=" var "+Te+" = "+on+"; "+Yt+" ",W&&(m+=" if (!"+oe+") break; "),m+=" } ",W&&(m+=" else "+oe+" = true; "),m+=" } ",W&&(m+=" if ("+oe+") { ",K+="}"))}return W&&(m+=" "+K+" if ("+X+" == errors) {"),m}},6611:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p);P.level++;var oe="valid"+P.level;if(m+="var "+X+" = errors;",p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all)){P.schema=I,P.schemaPath=G,P.errSchemaPath=T;var ie="key"+q,Me="idx"+q,He="i"+q,Te="' + "+ie+" + '",Je="data"+(P.dataLevel=p.dataLevel+1),ke="dataProperties"+q,gt=p.opts.ownProperties,et=p.baseId;gt&&(m+=" var "+ke+" = undefined; "),m+=gt?" "+ke+" = "+ke+" || Object.keys("+V+"); for (var "+Me+"=0; "+Me+"<"+ke+".length; "+Me+"++) { var "+ie+" = "+ke+"["+Me+"]; ":" for (var "+ie+" in "+V+") { ",m+=" var startErrs"+q+" = errors; ";var Ne=ie,st=p.compositeRule;p.compositeRule=P.compositeRule=!0;var Ge=p.validate(P);P.baseId=et,p.util.varOccurences(Ge,Je)<2?m+=" "+p.util.varReplace(Ge,Je,Ne)+" ":m+=" var "+Je+" = "+Ne+"; "+Ge+" ",p.compositeRule=P.compositeRule=st,m+=" if (!"+oe+") { for (var "+He+"=startErrs"+q+"; "+He+"{"use strict";ut.exports=function(p,z,k){var X,P,m=" ",F=p.dataLevel,I=p.schema[z],G=p.errSchemaPath+"/"+z,T=!p.opts.allErrors,W="data"+(F||""),V="valid"+p.level;if("#"==I||"#/"==I)p.isRoot?(X=p.async,P="validate"):(X=!0===p.root.schema.$async,P="root.refVal[0]");else{var K=p.resolveRef(p.baseId,I,p.isRoot);if(void 0===K){var oe=p.MissingRefError.message(p.baseId,I);if("fail"==p.opts.missingRefs){p.logger.error(oe),(ie=ie||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(G)+" , params: { ref: '"+p.util.escapeQuotes(I)+"' } ",!1!==p.opts.messages&&(m+=" , message: 'can\\'t resolve reference "+p.util.escapeQuotes(I)+"' "),p.opts.verbose&&(m+=" , schema: "+p.util.toQuotedString(I)+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+W+" "),m+=" } "):m+=" {} ";var Me=m;m=ie.pop(),m+=!p.compositeRule&&T?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T&&(m+=" if (false) { ")}else{if("ignore"!=p.opts.missingRefs)throw new p.MissingRefError(p.baseId,I,oe);p.logger.warn(oe),T&&(m+=" if (true) { ")}}else if(K.inline){var He=p.util.copy(p);He.level++;var Te="valid"+He.level;He.schema=K.schema,He.schemaPath="",He.errSchemaPath=I,m+=" "+p.validate(He).replace(/validate\.schema/g,K.code)+" ",T&&(m+=" if ("+Te+") { ")}else X=!0===K.$async||p.async&&!1!==K.$async,P=K.code}if(P){var ie;(ie=ie||[]).push(m),m="",m+=p.opts.passContext?" "+P+".call(this, ":" "+P+"( ",m+=" "+W+", (dataPath || '')",'""'!=p.errorPath&&(m+=" + "+p.errorPath);var gt=m+=" , "+(F?"data"+(F-1||""):"parentData")+" , "+(F?p.dataPathArr[F]:"parentDataProperty")+", rootData) ";if(m=ie.pop(),X){if(!p.async)throw new Error("async schema referenced by sync schema");T&&(m+=" var "+V+"; "),m+=" try { await "+gt+"; ",T&&(m+=" "+V+" = true; "),m+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",T&&(m+=" "+V+" = false; "),m+=" } ",T&&(m+=" if ("+V+") { ")}else m+=" if (!"+gt+") { if (vErrors === null) vErrors = "+P+".errors; else vErrors = vErrors.concat("+P+".errors); errors = vErrors.length; } ",T&&(m+=" else { ")}return m}},5051:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;P&&(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ");var oe="schema"+q;if(!P)if(I.length0||!1===Je:p.util.schemaHasRules(Je,p.RULES.all))||(ie[ie.length]=He)}}else ie=I;if(P||ie.length){var ke=p.errorPath,gt=P||ie.length>=p.opts.loopRequired,et=p.opts.ownProperties;if(W)if(m+=" var missing"+q+"; ",gt){P||(m+=" var "+oe+" = validate.schema"+G+"; ");var Ge="' + "+(st="schema"+q+"["+(Ne="i"+q)+"]")+" + '";p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPathExpr(ke,st,p.opts.jsonPointers)),m+=" var "+X+" = true; ",P&&(m+=" if (schema"+q+" === undefined) "+X+" = true; else if (!Array.isArray(schema"+q+")) "+X+" = false; else {"),m+=" for (var "+Ne+" = 0; "+Ne+" < "+oe+".length; "+Ne+"++) { "+X+" = "+V+"["+oe+"["+Ne+"]] !== undefined ",et&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", "+oe+"["+Ne+"]) "),m+="; if (!"+X+") break; } ",P&&(m+=" } "),(Fe=Fe||[]).push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+Ge+"' } ",!1!==p.opts.messages&&(m+=" , message: '",m+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Ge+"\\'",m+="' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ge=m;m=Fe.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ge+"]); ":" validate.errors = ["+ge+"]; return false; ":" var err = "+ge+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { "}else{m+=" if ( ";var Fe,Oe=ie;if(Oe)for(var Ne=-1,Re=Oe.length-1;Ne{"use strict";ut.exports=function(p,z,k){var K,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;if(P?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",K="schema"+q):K=I,(I||P)&&!1!==p.opts.uniqueItems){P&&(m+=" var "+X+"; if ("+K+" === false || "+K+" === undefined) "+X+" = true; else if (typeof "+K+" != 'boolean') "+X+" = false; else { "),m+=" var i = "+V+".length , "+X+" = true , j; if (i > 1) { ";var oe=p.schema.items&&p.schema.items.type,ie=Array.isArray(oe);!oe||"object"==oe||"array"==oe||ie&&(oe.indexOf("object")>=0||oe.indexOf("array")>=0)?m+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+V+"[i], "+V+"[j])) { "+X+" = false; break outer; } } } ":(m+=" var itemIndices = {}, item; for (;i--;) { var item = "+V+"[i]; ",m+=" if ("+p.util["checkDataType"+(ie?"s":"")](oe,"item",p.opts.strictNumbers,!0)+") continue; ",ie&&(m+=" if (typeof item == 'string') item = '\"' + item; "),m+=" if (typeof itemIndices[item] == 'number') { "+X+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),m+=" } ",P&&(m+=" } ");var He=He||[];He.push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { i: i, j: j } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),p.opts.verbose&&(m+=" , schema: ",m+=P?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Te=m;m=He.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",W&&(m+=" else { ")}else W&&(m+=" if (true) { ");return m}},604:ut=>{"use strict";ut.exports=function(p,z,k){var m="",q=!0===p.schema.$async,F=p.util.schemaHasRulesExcept(p.schema,p.RULES.all,"$ref"),I=p.self._getId(p.schema);if(p.opts.strictKeywords){var G=p.util.schemaUnknownRules(p.schema,p.RULES.keywords);if(G){var T="unknown keyword: "+G;if("log"!==p.opts.strictKeywords)throw new Error(T);p.logger.warn(T)}}if(p.isTop&&(m+=" var validate = ",q&&(p.async=!0,m+="async "),m+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",I&&(p.opts.sourceCode||p.opts.processCode)&&(m+=" /*# sourceURL="+I+" */ ")),"boolean"==typeof p.schema||!F&&!p.schema.$ref){var W=p.level,V=p.dataLevel,X=p.schema[z="false schema"],P=p.schemaPath+p.util.getProperty(z),K=p.errSchemaPath+"/"+z,Je=!p.opts.allErrors,oe="data"+(V||""),Xe="valid"+W;if(!1===p.schema){p.isTop?Je=!0:m+=" var "+Xe+" = false; ",(ie=ie||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(K)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'boolean schema is false' "),p.opts.verbose&&(m+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+oe+" "),m+=" } "):m+=" {} ";var Me=m;m=ie.pop(),m+=!p.compositeRule&&Je?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else m+=p.isTop?q?" return data; ":" validate.errors = null; return true; ":" var "+Xe+" = true; ";return p.isTop&&(m+=" }; return validate; "),m}if(p.isTop){var He=p.isTop;if(W=p.level=0,V=p.dataLevel=0,oe="data",p.rootId=p.resolve.fullPath(p.self._getId(p.root.schema)),p.baseId=p.baseId||p.rootId,delete p.isTop,p.dataPathArr=[""],void 0!==p.schema.default&&p.opts.useDefaults&&p.opts.strictDefaults){var Te="default is ignored in the schema root";if("log"!==p.opts.strictDefaults)throw new Error(Te);p.logger.warn(Te)}m+=" var vErrors = null; ",m+=" var errors = 0; ",m+=" if (rootData === undefined) rootData = data; "}else{if(W=p.level,oe="data"+((V=p.dataLevel)||""),I&&(p.baseId=p.resolve.url(p.baseId,I)),q&&!p.async)throw new Error("async schema in sync schema");m+=" var errs_"+W+" = errors;"}Xe="valid"+W,Je=!p.opts.allErrors;var ke="",gt="",Ne=p.schema.type,st=Array.isArray(Ne);if(Ne&&p.opts.nullable&&!0===p.schema.nullable&&(st?-1==Ne.indexOf("null")&&(Ne=Ne.concat("null")):"null"!=Ne&&(Ne=[Ne,"null"],st=!0)),st&&1==Ne.length&&(Ne=Ne[0],st=!1),p.schema.$ref&&F){if("fail"==p.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+p.errSchemaPath+'" (see option extendRefs)');!0!==p.opts.extendRefs&&(F=!1,p.logger.warn('$ref: keywords ignored in schema at path "'+p.errSchemaPath+'"'))}if(p.schema.$comment&&p.opts.$comment&&(m+=" "+p.RULES.all.$comment.code(p,"$comment")),Ne){if(p.opts.coerceTypes)var Ge=p.util.coerceToTypes(p.opts.coerceTypes,Ne);var Fe=p.RULES.types[Ne];if(Ge||st||!0===Fe||Fe&&!ri(Fe)){if(P=p.schemaPath+".type",K=p.errSchemaPath+"/type",P=p.schemaPath+".type",K=p.errSchemaPath+"/type",m+=" if ("+p.util[st?"checkDataTypes":"checkDataType"](Ne,oe,p.opts.strictNumbers,!0)+") { ",Ge){var Oe="dataType"+W,tt="coerced"+W;m+=" var "+Oe+" = typeof "+oe+"; var "+tt+" = undefined; ","array"==p.opts.coerceTypes&&(m+=" if ("+Oe+" == 'object' && Array.isArray("+oe+") && "+oe+".length == 1) { "+oe+" = "+oe+"[0]; "+Oe+" = typeof "+oe+"; if ("+p.util.checkDataType(p.schema.type,oe,p.opts.strictNumbers)+") "+tt+" = "+oe+"; } "),m+=" if ("+tt+" !== undefined) ; ";var Re=Ge;if(Re)for(var mt,St=-1,Lt=Re.length-1;St{"use strict";var z=/^[a-z_$][a-z0-9_$-]*$/i,k=p(5237),m=p(8606);ut.exports={add:function q(T,W){var V=this.RULES;if(V.keywords[T])throw new Error("Keyword "+T+" is already defined");if(!z.test(T))throw new Error("Keyword "+T+" is not a valid identifier");if(W){this.validateKeyword(W,!0);var X=W.type;if(Array.isArray(X))for(var P=0;P{var Se={utf8:{stringToBytes:function(p){return Se.bin.stringToBytes(unescape(encodeURIComponent(p)))},bytesToString:function(p){return decodeURIComponent(escape(Se.bin.bytesToString(p)))}},bin:{stringToBytes:function(p){for(var z=[],k=0;k{const z=p(4605),k={};for(const F of Object.keys(z))k[z[F]]=F;const m={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};ut.exports=m;for(const F of Object.keys(m)){if(!("channels"in m[F]))throw new Error("missing channels property: "+F);if(!("labels"in m[F]))throw new Error("missing channel labels property: "+F);if(m[F].labels.length!==m[F].channels)throw new Error("channel and label counts mismatch: "+F);const{channels:I,labels:G}=m[F];delete m[F].channels,delete m[F].labels,Object.defineProperty(m[F],"channels",{value:I}),Object.defineProperty(m[F],"labels",{value:G})}function q(F,I){return(F[0]-I[0])**2+(F[1]-I[1])**2+(F[2]-I[2])**2}m.rgb.hsl=function(F){const I=F[0]/255,G=F[1]/255,T=F[2]/255,W=Math.min(I,G,T),V=Math.max(I,G,T),X=V-W;let P,K;V===W?P=0:I===V?P=(G-T)/X:G===V?P=2+(T-I)/X:T===V&&(P=4+(I-G)/X),P=Math.min(60*P,360),P<0&&(P+=360);const oe=(W+V)/2;return K=V===W?0:oe<=.5?X/(V+W):X/(2-V-W),[P,100*K,100*oe]},m.rgb.hsv=function(F){let I,G,T,W,V;const X=F[0]/255,P=F[1]/255,K=F[2]/255,oe=Math.max(X,P,K),ie=oe-Math.min(X,P,K),Me=function(He){return(oe-He)/6/ie+.5};return 0===ie?(W=0,V=0):(V=ie/oe,I=Me(X),G=Me(P),T=Me(K),X===oe?W=T-G:P===oe?W=1/3+I-T:K===oe&&(W=2/3+G-I),W<0?W+=1:W>1&&(W-=1)),[360*W,100*V,100*oe]},m.rgb.hwb=function(F){const I=F[0],G=F[1];let T=F[2];const W=m.rgb.hsl(F)[0],V=1/255*Math.min(I,Math.min(G,T));return T=1-1/255*Math.max(I,Math.max(G,T)),[W,100*V,100*T]},m.rgb.cmyk=function(F){const I=F[0]/255,G=F[1]/255,T=F[2]/255,W=Math.min(1-I,1-G,1-T);return[100*((1-I-W)/(1-W)||0),100*((1-G-W)/(1-W)||0),100*((1-T-W)/(1-W)||0),100*W]},m.rgb.keyword=function(F){const I=k[F];if(I)return I;let T,G=1/0;for(const W of Object.keys(z)){const X=q(F,z[W]);X.04045?((I+.055)/1.055)**2.4:I/12.92,G=G>.04045?((G+.055)/1.055)**2.4:G/12.92,T=T>.04045?((T+.055)/1.055)**2.4:T/12.92,[100*(.4124*I+.3576*G+.1805*T),100*(.2126*I+.7152*G+.0722*T),100*(.0193*I+.1192*G+.9505*T)]},m.rgb.lab=function(F){const I=m.rgb.xyz(F);let G=I[0],T=I[1],W=I[2];return G/=95.047,T/=100,W/=108.883,G=G>.008856?G**(1/3):7.787*G+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,W=W>.008856?W**(1/3):7.787*W+16/116,[116*T-16,500*(G-T),200*(T-W)]},m.hsl.rgb=function(F){const I=F[0]/360,G=F[1]/100,T=F[2]/100;let W,V,X;if(0===G)return X=255*T,[X,X,X];W=T<.5?T*(1+G):T+G-T*G;const P=2*T-W,K=[0,0,0];for(let oe=0;oe<3;oe++)V=I+1/3*-(oe-1),V<0&&V++,V>1&&V--,X=6*V<1?P+6*(W-P)*V:2*V<1?W:3*V<2?P+(W-P)*(2/3-V)*6:P,K[oe]=255*X;return K},m.hsl.hsv=function(F){const I=F[0];let G=F[1]/100,T=F[2]/100,W=G;const V=Math.max(T,.01);return T*=2,G*=T<=1?T:2-T,W*=V<=1?V:2-V,[I,100*(0===T?2*W/(V+W):2*G/(T+G)),(T+G)/2*100]},m.hsv.rgb=function(F){const I=F[0]/60,G=F[1]/100;let T=F[2]/100;const W=Math.floor(I)%6,V=I-Math.floor(I),X=255*T*(1-G),P=255*T*(1-G*V),K=255*T*(1-G*(1-V));switch(T*=255,W){case 0:return[T,K,X];case 1:return[P,T,X];case 2:return[X,T,K];case 3:return[X,P,T];case 4:return[K,X,T];case 5:return[T,X,P]}},m.hsv.hsl=function(F){const I=F[0],G=F[1]/100,T=F[2]/100,W=Math.max(T,.01);let V,X;X=(2-G)*T;const P=(2-G)*W;return V=G*W,V/=P<=1?P:2-P,V=V||0,X/=2,[I,100*V,100*X]},m.hwb.rgb=function(F){const I=F[0]/360;let G=F[1]/100,T=F[2]/100;const W=G+T;let V;W>1&&(G/=W,T/=W);const X=Math.floor(6*I),P=1-T;V=6*I-X,1&X&&(V=1-V);const K=G+V*(P-G);let oe,ie,Me;switch(X){default:case 6:case 0:oe=P,ie=K,Me=G;break;case 1:oe=K,ie=P,Me=G;break;case 2:oe=G,ie=P,Me=K;break;case 3:oe=G,ie=K,Me=P;break;case 4:oe=K,ie=G,Me=P;break;case 5:oe=P,ie=G,Me=K}return[255*oe,255*ie,255*Me]},m.cmyk.rgb=function(F){const G=F[1]/100,T=F[2]/100,W=F[3]/100;return[255*(1-Math.min(1,F[0]/100*(1-W)+W)),255*(1-Math.min(1,G*(1-W)+W)),255*(1-Math.min(1,T*(1-W)+W))]},m.xyz.rgb=function(F){const I=F[0]/100,G=F[1]/100,T=F[2]/100;let W,V,X;return W=3.2406*I+-1.5372*G+-.4986*T,V=-.9689*I+1.8758*G+.0415*T,X=.0557*I+-.204*G+1.057*T,W=W>.0031308?1.055*W**(1/2.4)-.055:12.92*W,V=V>.0031308?1.055*V**(1/2.4)-.055:12.92*V,X=X>.0031308?1.055*X**(1/2.4)-.055:12.92*X,W=Math.min(Math.max(0,W),1),V=Math.min(Math.max(0,V),1),X=Math.min(Math.max(0,X),1),[255*W,255*V,255*X]},m.xyz.lab=function(F){let I=F[0],G=F[1],T=F[2];return I/=95.047,G/=100,T/=108.883,I=I>.008856?I**(1/3):7.787*I+16/116,G=G>.008856?G**(1/3):7.787*G+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,[116*G-16,500*(I-G),200*(G-T)]},m.lab.xyz=function(F){let W,V,X;V=(F[0]+16)/116,W=F[1]/500+V,X=V-F[2]/200;const P=V**3,K=W**3,oe=X**3;return V=P>.008856?P:(V-16/116)/7.787,W=K>.008856?K:(W-16/116)/7.787,X=oe>.008856?oe:(X-16/116)/7.787,W*=95.047,V*=100,X*=108.883,[W,V,X]},m.lab.lch=function(F){const I=F[0],G=F[1],T=F[2];let W;return W=360*Math.atan2(T,G)/2/Math.PI,W<0&&(W+=360),[I,Math.sqrt(G*G+T*T),W]},m.lch.lab=function(F){const G=F[1],W=F[2]/360*2*Math.PI;return[F[0],G*Math.cos(W),G*Math.sin(W)]},m.rgb.ansi16=function(F,I=null){const[G,T,W]=F;let V=null===I?m.rgb.hsv(F)[2]:I;if(V=Math.round(V/50),0===V)return 30;let X=30+(Math.round(W/255)<<2|Math.round(T/255)<<1|Math.round(G/255));return 2===V&&(X+=60),X},m.hsv.ansi16=function(F){return m.rgb.ansi16(m.hsv.rgb(F),F[2])},m.rgb.ansi256=function(F){const I=F[0],G=F[1],T=F[2];return I===G&&G===T?I<8?16:I>248?231:Math.round((I-8)/247*24)+232:16+36*Math.round(I/255*5)+6*Math.round(G/255*5)+Math.round(T/255*5)},m.ansi16.rgb=function(F){let I=F%10;if(0===I||7===I)return F>50&&(I+=3.5),I=I/10.5*255,[I,I,I];const G=.5*(1+~~(F>50));return[(1&I)*G*255,(I>>1&1)*G*255,(I>>2&1)*G*255]},m.ansi256.rgb=function(F){if(F>=232){const V=10*(F-232)+8;return[V,V,V]}let I;return F-=16,[Math.floor(F/36)/5*255,Math.floor((I=F%36)/6)/5*255,I%6/5*255]},m.rgb.hex=function(F){const G=(((255&Math.round(F[0]))<<16)+((255&Math.round(F[1]))<<8)+(255&Math.round(F[2]))).toString(16).toUpperCase();return"000000".substring(G.length)+G},m.hex.rgb=function(F){const I=F.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!I)return[0,0,0];let G=I[0];3===I[0].length&&(G=G.split("").map(P=>P+P).join(""));const T=parseInt(G,16);return[T>>16&255,T>>8&255,255&T]},m.rgb.hcg=function(F){const I=F[0]/255,G=F[1]/255,T=F[2]/255,W=Math.max(Math.max(I,G),T),V=Math.min(Math.min(I,G),T),X=W-V;let P,K;return P=X<1?V/(1-X):0,K=X<=0?0:W===I?(G-T)/X%6:W===G?2+(T-I)/X:4+(I-G)/X,K/=6,K%=1,[360*K,100*X,100*P]},m.hsl.hcg=function(F){const I=F[1]/100,G=F[2]/100,T=G<.5?2*I*G:2*I*(1-G);let W=0;return T<1&&(W=(G-.5*T)/(1-T)),[F[0],100*T,100*W]},m.hsv.hcg=function(F){const G=F[2]/100,T=F[1]/100*G;let W=0;return T<1&&(W=(G-T)/(1-T)),[F[0],100*T,100*W]},m.hcg.rgb=function(F){const G=F[1]/100,T=F[2]/100;if(0===G)return[255*T,255*T,255*T];const W=[0,0,0],V=F[0]/360%1*6,X=V%1,P=1-X;let K=0;switch(Math.floor(V)){case 0:W[0]=1,W[1]=X,W[2]=0;break;case 1:W[0]=P,W[1]=1,W[2]=0;break;case 2:W[0]=0,W[1]=1,W[2]=X;break;case 3:W[0]=0,W[1]=P,W[2]=1;break;case 4:W[0]=X,W[1]=0,W[2]=1;break;default:W[0]=1,W[1]=0,W[2]=P}return K=(1-G)*T,[255*(G*W[0]+K),255*(G*W[1]+K),255*(G*W[2]+K)]},m.hcg.hsv=function(F){const I=F[1]/100,T=I+F[2]/100*(1-I);let W=0;return T>0&&(W=I/T),[F[0],100*W,100*T]},m.hcg.hsl=function(F){const I=F[1]/100,T=F[2]/100*(1-I)+.5*I;let W=0;return T>0&&T<.5?W=I/(2*T):T>=.5&&T<1&&(W=I/(2*(1-T))),[F[0],100*W,100*T]},m.hcg.hwb=function(F){const I=F[1]/100,T=I+F[2]/100*(1-I);return[F[0],100*(T-I),100*(1-T)]},m.hwb.hcg=function(F){const T=1-F[2]/100,W=T-F[1]/100;let V=0;return W<1&&(V=(T-W)/(1-W)),[F[0],100*W,100*V]},m.apple.rgb=function(F){return[F[0]/65535*255,F[1]/65535*255,F[2]/65535*255]},m.rgb.apple=function(F){return[F[0]/255*65535,F[1]/255*65535,F[2]/255*65535]},m.gray.rgb=function(F){return[F[0]/100*255,F[0]/100*255,F[0]/100*255]},m.gray.hsl=function(F){return[0,0,F[0]]},m.gray.hsv=m.gray.hsl,m.gray.hwb=function(F){return[0,100,F[0]]},m.gray.cmyk=function(F){return[0,0,0,F[0]]},m.gray.lab=function(F){return[F[0],0,0]},m.gray.hex=function(F){const I=255&Math.round(F[0]/100*255),T=((I<<16)+(I<<8)+I).toString(16).toUpperCase();return"000000".substring(T.length)+T},m.rgb.gray=function(F){return[(F[0]+F[1]+F[2])/3/255*100]}},3205:(ut,Se,p)=>{const z=p(2348),k=p(8236),m={};Object.keys(z).forEach(G=>{m[G]={},Object.defineProperty(m[G],"channels",{value:z[G].channels}),Object.defineProperty(m[G],"labels",{value:z[G].labels});const T=k(G);Object.keys(T).forEach(V=>{const X=T[V];m[G][V]=function I(G){const T=function(...W){const V=W[0];if(null==V)return V;V.length>1&&(W=V);const X=G(W);if("object"==typeof X)for(let P=X.length,K=0;K1&&(W=V),G(W))};return"conversion"in G&&(T.conversion=G.conversion),T}(X)})}),ut.exports=m},8236:(ut,Se,p)=>{const z=p(2348);function q(I,G){return function(T){return G(I(T))}}function F(I,G){const T=[G[I].parent,I];let W=z[G[I].parent][I],V=G[I].parent;for(;G[V].parent;)T.unshift(G[V].parent),W=q(z[G[V].parent][V],W),V=G[V].parent;return W.conversion=T,W}ut.exports=function(I){const G=function m(I){const G=function k(){const I={},G=Object.keys(z);for(let T=G.length,W=0;W{"use strict";ut.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},9928:ut=>{var Se,p;Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ut.exports=p={rotl:function(z,k){return z<>>32-k},rotr:function(z,k){return z<<32-k|z>>>k},endian:function(z){if(z.constructor==Number)return 16711935&p.rotl(z,8)|4278255360&p.rotl(z,24);for(var k=0;k0;z--)k.push(Math.floor(256*Math.random()));return k},bytesToWords:function(z){for(var k=[],m=0,q=0;m>>5]|=z[m]<<24-q%32;return k},wordsToBytes:function(z){for(var k=[],m=0;m<32*z.length;m+=8)k.push(z[m>>>5]>>>24-m%32&255);return k},bytesToHex:function(z){for(var k=[],m=0;m>>4).toString(16)),k.push((15&z[m]).toString(16));return k.join("")},hexToBytes:function(z){for(var k=[],m=0;m>>6*(3-F)&63):"=");return k.join("")},base64ToBytes:function(z){z=z.replace(/[^A-Z0-9+\/]/gi,"");for(var k=[],m=0,q=0;m>>6-2*q);return k}}},243:ut=>{"use strict";var Se={single_source_shortest_paths:function(p,z,k){var m={},q={};q[z]=0;var I,G,T,W,V,P,F=Se.PriorityQueue.make();for(F.push(z,0);!F.empty();)for(T in W=(I=F.pop()).cost,V=p[G=I.value]||{})V.hasOwnProperty(T)&&(P=W+V[T],(typeof q[T]>"u"||q[T]>P)&&(q[T]=P,F.push(T,P),m[T]=G));if(typeof k<"u"&&typeof q[k]>"u"){var ie=["Could not find a path from ",z," to ",k,"."].join("");throw new Error(ie)}return m},extract_shortest_path_from_predecessor_list:function(p,z){for(var k=[],m=z;m;)k.push(m),m=p[m];return k.reverse(),k},find_path:function(p,z,k){var m=Se.single_source_shortest_paths(p,z,k);return Se.extract_shortest_path_from_predecessor_list(m,k)},PriorityQueue:{make:function(p){var m,z=Se.PriorityQueue,k={};for(m in p=p||{},z)z.hasOwnProperty(m)&&(k[m]=z[m]);return k.queue=[],k.sorter=p.sorter||z.default_sorter,k},default_sorter:function(p,z){return p.cost-z.cost},push:function(p,z){this.queue.push({value:p,cost:z}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};ut.exports=Se},3174:ut=>{"use strict";ut.exports=function(p){for(var z=[],k=p.length,m=0;m=55296&&q<=56319&&k>m+1){var F=p.charCodeAt(m+1);F>=56320&&F<=57343&&(q=1024*(q-55296)+F-56320+65536,m+=1)}q<128?z.push(q):q<2048?(z.push(q>>6|192),z.push(63&q|128)):q<55296||q>=57344&&q<65536?(z.push(q>>12|224),z.push(q>>6&63|128),z.push(63&q|128)):q>=65536&&q<=1114111?(z.push(q>>18|240),z.push(q>>12&63|128),z.push(q>>6&63|128),z.push(63&q|128)):z.push(239,191,189)}return new Uint8Array(z).buffer}},362:ut=>{"use strict";ut.exports=function Se(p,z){if(p===z)return!0;if(p&&z&&"object"==typeof p&&"object"==typeof z){if(p.constructor!==z.constructor)return!1;var k,m,q;if(Array.isArray(p)){if((k=p.length)!=z.length)return!1;for(m=k;0!=m--;)if(!Se(p[m],z[m]))return!1;return!0}if(p.constructor===RegExp)return p.source===z.source&&p.flags===z.flags;if(p.valueOf!==Object.prototype.valueOf)return p.valueOf()===z.valueOf();if(p.toString!==Object.prototype.toString)return p.toString()===z.toString();if((k=(q=Object.keys(p)).length)!==Object.keys(z).length)return!1;for(m=k;0!=m--;)if(!Object.prototype.hasOwnProperty.call(z,q[m]))return!1;for(m=k;0!=m--;){var F=q[m];if(!Se(p[F],z[F]))return!1}return!0}return p!=p&&z!=z}},8861:ut=>{"use strict";ut.exports=function(Se,p){p||(p={}),"function"==typeof p&&(p={cmp:p});var z="boolean"==typeof p.cycles&&p.cycles,k=p.cmp&&function(q){return function(F){return function(I,G){return q({key:I,value:F[I]},{key:G,value:F[G]})}}}(p.cmp),m=[];return function q(F){if(F&&F.toJSON&&"function"==typeof F.toJSON&&(F=F.toJSON()),void 0!==F){if("number"==typeof F)return isFinite(F)?""+F:"null";if("object"!=typeof F)return JSON.stringify(F);var I,G;if(Array.isArray(F)){for(G="[",I=0;I0&&O[O.length-1])&&(6===Ue[0]||2===Ue[0])){x=0;continue}if(3===Ue[0]&&(!O||Ue[1]>O[0]&&Ue[1]=55296&&S<=56319&&x>10),J%1024+56320),(S+1===x||w.length>16384)&&(O+=String.fromCharCode.apply(String,w),w.length=0)}return O},V="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",X=typeof Uint8Array>"u"?[]:new Uint8Array(256),P=0;P<64;P++)X[V.charCodeAt(P)]=P;for(var K="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",oe=typeof Uint8Array>"u"?[]:new Uint8Array(256),ie=0;ie<64;ie++)oe[K.charCodeAt(ie)]=ie;for(var Lt=function(v,g,x){return v.slice?v.slice(g,x):new Uint16Array(Array.prototype.slice.call(v,g,x))},On=function(){function v(g,x,w,S,O,J){this.initialValue=g,this.errorValue=x,this.highStart=w,this.highValueIndex=S,this.index=O,this.data=J}return v.prototype.get=function(g){var x;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[x=((x=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[x=((x=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[x=((x=this.index[x+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},v}(),_i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",jn=typeof Uint8Array>"u"?[]:new Uint8Array(256),Pi=0;Pi<64;Pi++)jn[_i.charCodeAt(Pi)]=Pi;var x,w,S,J,pe,ir=10,ri=13,So=15,Er=17,_o=18,tl=19,mf=20,Ou=21,Js=22,ea=24,Zo=25,xl=26,Ac=27,Bd=28,gc=30,Gc=32,pf=33,Lu=34,sp=35,ma=37,Wc=38,Uu=39,Ji=40,gf=42,jb=[9001,65288],Hi="\xd7",Be=(x=function(v){var w,O,J,pe,me,g=.75*v.length,x=v.length,S=0;"="===v[v.length-1]&&(g--,"="===v[v.length-2]&&g--);var Ue=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),We=Array.isArray(Ue)?Ue:new Uint8Array(Ue);for(w=0;w>4,We[S++]=(15&J)<<4|pe>>2,We[S++]=(3&pe)<<6|63&me;return Ue}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),w=Array.isArray(x)?function(v){for(var g=v.length,x=[],w=0;w0;){var pe=w[--O];if(Array.isArray(v)?-1!==v.indexOf(pe):v===pe)for(var me=x;me<=w.length;){var J;if((J=w[++me])===g)return!0;if(J!==ir)break}if(pe!==ir)break}return!1},Qi=function(v,g){for(var x=v;x>=0;){var w=g[x];if(w!==ir)return w;x--}return 0},lo=function(v,g,x,w,S){if(0===x[w])return Hi;var O=w-1;if(Array.isArray(S)&&!0===S[O])return Hi;var J=O-1,pe=O+1,me=g[O],Ue=J>=0?g[J]:0,We=g[pe];if(2===me&&3===We)return Hi;if(-1!==De.indexOf(me))return"!";if(-1!==De.indexOf(We)||-1!==yt.indexOf(We))return Hi;if(8===Qi(O,g))return"\xf7";if(11===Be.get(v[O])||(me===Gc||me===pf)&&11===Be.get(v[pe])||7===me||7===We||9===me||-1===[ir,ri,So].indexOf(me)&&9===We||-1!==[Er,_o,tl,ea,Bd].indexOf(We)||Qi(O,g)===Js||Qr(23,Js,O,g)||Qr([Er,_o],Ou,O,g)||Qr(12,12,O,g))return Hi;if(me===ir)return"\xf7";if(23===me||23===We)return Hi;if(16===We||16===me)return"\xf7";if(-1!==[ri,So,Ou].indexOf(We)||14===me||36===Ue&&-1!==ct.indexOf(me)||me===Bd&&36===We||We===mf||-1!==fe.indexOf(We)&&me===Zo||-1!==fe.indexOf(me)&&We===Zo||me===Ac&&-1!==[ma,Gc,pf].indexOf(We)||-1!==[ma,Gc,pf].indexOf(me)&&We===xl||-1!==fe.indexOf(me)&&-1!==Qe.indexOf(We)||-1!==Qe.indexOf(me)&&-1!==fe.indexOf(We)||-1!==[Ac,xl].indexOf(me)&&(We===Zo||-1!==[Js,So].indexOf(We)&&g[pe+1]===Zo)||-1!==[Js,So].indexOf(me)&&We===Zo||me===Zo&&-1!==[Zo,Bd,ea].indexOf(We))return Hi;if(-1!==[Zo,Bd,ea,Er,_o].indexOf(We))for(var lt=O;lt>=0;){if((Et=g[lt])===Zo)return Hi;if(-1===[Bd,ea].indexOf(Et))break;lt--}if(-1!==[Ac,xl].indexOf(We))for(lt=-1!==[Er,_o].indexOf(me)?J:O;lt>=0;){var Et;if((Et=g[lt])===Zo)return Hi;if(-1===[Bd,ea].indexOf(Et))break;lt--}if(Wc===me&&-1!==[Wc,Uu,Lu,sp].indexOf(We)||-1!==[Uu,Lu].indexOf(me)&&-1!==[Uu,Ji].indexOf(We)||-1!==[Ji,sp].indexOf(me)&&We===Ji||-1!==bi.indexOf(me)&&-1!==[mf,xl].indexOf(We)||-1!==bi.indexOf(We)&&me===Ac||-1!==fe.indexOf(me)&&-1!==fe.indexOf(We)||me===ea&&-1!==fe.indexOf(We)||-1!==fe.concat(Zo).indexOf(me)&&We===Js&&-1===jb.indexOf(v[pe])||-1!==fe.concat(Zo).indexOf(We)&&me===_o)return Hi;if(41===me&&41===We){for(var bn=x[O],en=1;bn>0&&41===g[--bn];)en++;if(en%2!=0)return Hi}return me===Gc&&We===pf?Hi:"\xf7"},ko=function(v,g){g||(g={lineBreak:"normal",wordBreak:"normal"});var x=function(v,g){void 0===g&&(g="strict");var x=[],w=[],S=[];return v.forEach(function(O,J){var pe=Be.get(O);if(pe>50?(S.push(!0),pe-=50):S.push(!1),-1!==["normal","auto","loose"].indexOf(g)&&-1!==[8208,8211,12316,12448].indexOf(O))return w.push(J),x.push(16);if(4===pe||11===pe){if(0===J)return w.push(J),x.push(gc);var me=x[J-1];return-1===yn.indexOf(me)?(w.push(w[J-1]),x.push(me)):(w.push(J),x.push(gc))}return w.push(J),31===pe?x.push("strict"===g?Ou:ma):pe===gf||29===pe?x.push(gc):43===pe?x.push(O>=131072&&O<=196605||O>=196608&&O<=262141?ma:gc):void x.push(pe)}),[w,x,S]}(v,g.lineBreak),w=x[0],S=x[1],O=x[2];return("break-all"===g.wordBreak||"break-word"===g.wordBreak)&&(S=S.map(function(pe){return-1!==[Zo,gc,gf].indexOf(pe)?ma:pe})),[w,S,"keep-all"===g.wordBreak?O.map(function(pe,me){return pe&&v[me]>=19968&&v[me]<=40959}):void 0]},zr=function(){function v(g,x,w,S){this.codePoints=g,this.required="!"===x,this.start=w,this.end=S}return v.prototype.slice=function(){return W.apply(void 0,this.codePoints.slice(this.start,this.end))},v}(),ps=function(v){return v>=48&&v<=57},dp=function(v){return ps(v)||v>=65&&v<=70||v>=97&&v<=102},xf=function(v){return 10===v||9===v||32===v},Cf=function(v){return function(v){return function(v){return v>=97&&v<=122}(v)||function(v){return v>=65&&v<=90}(v)}(v)||function(v){return v>=128}(v)||95===v},iv=function(v){return Cf(v)||ps(v)||45===v},$c=function(v){return v>=0&&v<=8||11===v||v>=14&&v<=31||127===v},nl=function(v,g){return 92===v&&10!==g},hp=function(v,g,x){return 45===v?Cf(g)||nl(g,x):!!Cf(v)||!(92!==v||!nl(v,g))},ci=function(v,g,x){return 43===v||45===v?!!ps(g)||46===g&&ps(x):ps(46===v?g:v)},_r=function(v){var g=0,x=1;(43===v[g]||45===v[g])&&(45===v[g]&&(x=-1),g++);for(var w=[];ps(v[g]);)w.push(v[g++]);var S=w.length?parseInt(W.apply(void 0,w),10):0;46===v[g]&&g++;for(var O=[];ps(v[g]);)O.push(v[g++]);var J=O.length,pe=J?parseInt(W.apply(void 0,O),10):0;(69===v[g]||101===v[g])&&g++;var me=1;(43===v[g]||45===v[g])&&(45===v[g]&&(me=-1),g++);for(var Ue=[];ps(v[g]);)Ue.push(v[g++]);var We=Ue.length?parseInt(W.apply(void 0,Ue),10):0;return x*(S+pe*Math.pow(10,-J))*Math.pow(10,me*We)},F8={type:2},OF={type:3},LF={type:4},D8={type:13},NF={type:8},rv={type:21},sr={type:9},ov={type:10},Xx={type:11},Aa={type:12},Kx={type:14},sv={type:23},k8={type:1},fp={type:25},av={type:24},vg={type:26},UF={type:27},HF={type:28},VF={type:29},Yx={type:31},Rd={type:32},Zx=function(){function v(){this._value=[]}return v.prototype.write=function(g){this._value=this._value.concat(T(g))},v.prototype.read=function(){for(var g=[],x=this.consumeToken();x!==Rd;)g.push(x),x=this.consumeToken();return g},v.prototype.consumeToken=function(){var g=this.consumeCodePoint();switch(g){case 34:return this.consumeStringToken(34);case 35:var x=this.peekCodePoint(0),w=this.peekCodePoint(1),S=this.peekCodePoint(2);if(iv(x)||nl(w,S)){var O=hp(x,w,S)?2:1;return{type:5,value:this.consumeName(),flags:O}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),D8;break;case 39:return this.consumeStringToken(39);case 40:return F8;case 41:return OF;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Kx;break;case 43:if(ci(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 44:return LF;case 45:var pe=g,me=this.peekCodePoint(0),Ue=this.peekCodePoint(1);if(ci(pe,me,Ue))return this.reconsumeCodePoint(g),this.consumeNumericToken();if(hp(pe,me,Ue))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();if(45===me&&62===Ue)return this.consumeCodePoint(),this.consumeCodePoint(),av;break;case 46:if(ci(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var We=this.consumeCodePoint();if(42===We&&47===(We=this.consumeCodePoint()))return this.consumeToken();if(-1===We)return this.consumeToken()}break;case 58:return vg;case 59:return UF;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),fp;break;case 64:var lt=this.peekCodePoint(0),Et=this.peekCodePoint(1),bn=this.peekCodePoint(2);if(hp(lt,Et,bn))return{type:7,value:this.consumeName()};break;case 91:return HF;case 92:if(nl(g,this.peekCodePoint(0)))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();break;case 93:return VF;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),NF;break;case 123:return Xx;case 125:return Aa;case 117:case 85:var en=this.peekCodePoint(0),dn=this.peekCodePoint(1);return 43===en&&(dp(dn)||63===dn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(g),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),sr;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),rv;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ov;break;case-1:return Rd}return xf(g)?(this.consumeWhiteSpace(),Yx):ps(g)?(this.reconsumeCodePoint(g),this.consumeNumericToken()):Cf(g)?(this.reconsumeCodePoint(g),this.consumeIdentLikeToken()):{type:6,value:W(g)}},v.prototype.consumeCodePoint=function(){var g=this._value.shift();return typeof g>"u"?-1:g},v.prototype.reconsumeCodePoint=function(g){this._value.unshift(g)},v.prototype.peekCodePoint=function(g){return g>=this._value.length?-1:this._value[g]},v.prototype.consumeUnicodeRangeToken=function(){for(var g=[],x=this.consumeCodePoint();dp(x)&&g.length<6;)g.push(x),x=this.consumeCodePoint();for(var w=!1;63===x&&g.length<6;)g.push(x),x=this.consumeCodePoint(),w=!0;if(w)return{type:30,start:parseInt(W.apply(void 0,g.map(function(me){return 63===me?48:me})),16),end:parseInt(W.apply(void 0,g.map(function(me){return 63===me?70:me})),16)};var J=parseInt(W.apply(void 0,g),16);if(45===this.peekCodePoint(0)&&dp(this.peekCodePoint(1))){this.consumeCodePoint(),x=this.consumeCodePoint();for(var pe=[];dp(x)&&pe.length<6;)pe.push(x),x=this.consumeCodePoint();return{type:30,start:J,end:parseInt(W.apply(void 0,pe),16)}}return{type:30,start:J,end:J}},v.prototype.consumeIdentLikeToken=function(){var g=this.consumeName();return"url"===g.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:g}):{type:20,value:g}},v.prototype.consumeUrlToken=function(){var g=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var x=this.peekCodePoint(0);if(39===x||34===x){var w=this.consumeStringToken(this.consumeCodePoint());return 0===w.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:w.value}):(this.consumeBadUrlRemnants(),sv)}for(;;){var S=this.consumeCodePoint();if(-1===S||41===S)return{type:22,value:W.apply(void 0,g)};if(xf(S))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:W.apply(void 0,g)}):(this.consumeBadUrlRemnants(),sv);if(34===S||39===S||40===S||$c(S))return this.consumeBadUrlRemnants(),sv;if(92===S){if(!nl(S,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),sv;g.push(this.consumeEscapedCodePoint())}else g.push(S)}},v.prototype.consumeWhiteSpace=function(){for(;xf(this.peekCodePoint(0));)this.consumeCodePoint()},v.prototype.consumeBadUrlRemnants=function(){for(;;){var g=this.consumeCodePoint();if(41===g||-1===g)return;nl(g,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},v.prototype.consumeStringSlice=function(g){for(var w="";g>0;){var S=Math.min(5e4,g);w+=W.apply(void 0,this._value.splice(0,S)),g-=S}return this._value.shift(),w},v.prototype.consumeStringToken=function(g){for(var x="",w=0;;){var S=this._value[w];if(-1===S||void 0===S||S===g)return{type:0,value:x+=this.consumeStringSlice(w)};if(10===S)return this._value.splice(0,w),k8;if(92===S){var O=this._value[w+1];-1!==O&&void 0!==O&&(10===O?(x+=this.consumeStringSlice(w),w=-1,this._value.shift()):nl(S,O)&&(x+=this.consumeStringSlice(w),x+=W(this.consumeEscapedCodePoint()),w=-1))}w++}},v.prototype.consumeNumber=function(){var g=[],x=4,w=this.peekCodePoint(0);for((43===w||45===w)&&g.push(this.consumeCodePoint());ps(this.peekCodePoint(0));)g.push(this.consumeCodePoint());w=this.peekCodePoint(0);var S=this.peekCodePoint(1);if(46===w&&ps(S))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),x=8;ps(this.peekCodePoint(0));)g.push(this.consumeCodePoint());w=this.peekCodePoint(0),S=this.peekCodePoint(1);var O=this.peekCodePoint(2);if((69===w||101===w)&&((43===S||45===S)&&ps(O)||ps(S)))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),x=8;ps(this.peekCodePoint(0));)g.push(this.consumeCodePoint());return[_r(g),x]},v.prototype.consumeNumericToken=function(){var g=this.consumeNumber(),x=g[0],w=g[1],S=this.peekCodePoint(0),O=this.peekCodePoint(1),J=this.peekCodePoint(2);return hp(S,O,J)?{type:15,number:x,flags:w,unit:this.consumeName()}:37===S?(this.consumeCodePoint(),{type:16,number:x,flags:w}):{type:17,number:x,flags:w}},v.prototype.consumeEscapedCodePoint=function(){var g=this.consumeCodePoint();if(dp(g)){for(var x=W(g);dp(this.peekCodePoint(0))&&x.length<6;)x+=W(this.consumeCodePoint());xf(this.peekCodePoint(0))&&this.consumeCodePoint();var w=parseInt(x,16);return 0===w||function(v){return v>=55296&&v<=57343}(w)||w>1114111?65533:w}return-1===g?65533:g},v.prototype.consumeName=function(){for(var g="";;){var x=this.consumeCodePoint();if(iv(x))g+=W(x);else{if(!nl(x,this.peekCodePoint(0)))return this.reconsumeCodePoint(x),g;g+=W(this.consumeEscapedCodePoint())}}},v}(),jc=function(){function v(g){this._tokens=g}return v.create=function(g){var x=new Zx;return x.write(g),new v(x.read())},v.parseValue=function(g){return v.create(g).parseComponentValue()},v.parseValues=function(g){return v.create(g).parseComponentValues()},v.prototype.parseComponentValue=function(){for(var g=this.consumeToken();31===g.type;)g=this.consumeToken();if(32===g.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(g);var x=this.consumeComponentValue();do{g=this.consumeToken()}while(31===g.type);if(32===g.type)return x;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},v.prototype.parseComponentValues=function(){for(var g=[];;){var x=this.consumeComponentValue();if(32===x.type)return g;g.push(x),g.push()}},v.prototype.consumeComponentValue=function(){var g=this.consumeToken();switch(g.type){case 11:case 28:case 2:return this.consumeSimpleBlock(g.type);case 19:return this.consumeFunction(g)}return g},v.prototype.consumeSimpleBlock=function(g){for(var x={type:g,values:[]},w=this.consumeToken();;){if(32===w.type||QF(w,g))return x;this.reconsumeToken(w),x.values.push(this.consumeComponentValue()),w=this.consumeToken()}},v.prototype.consumeFunction=function(g){for(var x={name:g.value,values:[],type:18};;){var w=this.consumeToken();if(32===w.type||3===w.type)return x;this.reconsumeToken(w),x.values.push(this.consumeComponentValue())}},v.prototype.consumeToken=function(){var g=this._tokens.shift();return typeof g>"u"?Rd:g},v.prototype.reconsumeToken=function(g){this._tokens.unshift(g)},v}(),mp=function(v){return 15===v.type},ve=function(v){return 17===v.type},Sr=function(v){return 20===v.type},Qt=function(v){return 0===v.type},Mf=function(v,g){return Sr(v)&&v.value===g},yg=function(v){return 31!==v.type},bc=function(v){return 31!==v.type&&4!==v.type},vc=function(v){var g=[],x=[];return v.forEach(function(w){if(4===w.type){if(0===x.length)throw new Error("Error parsing function args, zero tokens for arg");return g.push(x),void(x=[])}31!==w.type&&x.push(w)}),x.length&&g.push(x),g},QF=function(v,g){return 11===g&&12===v.type||28===g&&29===v.type||2===g&&3===v.type},Od=function(v){return 17===v.type||15===v.type},To=function(v){return 16===v.type||Od(v)},qu=function(v){return v.length>1?[v[0],v[1]]:[v[0]]},Is={type:17,number:0,flags:4},Ef={type:16,number:50,flags:4},Ld={type:16,number:100,flags:4},Il=function(v,g,x){var w=v[0],S=v[1];return[jr(w,g),jr(typeof S<"u"?S:w,x)]},jr=function(v,g){if(16===v.type)return v.number/100*g;if(mp(v))switch(v.unit){case"rem":case"em":return 16*v.number;default:return v.number}return v.number},Wu_parse=function(v,g){if(15===g.type)switch(g.unit){case"deg":return Math.PI*g.number/180;case"grad":return Math.PI/200*g.number;case"rad":return g.number;case"turn":return 2*Math.PI*g.number}throw new Error("Unsupported angle type")},wg=function(v){return 15===v.type&&("deg"===v.unit||"grad"===v.unit||"rad"===v.unit||"turn"===v.unit)},zF=function(v){switch(v.filter(Sr).map(function(x){return x.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Is,Is];case"to top":case"bottom":return Da(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Is,Ld];case"to right":case"left":return Da(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Ld,Ld];case"to bottom":case"top":return Da(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Ld,Is];case"to left":case"right":return Da(270)}return 0},Da=function(v){return Math.PI*v/180},$u_parse=function(v,g){if(18===g.type){var x=Nd[g.name];if(typeof x>"u")throw new Error('Attempting to parse an unsupported color function "'+g.name+'"');return x(v,g.values)}if(5===g.type){if(3===g.value.length){var w=g.value.substring(0,1),S=g.value.substring(1,2),O=g.value.substring(2,3);return ka(parseInt(w+w,16),parseInt(S+S,16),parseInt(O+O,16),1)}if(4===g.value.length){w=g.value.substring(0,1),S=g.value.substring(1,2),O=g.value.substring(2,3);var J=g.value.substring(3,4);return ka(parseInt(w+w,16),parseInt(S+S,16),parseInt(O+O,16),parseInt(J+J,16)/255)}if(6===g.value.length)return w=g.value.substring(0,2),S=g.value.substring(2,4),O=g.value.substring(4,6),ka(parseInt(w,16),parseInt(S,16),parseInt(O,16),1);if(8===g.value.length)return w=g.value.substring(0,2),S=g.value.substring(2,4),O=g.value.substring(4,6),J=g.value.substring(6,8),ka(parseInt(w,16),parseInt(S,16),parseInt(O,16),parseInt(J,16)/255)}if(20===g.type){var pe=Fl[g.value.toUpperCase()];if(typeof pe<"u")return pe}return Fl.TRANSPARENT},zo=function(v){return!(255&v)},qo=function(v){var g=255&v,x=255&v>>8,w=255&v>>16,S=255&v>>24;return g<255?"rgba("+S+","+w+","+x+","+g/255+")":"rgb("+S+","+w+","+x+")"},ka=function(v,g,x,w){return(v<<24|g<<16|x<<8|Math.round(255*w))>>>0},qF=function(v,g){if(17===v.type)return v.number;if(16===v.type){var x=3===g?1:255;return 3===g?v.number/100*x:Math.round(v.number/100*x)}return 0},cv=function(v,g){var x=g.filter(bc);if(3===x.length){var w=x.map(qF);return ka(w[0],w[1],w[2],1)}if(4===x.length){var pe=x.map(qF);return ka(pe[0],pe[1],pe[2],pe[3])}return 0};function il(v,g,x){return x<0&&(x+=1),x>=1&&(x-=1),x<1/6?(g-v)*x*6+v:x<.5?g:x<2/3?6*(g-v)*(2/3-x)+v:v}var dr=function(v,g){var x=g.filter(bc),w=x[0],S=x[1],O=x[2],J=x[3],pe=(17===w.type?Da(w.number):Wu_parse(v,w))/(2*Math.PI),me=To(S)?S.number/100:0,Ue=To(O)?O.number/100:0,We=typeof J<"u"&&To(J)?jr(J,1):1;if(0===me)return ka(255*Ue,255*Ue,255*Ue,1);var lt=Ue<=.5?Ue*(me+1):Ue+me-Ue*me,Et=2*Ue-lt,bn=il(Et,lt,pe+1/3),en=il(Et,lt,pe),dn=il(Et,lt,pe-1/3);return ka(255*bn,255*en,255*dn,We)},Nd={hsl:dr,hsla:dr,rgb:cv,rgba:cv},Sf=function(v,g){return $u_parse(v,jc.create(g).parseComponentValue())},Fl={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},xg={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(v,g){return g.map(function(x){if(Sr(x))switch(x.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Cg={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ga=function(v,g){var x=$u_parse(v,g[0]),w=g[1];return w&&To(w)?{color:x,stop:w}:{color:x,stop:null}},Ct=function(v,g){var x=v[0],w=v[v.length-1];null===x.stop&&(x.stop=Is),null===w.stop&&(w.stop=Ld);for(var S=[],O=0,J=0;JO?me:O),O=me}else S.push(null)}var Ue=null;for(J=0;JJ.optimumDistance)?{optimumCorner:pe,optimumDistance:We}:J},{optimumDistance:S?1/0:-1/0,optimumCorner:null}).optimumCorner},gp=function(v,g){var x=Da(180),w=[];return vc(g).forEach(function(S,O){if(0===O){var J=S[0];if(20===J.type&&-1!==["top","left","right","bottom"].indexOf(J.value))return void(x=zF(S));if(wg(J))return void(x=(Wu_parse(v,J)+Da(270))%Da(360))}var pe=ga(v,S);w.push(pe)}),{angle:x,stops:w,type:1}},Mg="closest-side",eC="farthest-side",tC="closest-corner",ol="farthest-corner",hv="ellipse",rC="contain",Eg=function(v,g){var x=0,w=3,S=[],O=[];return vc(g).forEach(function(J,pe){var me=!0;if(0===pe?me=J.reduce(function(We,lt){if(Sr(lt))switch(lt.value){case"center":return O.push(Ef),!1;case"top":case"left":return O.push(Is),!1;case"right":case"bottom":return O.push(Ld),!1}else if(To(lt)||Od(lt))return O.push(lt),!1;return We},me):1===pe&&(me=J.reduce(function(We,lt){if(Sr(lt))switch(lt.value){case"circle":return x=0,!1;case hv:return x=1,!1;case rC:case Mg:return w=0,!1;case eC:return w=1,!1;case tC:return w=2,!1;case"cover":case ol:return w=3,!1}else if(Od(lt)||To(lt))return Array.isArray(w)||(w=[]),w.push(lt),!1;return We},me)),me){var Ue=ga(v,J);S.push(Ue)}}),{size:w,shape:x,stops:S,position:O,type:2}},fv_parse=function(v,g){if(22===g.type){var x={url:g.value,type:0};return v.cache.addImage(g.value),x}if(18===g.type){var w=bt[g.name];if(typeof w>"u")throw new Error('Attempting to parse an unsupported image function "'+g.name+'"');return w(v,g.values)}throw new Error("Unsupported image type "+g.type)};for(var bt={"linear-gradient":function(v,g){var x=Da(180),w=[];return vc(g).forEach(function(S,O){if(0===O){var J=S[0];if(20===J.type&&"to"===J.value)return void(x=zF(S));if(wg(J))return void(x=Wu_parse(v,J))}var pe=ga(v,S);w.push(pe)}),{angle:x,stops:w,type:1}},"-moz-linear-gradient":gp,"-ms-linear-gradient":gp,"-o-linear-gradient":gp,"-webkit-linear-gradient":gp,"radial-gradient":function(v,g){var x=0,w=3,S=[],O=[];return vc(g).forEach(function(J,pe){var me=!0;if(0===pe){var Ue=!1;me=J.reduce(function(lt,Et){if(Ue)if(Sr(Et))switch(Et.value){case"center":return O.push(Ef),lt;case"top":case"left":return O.push(Is),lt;case"right":case"bottom":return O.push(Ld),lt}else(To(Et)||Od(Et))&&O.push(Et);else if(Sr(Et))switch(Et.value){case"circle":return x=0,!1;case hv:return x=1,!1;case"at":return Ue=!0,!1;case Mg:return w=0,!1;case"cover":case eC:return w=1,!1;case rC:case tC:return w=2,!1;case ol:return w=3,!1}else if(Od(Et)||To(Et))return Array.isArray(w)||(w=[]),w.push(Et),!1;return lt},me)}if(me){var We=ga(v,J);S.push(We)}}),{size:w,shape:x,stops:S,position:O,type:2}},"-moz-radial-gradient":Eg,"-ms-radial-gradient":Eg,"-o-radial-gradient":Eg,"-webkit-radial-gradient":Eg,"-webkit-gradient":function(v,g){var x=Da(180),w=[],S=1;return vc(g).forEach(function(me,Ue){var We=me[0];if(0===Ue){if(Sr(We)&&"linear"===We.value)return void(S=1);if(Sr(We)&&"radial"===We.value)return void(S=2)}if(18===We.type)if("from"===We.name){var lt=$u_parse(v,We.values[0]);w.push({stop:Is,color:lt})}else if("to"===We.name)lt=$u_parse(v,We.values[0]),w.push({stop:Ld,color:lt});else if("color-stop"===We.name){var Et=We.values.filter(bc);if(2===Et.length){lt=$u_parse(v,Et[1]);var bn=Et[0];ve(bn)&&w.push({stop:{type:16,number:100*bn.number,flags:bn.flags},color:lt})}}}),1===S?{angle:(x+Da(180))%Da(360),stops:w,type:S}:{size:3,shape:0,stops:w,position:[],type:S}}},KF={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(v,g){if(0===g.length)return[];var x=g[0];return 20===x.type&&"none"===x.value?[]:g.filter(function(w){return bc(w)&&function XF(v){return!(20===v.type&&"none"===v.value||18===v.type&&!bt[v.name])}(w)}).map(function(w){return fv_parse(v,w)})}},YF={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(v,g){return g.map(function(x){if(Sr(x))switch(x.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},kt={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(v,g){return vc(g).map(function(x){return x.filter(To)}).map(qu)}},sC={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(v,g){return vc(g).map(function(x){return x.filter(Sr).map(function(w){return w.value}).join(" ")}).map(Wt)}},Wt=function(v){switch(v){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}},ur=function(v){return v.AUTO="auto",v.CONTAIN="contain",v.COVER="cover",v}(ur||{}),Vi={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(v,g){return vc(g).map(function(x){return x.filter(es)})}},es=function(v){return Sr(v)||To(v)},Go=function(v){return{name:"border-"+v+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},ju=Go("top"),qs=Go("right"),aC=Go("bottom"),lC=Go("left"),Xu=function(v){return{name:"border-radius-"+v,initialValue:"0 0",prefix:!1,type:1,parse:function(g,x){return qu(x.filter(To))}}},ZF=Xu("top-left"),JF=Xu("top-right"),_p=Xu("bottom-right"),eD=Xu("bottom-left"),Tf=function(v){return{name:"border-"+v+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(g,x){switch(x){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},cC=Tf("top"),Sg=Tf("right"),B8=Tf("bottom"),mv=Tf("left"),Tg=function(v){return{name:"border-"+v+"-width",initialValue:"0",type:0,prefix:!1,parse:function(g,x){return mp(x)?x.number:0}}},pv=Tg("top"),dC=Tg("right"),uC=Tg("bottom"),Ku=Tg("left"),tD={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Av={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(v,g){return"rtl"===g?1:0}},Ig={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).reduce(function(x,w){return x|nD(w.value)},0)}},nD=function(v){switch(v){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},gv={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Fg={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(v,g){return 20===g.type&&"normal"===g.value?0:17===g.type||15===g.type?g.number:0}},Ba=function(v){return v.NORMAL="normal",v.STRICT="strict",v}(Ba||{}),If={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){return"strict"===g?Ba.STRICT:Ba.NORMAL}},_v={name:"line-height",initialValue:"normal",prefix:!1,type:4},hC=function(v,g){return Sr(v)&&"normal"===v.value?1.2*g:17===v.type?g*v.number:To(v)?jr(v,g):g},iD={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(v,g){return 20===g.type&&"none"===g.value?null:fv_parse(v,g)}},fC={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(v,g){return"inside"===g?0:1}},Ud={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Dg=function(v){return{name:"margin-"+v,initialValue:"0",prefix:!1,type:4}},rD=Dg("top"),oD=Dg("right"),bv=Dg("bottom"),vv=Dg("left"),mC={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).map(function(x){switch(x.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},bp={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){return"break-word"===g?"break-word":"normal"}},Xc=function(v){return{name:"padding-"+v,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},sD=Xc("top"),aD=Xc("right"),ts=Xc("bottom"),pC=Xc("left"),lD={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(v,g){switch(g){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},vp={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(v,g){switch(g){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},cD={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(v,g){return 1===g.length&&Mf(g[0],"none")?[]:vc(g).map(function(x){for(var w={color:Fl.TRANSPARENT,offsetX:Is,offsetY:Is,blur:Is},S=0,O=0;O"u")throw new Error('Attempting to parse an unsupported transform function "'+g.name+'"');return x(g.values)}return null}},mD={matrix:function(v){var g=v.filter(function(x){return 17===x.type}).map(function(x){return x.number});return 6===g.length?g:null},matrix3d:function(v){var g=v.filter(function(me){return 17===me.type}).map(function(me){return me.number});return 16===g.length?[g[0],g[1],g[4],g[5],g[12],g[13]]:null}},kg={type:16,number:50,flags:4},Bg=[kg,kg],uo={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(v,g){var x=g.filter(To);return 2!==x.length?Bg:[x[0],x[1]]}},Jt={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"hidden":return 1;case"collapse":return 2;default:return 0}}},Hn=function(v){return v.NORMAL="normal",v.BREAK_ALL="break-all",v.KEEP_ALL="keep-all",v}(Hn||{}),Ro={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){switch(g){case"break-all":return Hn.BREAK_ALL;case"keep-all":return Hn.KEEP_ALL;default:return Hn.NORMAL}}},Dl={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(v,g){if(20===g.type)return{auto:!0,order:0};if(ve(g))return{auto:!1,order:g.number};throw new Error("Invalid z-index number parsed")}},Fs={name:"time",parse:function(v,g){if(15===g.type)switch(g.unit.toLowerCase()){case"s":return 1e3*g.number;case"ms":return g.number}throw new Error("Unsupported time type")}},Pa={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(v,g){return ve(g)?g.number:1}},Ff={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Xr={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).map(function(x){switch(x.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(x){return 0!==x})}},Ds={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(v,g){var x=[],w=[];return g.forEach(function(S){switch(S.type){case 20:case 0:x.push(S.value);break;case 17:x.push(S.number.toString());break;case 4:w.push(x.join(" ")),x.length=0}}),x.length&&w.push(x.join(" ")),w.map(function(S){return-1===S.indexOf(" ")?S:"'"+S+"'"})}},kl={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},oi={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(v,g){return ve(g)?g.number:Sr(g)&&"bold"===g.value?700:400}},yp={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(v,g){return g.filter(Sr).map(function(x){return x.value})}},AC={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){switch(g){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},ho=function(v,g){return!!(v&g)},bo={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(v,g){if(0===g.length)return[];var x=g[0];return 20===x.type&&"none"===x.value?[]:g}},wp={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(v,g){if(0===g.length)return null;var x=g[0];if(20===x.type&&"none"===x.value)return null;for(var w=[],S=g.filter(yg),O=0;O1?1:0],this.overflowWrap=gn(g,bp,x.overflowWrap),this.paddingTop=gn(g,sD,x.paddingTop),this.paddingRight=gn(g,aD,x.paddingRight),this.paddingBottom=gn(g,ts,x.paddingBottom),this.paddingLeft=gn(g,pC,x.paddingLeft),this.paintOrder=gn(g,Pg,x.paintOrder),this.position=gn(g,vp,x.position),this.textAlign=gn(g,lD,x.textAlign),this.textDecorationColor=gn(g,Ff,null!==(w=x.textDecorationColor)&&void 0!==w?w:x.color),this.textDecorationLine=gn(g,Xr,null!==(S=x.textDecorationLine)&&void 0!==S?S:x.textDecoration),this.textShadow=gn(g,cD,x.textShadow),this.textTransform=gn(g,dD,x.textTransform),this.transform=gn(g,uD,x.transform),this.transformOrigin=gn(g,uo,x.transformOrigin),this.visibility=gn(g,Jt,x.visibility),this.webkitTextStrokeColor=gn(g,Yu,x.webkitTextStrokeColor),this.webkitTextStrokeWidth=gn(g,vi,x.webkitTextStrokeWidth),this.wordBreak=gn(g,Ro,x.wordBreak),this.zIndex=gn(g,Dl,x.zIndex)}return v.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},v.prototype.isTransparent=function(){return zo(this.backgroundColor)},v.prototype.isTransformed=function(){return null!==this.transform},v.prototype.isPositioned=function(){return 0!==this.position},v.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},v.prototype.isFloating=function(){return 0!==this.float},v.prototype.isInlineLevel=function(){return ho(this.display,4)||ho(this.display,33554432)||ho(this.display,268435456)||ho(this.display,536870912)||ho(this.display,67108864)||ho(this.display,134217728)},v}(),Cp=function(){return function v(g,x){this.content=gn(g,bo,x.content),this.quotes=gn(g,xp,x.quotes)}}(),Bl=function(){return function v(g,x){this.counterIncrement=gn(g,wp,x.counterIncrement),this.counterReset=gn(g,Df,x.counterReset)}}(),gn=function(v,g,x){var w=new Zx,S=null!==x&&typeof x<"u"?x.toString():g.initialValue;w.write(S);var O=new jc(w.read());switch(g.type){case 2:var J=O.parseComponentValue();return g.parse(v,Sr(J)?J.value:g.initialValue);case 0:return g.parse(v,O.parseComponentValue());case 1:return g.parse(v,O.parseComponentValues());case 4:return O.parseComponentValue();case 3:switch(g.format){case"angle":return Wu_parse(v,O.parseComponentValue());case"color":return $u_parse(v,O.parseComponentValue());case"image":return fv_parse(v,O.parseComponentValue());case"length":var pe=O.parseComponentValue();return Od(pe)?pe:Is;case"length-percentage":var me=O.parseComponentValue();return To(me)?me:Is;case"time":return Fs.parse(v,O.parseComponentValue())}}},Mp=function(v,g){var x=function(v){switch(v.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(v);return 1===x||g===x},eo=function(){return function v(g,x){this.context=g,this.textNodes=[],this.elements=[],this.flags=0,Mp(x,3),this.styles=new wv(g,window.getComputedStyle(x,null)),Wg(x)&&(this.styles.animationDuration.some(function(w){return w>0})&&(x.style.animationDuration="0s"),null!==this.styles.transform&&(x.style.transform="none")),this.bounds=I(this.context,x),Mp(x,4)&&(this.flags|=16)}}(),Rg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Pl=typeof Uint8Array>"u"?[]:new Uint8Array(256),Zu=0;Zu<64;Zu++)Pl[Rg.charCodeAt(Zu)]=Zu;for(var gD=function(v,g,x){return v.slice?v.slice(g,x):new Uint16Array(Array.prototype.slice.call(v,g,x))},bC=function(){function v(g,x,w,S,O,J){this.initialValue=g,this.errorValue=x,this.highStart=w,this.highValueIndex=S,this.index=O,this.data=J}return v.prototype.get=function(g){var x;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[x=((x=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[x=((x=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[x=((x=this.index[x+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},v}(),_D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",q8=typeof Uint8Array>"u"?[]:new Uint8Array(256),Cv=0;Cv<64;Cv++)q8[_D.charCodeAt(Cv)]=Cv;var vC=8,Ug=9,yC=11,Vg=12,CC=function(){for(var v=[],g=0;g>10),J%1024+56320),(S+1===x||w.length>16384)&&(O+=String.fromCharCode.apply(String,w),w.length=0)}return O},vD=function(v,g){var x=function(v){var w,O,J,pe,me,g=.75*v.length,x=v.length,S=0;"="===v[v.length-1]&&(g--,"="===v[v.length-2]&&g--);var Ue=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),We=Array.isArray(Ue)?Ue:new Uint8Array(Ue);for(w=0;w>4,We[S++]=(15&J)<<4|pe>>2,We[S++]=(3&pe)<<6|63&me;return Ue}(v),w=Array.isArray(x)?function(v){for(var g=v.length,x=[],w=0;w=55296&&S<=56319&&x=x)return{done:!0,value:null};for(var J="\xd7";wJ.x||We.y>J.y;return J=We,0===Ue||lt});return v.body.removeChild(g),pe}(document);return Object.defineProperty(As,"SUPPORT_WORD_BREAKING",{value:v}),v},get SUPPORT_SVG_DRAWING(){var v=function(v){var g=new Image,x=v.createElement("canvas"),w=x.getContext("2d");if(!w)return!1;g.src="data:image/svg+xml,";try{w.drawImage(g,0,0),x.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(As,"SUPPORT_SVG_DRAWING",{value:v}),v},get SUPPORT_FOREIGNOBJECT_DRAWING(){var v="function"==typeof Array.from&&"function"==typeof window.fetch?function(v){var g=v.createElement("canvas"),x=100;g.width=x,g.height=x;var w=g.getContext("2d");if(!w)return Promise.reject(!1);w.fillStyle="rgb(0, 255, 0)",w.fillRect(0,0,x,x);var S=new Image,O=g.toDataURL();S.src=O;var J=zg(x,x,0,0,S);return w.fillStyle="red",w.fillRect(0,0,x,x),EC(J).then(function(pe){w.drawImage(pe,0,0);var me=w.getImageData(0,0,x,x).data;w.fillStyle="red",w.fillRect(0,0,x,x);var Ue=v.createElement("div");return Ue.style.backgroundImage="url("+O+")",Ue.style.height=x+"px",MC(me)?EC(zg(x,x,0,0,Ue)):Promise.reject(!1)}).then(function(pe){return w.drawImage(pe,0,0),MC(w.getImageData(0,0,x,x).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(As,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:v}),v},get SUPPORT_CORS_IMAGES(){var v=typeof(new Image).crossOrigin<"u";return Object.defineProperty(As,"SUPPORT_CORS_IMAGES",{value:v}),v},get SUPPORT_RESPONSE_TYPE(){var v="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(As,"SUPPORT_RESPONSE_TYPE",{value:v}),v},get SUPPORT_CORS_XHR(){var v="withCredentials"in new XMLHttpRequest;return Object.defineProperty(As,"SUPPORT_CORS_XHR",{value:v}),v},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var v=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(As,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:v}),v}},eh=function(){return function v(g,x){this.text=g,this.bounds=x}}(),Ip=function(v,g){var x=g.ownerDocument;if(x){var w=x.createElement("html2canvaswrapper");w.appendChild(g.cloneNode(!0));var S=g.parentNode;if(S){S.replaceChild(w,g);var O=I(v,w);return w.firstChild&&S.replaceChild(w.firstChild,w),O}}return F.EMPTY},Fp=function(v,g,x){var w=v.ownerDocument;if(!w)throw new Error("Node has no owner document");var S=w.createRange();return S.setStart(v,g),S.setEnd(v,g+x),S},Dp=function(v){if(As.SUPPORT_NATIVE_TEXT_SEGMENTATION){var g=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(g.segment(v)).map(function(x){return x.segment})}return function(v){for(var w,g=na(v),x=[];!(w=g.next()).done;)w.value&&x.push(w.value.slice());return x}(v)},si=function(v,g){return 0!==g.letterSpacing?Dp(v):function(v,g){if(As.SUPPORT_NATIVE_TEXT_SEGMENTATION){var x=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(x.segment(v)).map(function(w){return w.segment})}return W8(v,g)}(v,g)},SC=[32,160,4961,65792,65793,4153,4241],W8=function(v,g){for(var S,x=function(v,g){var x=T(v),w=ko(x,g),S=w[0],O=w[1],J=w[2],pe=x.length,me=0,Ue=0;return{next:function(){if(Ue>=pe)return{done:!0,value:null};for(var We=Hi;Ue0)if(As.SUPPORT_RANGE_BOUNDS){var me=Fp(w,J,pe.length).getClientRects();if(me.length>1){var Ue=Dp(pe),We=0;Ue.forEach(function(Et){O.push(new eh(Et,F.fromDOMRectList(v,Fp(w,We+J,Et.length).getClientRects()))),We+=Et.length})}else O.push(new eh(pe,F.fromDOMRectList(v,me)))}else{var lt=w.splitText(pe.length);O.push(new eh(pe,Ip(v,w))),w=lt}else As.SUPPORT_RANGE_BOUNDS||(w=w.splitText(pe.length));J+=pe.length}),O}(g,this.text,w,x)}}(),CD=function(v,g){switch(g){case 1:return v.toLowerCase();case 3:return v.replace(MD,TC);case 2:return v.toUpperCase();default:return v}},MD=/(^|\s|:|-|\(|\))([a-z])/g,TC=function(v,g,x){return v.length>0?g+x.toUpperCase():v},nh=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.src=w.currentSrc||w.src,S.intrinsicWidth=w.naturalWidth,S.intrinsicHeight=w.naturalHeight,S.context.cache.addImage(S.src),S}return p(g,v),g}(eo),IC=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.canvas=w,S.intrinsicWidth=w.width,S.intrinsicHeight=w.height,S}return p(g,v),g}(eo),FC=function(v){function g(x,w){var S=v.call(this,x,w)||this,O=new XMLSerializer,J=I(x,w);return w.setAttribute("width",J.width+"px"),w.setAttribute("height",J.height+"px"),S.svg="data:image/svg+xml,"+encodeURIComponent(O.serializeToString(w)),S.intrinsicWidth=w.width.baseVal.value,S.intrinsicHeight=w.height.baseVal.value,S.context.cache.addImage(S.svg),S}return p(g,v),g}(eo),DC=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.value=w.value,S}return p(g,v),g}(eo),Fv=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.start=w.start,S.reversed="boolean"==typeof w.reversed&&!0===w.reversed,S}return p(g,v),g}(eo),ED=[{type:15,flags:0,unit:"px",number:3}],Dt=[{type:16,flags:0,number:50}],Rt="checkbox",Ar="radio",kC="password",Pf=707406591,sl=function(v){function g(x,w){var S=v.call(this,x,w)||this;switch(S.type=w.type.toLowerCase(),S.checked=w.checked,S.value=function(v){var g=v.type===kC?new Array(v.value.length+1).join("\u2022"):v.value;return 0===g.length?v.placeholder||"":g}(w),(S.type===Rt||S.type===Ar)&&(S.styles.backgroundColor=3739148031,S.styles.borderTopColor=S.styles.borderRightColor=S.styles.borderBottomColor=S.styles.borderLeftColor=2779096575,S.styles.borderTopWidth=S.styles.borderRightWidth=S.styles.borderBottomWidth=S.styles.borderLeftWidth=1,S.styles.borderTopStyle=S.styles.borderRightStyle=S.styles.borderBottomStyle=S.styles.borderLeftStyle=1,S.styles.backgroundClip=[0],S.styles.backgroundOrigin=[0],S.bounds=function(v){return v.width>v.height?new F(v.left+(v.width-v.height)/2,v.top,v.height,v.height):v.width0)x.textNodes.push(new xD(v,S,x.styles));else if(Rf(S))if(ks(S)&&S.assignedNodes)S.assignedNodes().forEach(function(pe){return kp(v,pe,x,w)});else{var J=Ws(v,S);J.styles.isVisible()&&(PC(S,J,w)?J.flags|=4:Nl(J.styles)&&(J.flags|=2),-1!==$8.indexOf(S.tagName)&&(J.flags|=8),x.elements.push(J),S.shadowRoot?kp(v,S.shadowRoot,J,w):!Of(S)&&!Bp(S)&&!Kg(S)&&kp(v,S,J,w))}},Ws=function(v,g){return Xg(g)?new nh(v,g):Rv(g)?new IC(v,g):Bp(g)?new FC(v,g):SD(g)?new DC(v,g):Dv(g)?new Fv(v,g):kv(g)?new sl(v,g):Kg(g)?new qg(v,g):Of(g)?new Gg(v,g):Ov(g)?new BC(v,g):new eo(v,g)},wc=function(v,g){var x=Ws(v,g);return x.flags|=4,kp(v,g,x,x),x},PC=function(v,g,x){return g.styles.isPositionedWithZIndex()||g.styles.opacity<1||g.styles.isTransformed()||Pv(v)&&x.styles.isTransparent()},Nl=function(v){return v.isPositioned()||v.isFloating()},xc=function(v){return v.nodeType===Node.TEXT_NODE},Rf=function(v){return v.nodeType===Node.ELEMENT_NODE},Wg=function(v){return Rf(v)&&typeof v.style<"u"&&!$g(v)},$g=function(v){return"object"==typeof v.className},SD=function(v){return"LI"===v.tagName},Dv=function(v){return"OL"===v.tagName},kv=function(v){return"INPUT"===v.tagName},Bp=function(v){return"svg"===v.tagName},Pv=function(v){return"BODY"===v.tagName},Rv=function(v){return"CANVAS"===v.tagName},jg=function(v){return"VIDEO"===v.tagName},Xg=function(v){return"IMG"===v.tagName},Ov=function(v){return"IFRAME"===v.tagName},Lv=function(v){return"STYLE"===v.tagName},Of=function(v){return"TEXTAREA"===v.tagName},Kg=function(v){return"SELECT"===v.tagName},ks=function(v){return"SLOT"===v.tagName},Vd=function(v){return v.tagName.indexOf("-")>0},Kr=function(){function v(){this.counters={}}return v.prototype.getCounterValue=function(g){var x=this.counters[g];return x&&x.length?x[x.length-1]:1},v.prototype.getCounterValues=function(g){return this.counters[g]||[]},v.prototype.pop=function(g){var x=this;g.forEach(function(w){return x.counters[w].pop()})},v.prototype.parse=function(g){var x=this,w=g.counterIncrement,S=g.counterReset,O=!0;null!==w&&w.forEach(function(pe){var me=x.counters[pe.counter];me&&0!==pe.increment&&(O=!1,me.length||me.push(1),me[Math.max(0,me.length-1)]+=pe.increment)});var J=[];return O&&S.forEach(function(pe){var me=x.counters[pe.counter];J.push(pe.counter),me||(me=x.counters[pe.counter]=[]),me.push(pe.reset)}),J},v}(),Ul={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},OC={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u0554","\u0553","\u0552","\u0551","\u0550","\u054f","\u054e","\u054d","\u054c","\u054b","\u054a","\u0549","\u0548","\u0547","\u0546","\u0545","\u0544","\u0543","\u0542","\u0541","\u0540","\u053f","\u053e","\u053d","\u053c","\u053b","\u053a","\u0539","\u0538","\u0537","\u0536","\u0535","\u0534","\u0533","\u0532","\u0531"]},Yg={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["\u05d9\u05f3","\u05d8\u05f3","\u05d7\u05f3","\u05d6\u05f3","\u05d5\u05f3","\u05d4\u05f3","\u05d3\u05f3","\u05d2\u05f3","\u05d1\u05f3","\u05d0\u05f3","\u05ea","\u05e9","\u05e8","\u05e7","\u05e6","\u05e4","\u05e2","\u05e1","\u05e0","\u05de","\u05dc","\u05db","\u05d9\u05d8","\u05d9\u05d7","\u05d9\u05d6","\u05d8\u05d6","\u05d8\u05d5","\u05d9","\u05d8","\u05d7","\u05d6","\u05d5","\u05d4","\u05d3","\u05d2","\u05d1","\u05d0"]},TD={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u10f5","\u10f0","\u10ef","\u10f4","\u10ee","\u10ed","\u10ec","\u10eb","\u10ea","\u10e9","\u10e8","\u10e7","\u10e6","\u10e5","\u10e4","\u10f3","\u10e2","\u10e1","\u10e0","\u10df","\u10de","\u10dd","\u10f2","\u10dc","\u10db","\u10da","\u10d9","\u10d8","\u10d7","\u10f1","\u10d6","\u10d5","\u10d4","\u10d3","\u10d2","\u10d1","\u10d0"]},ih=function(v,g,x,w,S,O){return vx?Yc(v,S,O.length>0):w.integers.reduce(function(J,pe,me){for(;v>=pe;)v-=pe,J+=w.values[me];return J},"")+O},Nv=function(v,g,x,w){var S="";do{x||v--,S=w(v)+S,v/=g}while(v*g>=g);return S},to=function(v,g,x,w,S){var O=x-g+1;return(v<0?"-":"")+(Nv(Math.abs(v),O,w,function(J){return W(Math.floor(J%O)+g)})+S)},$s=function(v,g,x){void 0===x&&(x=". ");var w=g.length;return Nv(Math.abs(v),w,!1,function(S){return g[Math.floor(S%w)]})+x},Ql=function(v,g,x,w,S,O){if(v<-9999||v>9999)return Yc(v,4,S.length>0);var J=Math.abs(v),pe=S;if(0===J)return g[0]+pe;for(var me=0;J>0&&me<=4;me++){var Ue=J%10;0===Ue&&ho(O,1)&&""!==pe?pe=g[Ue]+pe:Ue>1||1===Ue&&0===me||1===Ue&&1===me&&ho(O,2)||1===Ue&&1===me&&ho(O,4)&&v>100||1===Ue&&me>1&&ho(O,8)?pe=g[Ue]+(me>0?x[me-1]:"")+pe:1===Ue&&me>0&&(pe=x[me-1]+pe),J=Math.floor(J/10)}return(v<0?w:"")+pe},zd="\ub9c8\uc774\ub108\uc2a4",Yc=function(v,g,x){var w=x?". ":"",S=x?"\u3001":"",O=x?", ":"",J=x?" ":"";switch(g){case 0:return"\u2022"+J;case 1:return"\u25e6"+J;case 2:return"\u25fe"+J;case 5:var pe=to(v,48,57,!0,w);return pe.length<4?"0"+pe:pe;case 4:return $s(v,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",S);case 6:return ih(v,1,3999,Ul,3,w).toLowerCase();case 7:return ih(v,1,3999,Ul,3,w);case 8:return to(v,945,969,!1,w);case 9:return to(v,97,122,!1,w);case 10:return to(v,65,90,!1,w);case 11:return to(v,1632,1641,!0,w);case 12:case 49:return ih(v,1,9999,OC,3,w);case 35:return ih(v,1,9999,OC,3,w).toLowerCase();case 13:return to(v,2534,2543,!0,w);case 14:case 30:return to(v,6112,6121,!0,w);case 15:return $s(v,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",S);case 16:return $s(v,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",S);case 17:case 48:return Ql(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",S,14);case 47:return Ql(v,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",S,15);case 42:return Ql(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",S,14);case 41:return Ql(v,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",S,15);case 26:return Ql(v,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",S,0);case 25:return Ql(v,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",S,7);case 31:return Ql(v,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",zd,O,7);case 33:return Ql(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",zd,O,0);case 32:return Ql(v,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",zd,O,7);case 18:return to(v,2406,2415,!0,w);case 20:return ih(v,1,19999,TD,3,w);case 21:return to(v,2790,2799,!0,w);case 22:return to(v,2662,2671,!0,w);case 22:return ih(v,1,10999,Yg,3,w);case 23:return $s(v,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d\u305f\u3061\u3064\u3066\u3068\u306a\u306b\u306c\u306d\u306e\u306f\u3072\u3075\u3078\u307b\u307e\u307f\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308a\u308b\u308c\u308d\u308f\u3090\u3091\u3092\u3093");case 24:return $s(v,"\u3044\u308d\u306f\u306b\u307b\u3078\u3068\u3061\u308a\u306c\u308b\u3092\u308f\u304b\u3088\u305f\u308c\u305d\u3064\u306d\u306a\u3089\u3080\u3046\u3090\u306e\u304a\u304f\u3084\u307e\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304d\u3086\u3081\u307f\u3057\u3091\u3072\u3082\u305b\u3059");case 27:return to(v,3302,3311,!0,w);case 28:return $s(v,"\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f0\u30f1\u30f2\u30f3",S);case 29:return $s(v,"\u30a4\u30ed\u30cf\u30cb\u30db\u30d8\u30c8\u30c1\u30ea\u30cc\u30eb\u30f2\u30ef\u30ab\u30e8\u30bf\u30ec\u30bd\u30c4\u30cd\u30ca\u30e9\u30e0\u30a6\u30f0\u30ce\u30aa\u30af\u30e4\u30de\u30b1\u30d5\u30b3\u30a8\u30c6\u30a2\u30b5\u30ad\u30e6\u30e1\u30df\u30b7\u30f1\u30d2\u30e2\u30bb\u30b9",S);case 34:return to(v,3792,3801,!0,w);case 37:return to(v,6160,6169,!0,w);case 38:return to(v,4160,4169,!0,w);case 39:return to(v,2918,2927,!0,w);case 40:return to(v,1776,1785,!0,w);case 43:return to(v,3046,3055,!0,w);case 44:return to(v,3174,3183,!0,w);case 45:return to(v,3664,3673,!0,w);case 46:return to(v,3872,3881,!0,w);default:return to(v,48,57,!0,w)}},NC="data-html2canvas-ignore",Zg=function(){function v(g,x,w){if(this.context=g,this.options=w,this.scrolledElements=[],this.referenceElement=x,this.counters=new Kr,this.quoteDepth=0,!x.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(x.ownerDocument.documentElement,!1)}return v.prototype.toIFrame=function(g,x){var w=this,S=ID(g,x);if(!S.contentWindow)return Promise.reject("Unable to find iframe window");var O=g.defaultView.pageXOffset,J=g.defaultView.pageYOffset,pe=S.contentWindow,me=pe.document,Ue=X8(S).then(function(){return k(w,void 0,void 0,function(){var We,lt;return m(this,function(Et){switch(Et.label){case 0:return this.scrolledElements.forEach(Qv),pe&&(pe.scrollTo(x.left,x.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(pe.scrollY!==x.top||pe.scrollX!==x.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(pe.scrollX-x.left,pe.scrollY-x.top,0,0))),We=this.options.onclone,typeof(lt=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:me.fonts&&me.fonts.ready?[4,me.fonts.ready]:[3,2];case 1:Et.sent(),Et.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,j8(me)]:[3,4];case 3:Et.sent(),Et.label=4;case 4:return"function"==typeof We?[2,Promise.resolve().then(function(){return We(me,lt)}).then(function(){return S})]:[2,S]}})})});return me.open(),me.write(DD(document.doctype)+""),Pp(this.referenceElement.ownerDocument,O,J),me.replaceChild(me.adoptNode(this.documentElement),me.documentElement),me.close(),Ue},v.prototype.createElementClone=function(g){if(Mp(g,2),Rv(g))return this.createCanvasClone(g);if(jg(g))return this.createVideoClone(g);if(Lv(g))return this.createStyleClone(g);var x=g.cloneNode(!1);return Xg(x)&&(Xg(g)&&g.currentSrc&&g.currentSrc!==g.src&&(x.src=g.currentSrc,x.srcset=""),"lazy"===x.loading&&(x.loading="eager")),Vd(x)?this.createCustomElementClone(x):x},v.prototype.createCustomElementClone=function(g){var x=document.createElement("html2canvascustomelement");return rh(g.style,x),x},v.prototype.createStyleClone=function(g){try{var x=g.sheet;if(x&&x.cssRules){var w=[].slice.call(x.cssRules,0).reduce(function(O,J){return J&&"string"==typeof J.cssText?O+J.cssText:O},""),S=g.cloneNode(!1);return S.textContent=w,S}}catch(O){if(this.context.logger.error("Unable to access cssRules property",O),"SecurityError"!==O.name)throw O}return g.cloneNode(!1)},v.prototype.createCanvasClone=function(g){var x;if(this.options.inlineImages&&g.ownerDocument){var w=g.ownerDocument.createElement("img");try{return w.src=g.toDataURL(),w}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",g)}}var S=g.cloneNode(!1);try{S.width=g.width,S.height=g.height;var O=g.getContext("2d"),J=S.getContext("2d");if(J)if(!this.options.allowTaint&&O)J.putImageData(O.getImageData(0,0,g.width,g.height),0,0);else{var pe=null!==(x=g.getContext("webgl2"))&&void 0!==x?x:g.getContext("webgl");if(pe){var me=pe.getContextAttributes();!1===me?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",g)}J.drawImage(g,0,0)}return S}catch{this.context.logger.info("Unable to clone canvas as it is tainted",g)}return S},v.prototype.createVideoClone=function(g){var x=g.ownerDocument.createElement("canvas");x.width=g.offsetWidth,x.height=g.offsetHeight;var w=x.getContext("2d");try{return w&&(w.drawImage(g,0,0,x.width,x.height),this.options.allowTaint||w.getImageData(0,0,x.width,x.height)),x}catch{this.context.logger.info("Unable to clone video as it is tainted",g)}var S=g.ownerDocument.createElement("canvas");return S.width=g.offsetWidth,S.height=g.offsetHeight,S},v.prototype.appendChildNode=function(g,x,w){(!Rf(x)||!function(v){return"SCRIPT"===v.tagName}(x)&&!x.hasAttribute(NC)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(x)))&&(!this.options.copyStyles||!Rf(x)||!Lv(x))&&g.appendChild(this.cloneNode(x,w))},v.prototype.cloneChildNodes=function(g,x,w){for(var S=this,O=g.shadowRoot?g.shadowRoot.firstChild:g.firstChild;O;O=O.nextSibling)if(Rf(O)&&ks(O)&&"function"==typeof O.assignedNodes){var J=O.assignedNodes();J.length&&J.forEach(function(pe){return S.appendChildNode(x,pe,w)})}else this.appendChildNode(x,O,w)},v.prototype.cloneNode=function(g,x){if(xc(g))return document.createTextNode(g.data);if(!g.ownerDocument)return g.cloneNode(!1);var w=g.ownerDocument.defaultView;if(w&&Rf(g)&&(Wg(g)||$g(g))){var S=this.createElementClone(g);S.style.transitionProperty="none";var O=w.getComputedStyle(g),J=w.getComputedStyle(g,":before"),pe=w.getComputedStyle(g,":after");this.referenceElement===g&&Wg(S)&&(this.clonedReferenceElement=S),Pv(S)&&Cc(S);var me=this.counters.parse(new Bl(this.context,O)),Ue=this.resolvePseudoContent(g,S,J,Jg.BEFORE);Vd(g)&&(x=!0),jg(g)||this.cloneChildNodes(g,S,x),Ue&&S.insertBefore(Ue,S.firstChild);var We=this.resolvePseudoContent(g,S,pe,Jg.AFTER);return We&&S.appendChild(We),this.counters.pop(me),(O&&(this.options.copyStyles||$g(g))&&!Ov(g)||x)&&rh(O,S),(0!==g.scrollTop||0!==g.scrollLeft)&&this.scrolledElements.push([S,g.scrollLeft,g.scrollTop]),(Of(g)||Kg(g))&&(Of(S)||Kg(S))&&(S.value=g.value),S}return g.cloneNode(!1)},v.prototype.resolvePseudoContent=function(g,x,w,S){var O=this;if(w){var J=w.content,pe=x.ownerDocument;if(pe&&J&&"none"!==J&&"-moz-alt-content"!==J&&"none"!==w.display){this.counters.parse(new Bl(this.context,w));var me=new Cp(this.context,w),Ue=pe.createElement("html2canvaspseudoelement");rh(w,Ue),me.content.forEach(function(lt){if(0===lt.type)Ue.appendChild(pe.createTextNode(lt.value));else if(22===lt.type){var Et=pe.createElement("img");Et.src=lt.value,Et.style.opacity="1",Ue.appendChild(Et)}else if(18===lt.type){if("attr"===lt.name){var bn=lt.values.filter(Sr);bn.length&&Ue.appendChild(pe.createTextNode(g.getAttribute(bn[0].value)||""))}else if("counter"===lt.name){var en=lt.values.filter(bc),Wn=en[1];if((dn=en[0])&&Sr(dn)){var Sn=O.counters.getCounterValue(dn.value),Tn=Wn&&Sr(Wn)?Ud.parse(O.context,Wn.value):3;Ue.appendChild(pe.createTextNode(Yc(Sn,Tn,!1)))}}else if("counters"===lt.name){var dn,mr=lt.values.filter(bc),Oi=mr[1];if(Wn=mr[2],(dn=mr[0])&&Sr(dn)){var ai=O.counters.getCounterValues(dn.value),vn=Wn&&Sr(Wn)?Ud.parse(O.context,Wn.value):3,ar=Oi&&0===Oi.type?Oi.value:"",hr=ai.map(function(_a){return Yc(_a,vn,!1)}).join(ar);Ue.appendChild(pe.createTextNode(hr))}}}else if(20===lt.type)switch(lt.value){case"open-quote":Ue.appendChild(pe.createTextNode(yv(me.quotes,O.quoteDepth++,!0)));break;case"close-quote":Ue.appendChild(pe.createTextNode(yv(me.quotes,--O.quoteDepth,!1)));break;default:Ue.appendChild(pe.createTextNode(lt.value))}}),Ue.className=t0+" "+n0;var We=S===Jg.BEFORE?" "+t0:" "+n0;return $g(x)?x.className.baseValue+=We:x.className+=We,Ue}}},v.destroy=function(g){return!!g.parentNode&&(g.parentNode.removeChild(g),!0)},v}(),Jg=function(v){return v[v.BEFORE=0]="BEFORE",v[v.AFTER=1]="AFTER",v}(Jg||{}),ID=function(v,g){var x=v.createElement("iframe");return x.className="html2canvas-container",x.style.visibility="hidden",x.style.position="fixed",x.style.left="-10000px",x.style.top="0px",x.style.border="0",x.width=g.width.toString(),x.height=g.height.toString(),x.scrolling="no",x.setAttribute(NC,"true"),v.body.appendChild(x),x},FD=function(v){return new Promise(function(g){v.complete?g():v.src?(v.onload=g,v.onerror=g):g()})},j8=function(v){return Promise.all([].slice.call(v.images,0).map(FD))},X8=function(v){return new Promise(function(g,x){var w=v.contentWindow;if(!w)return x("No window assigned for iframe");var S=w.document;w.onload=v.onload=function(){w.onload=v.onload=null;var O=setInterval(function(){S.body.childNodes.length>0&&"complete"===S.readyState&&(clearInterval(O),g(v))},50)}})},Vv=["all","d","content"],rh=function(v,g){for(var x=v.length-1;x>=0;x--){var w=v.item(x);-1===Vv.indexOf(w)&&g.style.setProperty(w,v.getPropertyValue(w))}return g},DD=function(v){var g="";return v&&(g+=""),g},Pp=function(v,g,x){v&&v.defaultView&&(g!==v.defaultView.pageXOffset||x!==v.defaultView.pageYOffset)&&v.defaultView.scrollTo(g,x)},Qv=function(v){var g=v[0],w=v[2];g.scrollLeft=v[1],g.scrollTop=w},t0="___html2canvas___pseudoelement_before",n0="___html2canvas___pseudoelement_after",UC='{\n content: "" !important;\n display: none !important;\n}',Cc=function(v){kD(v,"."+t0+":before"+UC+"\n ."+n0+":after"+UC)},kD=function(v,g){var x=v.ownerDocument;if(x){var w=x.createElement("style");w.textContent=g,v.appendChild(w)}},Rp=function(){function v(){}return v.getOrigin=function(g){var x=v._link;return x?(x.href=g,x.href=x.href,x.protocol+x.hostname+x.port):"about:blank"},v.isSameOrigin=function(g){return v.getOrigin(g)===v._origin},v.setContext=function(g){v._link=g.document.createElement("a"),v._origin=v.getOrigin(g.location.href)},v._origin="about:blank",v}(),zv=function(){function v(g,x){this.context=g,this._options=x,this._cache={}}return v.prototype.addImage=function(g){var x=Promise.resolve();return this.has(g)||(s0(g)||BD(g))&&(this._cache[g]=this.loadImage(g)).catch(function(){}),x},v.prototype.match=function(g){return this._cache[g]},v.prototype.loadImage=function(g){return k(this,void 0,void 0,function(){var x,w,S,O,J=this;return m(this,function(pe){switch(pe.label){case 0:return x=Rp.isSameOrigin(g),w=!o0(g)&&!0===this._options.useCORS&&As.SUPPORT_CORS_IMAGES&&!x,S=!o0(g)&&!x&&!s0(g)&&"string"==typeof this._options.proxy&&As.SUPPORT_CORS_XHR&&!w,x||!1!==this._options.allowTaint||o0(g)||s0(g)||S||w?(O=g,S?[4,this.proxy(O)]:[3,2]):[2];case 1:O=pe.sent(),pe.label=2;case 2:return this.context.logger.debug("Added image "+g.substring(0,256)),[4,new Promise(function(me,Ue){var We=new Image;We.onload=function(){return me(We)},We.onerror=Ue,(VC(O)||w)&&(We.crossOrigin="anonymous"),We.src=O,!0===We.complete&&setTimeout(function(){return me(We)},500),J._options.imageTimeout>0&&setTimeout(function(){return Ue("Timed out ("+J._options.imageTimeout+"ms) loading image")},J._options.imageTimeout)})];case 3:return[2,pe.sent()]}})})},v.prototype.has=function(g){return typeof this._cache[g]<"u"},v.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},v.prototype.proxy=function(g){var x=this,w=this._options.proxy;if(!w)throw new Error("No proxy defined");var S=g.substring(0,256);return new Promise(function(O,J){var pe=As.SUPPORT_RESPONSE_TYPE?"blob":"text",me=new XMLHttpRequest;me.onload=function(){if(200===me.status)if("text"===pe)O(me.response);else{var lt=new FileReader;lt.addEventListener("load",function(){return O(lt.result)},!1),lt.addEventListener("error",function(Et){return J(Et)},!1),lt.readAsDataURL(me.response)}else J("Failed to proxy resource "+S+" with status code "+me.status)},me.onerror=J;var Ue=w.indexOf("?")>-1?"&":"?";if(me.open("GET",""+w+Ue+"url="+encodeURIComponent(g)+"&responseType="+pe),"text"!==pe&&me instanceof XMLHttpRequest&&(me.responseType=pe),x._options.imageTimeout){var We=x._options.imageTimeout;me.timeout=We,me.ontimeout=function(){return J("Timed out ("+We+"ms) proxying "+S)}}me.send()})},v}(),HC=/^data:image\/svg\+xml/i,r0=/^data:image\/.*;base64,/i,qv=/^data:image\/.*/i,BD=function(v){return As.SUPPORT_SVG_DRAWING||!QC(v)},o0=function(v){return qv.test(v)},VC=function(v){return r0.test(v)},s0=function(v){return"blob"===v.substr(0,4)},QC=function(v){return"svg"===v.substr(-3).toLowerCase()||HC.test(v)},_n=function(){function v(g,x){this.type=0,this.x=g,this.y=x}return v.prototype.add=function(g,x){return new v(this.x+g,this.y+x)},v}(),Zc=function(v,g,x){return new _n(v.x+(g.x-v.x)*x,v.y+(g.y-v.y)*x)},Mc=function(){function v(g,x,w,S){this.type=1,this.start=g,this.startControl=x,this.endControl=w,this.end=S}return v.prototype.subdivide=function(g,x){var w=Zc(this.start,this.startControl,g),S=Zc(this.startControl,this.endControl,g),O=Zc(this.endControl,this.end,g),J=Zc(w,S,g),pe=Zc(S,O,g),me=Zc(J,pe,g);return x?new v(this.start,w,J,me):new v(me,pe,O,this.end)},v.prototype.add=function(g,x){return new v(this.start.add(g,x),this.startControl.add(g,x),this.endControl.add(g,x),this.end.add(g,x))},v.prototype.reverse=function(){return new v(this.end,this.endControl,this.startControl,this.start)},v}(),al=function(v){return 1===v.type},zC=function(){return function v(g){var x=g.styles,w=g.bounds,S=Il(x.borderTopLeftRadius,w.width,w.height),O=S[0],J=S[1],pe=Il(x.borderTopRightRadius,w.width,w.height),me=pe[0],Ue=pe[1],We=Il(x.borderBottomRightRadius,w.width,w.height),lt=We[0],Et=We[1],bn=Il(x.borderBottomLeftRadius,w.width,w.height),en=bn[0],dn=bn[1],Wn=[];Wn.push((O+me)/w.width),Wn.push((en+lt)/w.width),Wn.push((J+dn)/w.height),Wn.push((Ue+Et)/w.height);var Sn=Math.max.apply(Math,Wn);Sn>1&&(O/=Sn,J/=Sn,me/=Sn,Ue/=Sn,lt/=Sn,Et/=Sn,en/=Sn,dn/=Sn);var Tn=w.width-me,mr=w.height-Et,Oi=w.width-lt,ai=w.height-dn,vn=x.borderTopWidth,ar=x.borderRightWidth,hr=x.borderBottomWidth,di=x.borderLeftWidth,Wo=jr(x.paddingTop,g.bounds.width),_a=jr(x.paddingRight,g.bounds.width),La=jr(x.paddingBottom,g.bounds.width),Rr=jr(x.paddingLeft,g.bounds.width);this.topLeftBorderDoubleOuterBox=O>0||J>0?Tr(w.left+di/3,w.top+vn/3,O-di/3,J-vn/3,Mr.TOP_LEFT):new _n(w.left+di/3,w.top+vn/3),this.topRightBorderDoubleOuterBox=O>0||J>0?Tr(w.left+Tn,w.top+vn/3,me-ar/3,Ue-vn/3,Mr.TOP_RIGHT):new _n(w.left+w.width-ar/3,w.top+vn/3),this.bottomRightBorderDoubleOuterBox=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt-ar/3,Et-hr/3,Mr.BOTTOM_RIGHT):new _n(w.left+w.width-ar/3,w.top+w.height-hr/3),this.bottomLeftBorderDoubleOuterBox=en>0||dn>0?Tr(w.left+di/3,w.top+ai,en-di/3,dn-hr/3,Mr.BOTTOM_LEFT):new _n(w.left+di/3,w.top+w.height-hr/3),this.topLeftBorderDoubleInnerBox=O>0||J>0?Tr(w.left+2*di/3,w.top+2*vn/3,O-2*di/3,J-2*vn/3,Mr.TOP_LEFT):new _n(w.left+2*di/3,w.top+2*vn/3),this.topRightBorderDoubleInnerBox=O>0||J>0?Tr(w.left+Tn,w.top+2*vn/3,me-2*ar/3,Ue-2*vn/3,Mr.TOP_RIGHT):new _n(w.left+w.width-2*ar/3,w.top+2*vn/3),this.bottomRightBorderDoubleInnerBox=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt-2*ar/3,Et-2*hr/3,Mr.BOTTOM_RIGHT):new _n(w.left+w.width-2*ar/3,w.top+w.height-2*hr/3),this.bottomLeftBorderDoubleInnerBox=en>0||dn>0?Tr(w.left+2*di/3,w.top+ai,en-2*di/3,dn-2*hr/3,Mr.BOTTOM_LEFT):new _n(w.left+2*di/3,w.top+w.height-2*hr/3),this.topLeftBorderStroke=O>0||J>0?Tr(w.left+di/2,w.top+vn/2,O-di/2,J-vn/2,Mr.TOP_LEFT):new _n(w.left+di/2,w.top+vn/2),this.topRightBorderStroke=O>0||J>0?Tr(w.left+Tn,w.top+vn/2,me-ar/2,Ue-vn/2,Mr.TOP_RIGHT):new _n(w.left+w.width-ar/2,w.top+vn/2),this.bottomRightBorderStroke=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt-ar/2,Et-hr/2,Mr.BOTTOM_RIGHT):new _n(w.left+w.width-ar/2,w.top+w.height-hr/2),this.bottomLeftBorderStroke=en>0||dn>0?Tr(w.left+di/2,w.top+ai,en-di/2,dn-hr/2,Mr.BOTTOM_LEFT):new _n(w.left+di/2,w.top+w.height-hr/2),this.topLeftBorderBox=O>0||J>0?Tr(w.left,w.top,O,J,Mr.TOP_LEFT):new _n(w.left,w.top),this.topRightBorderBox=me>0||Ue>0?Tr(w.left+Tn,w.top,me,Ue,Mr.TOP_RIGHT):new _n(w.left+w.width,w.top),this.bottomRightBorderBox=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt,Et,Mr.BOTTOM_RIGHT):new _n(w.left+w.width,w.top+w.height),this.bottomLeftBorderBox=en>0||dn>0?Tr(w.left,w.top+ai,en,dn,Mr.BOTTOM_LEFT):new _n(w.left,w.top+w.height),this.topLeftPaddingBox=O>0||J>0?Tr(w.left+di,w.top+vn,Math.max(0,O-di),Math.max(0,J-vn),Mr.TOP_LEFT):new _n(w.left+di,w.top+vn),this.topRightPaddingBox=me>0||Ue>0?Tr(w.left+Math.min(Tn,w.width-ar),w.top+vn,Tn>w.width+ar?0:Math.max(0,me-ar),Math.max(0,Ue-vn),Mr.TOP_RIGHT):new _n(w.left+w.width-ar,w.top+vn),this.bottomRightPaddingBox=lt>0||Et>0?Tr(w.left+Math.min(Oi,w.width-di),w.top+Math.min(mr,w.height-hr),Math.max(0,lt-ar),Math.max(0,Et-hr),Mr.BOTTOM_RIGHT):new _n(w.left+w.width-ar,w.top+w.height-hr),this.bottomLeftPaddingBox=en>0||dn>0?Tr(w.left+di,w.top+Math.min(ai,w.height-hr),Math.max(0,en-di),Math.max(0,dn-hr),Mr.BOTTOM_LEFT):new _n(w.left+di,w.top+w.height-hr),this.topLeftContentBox=O>0||J>0?Tr(w.left+di+Rr,w.top+vn+Wo,Math.max(0,O-(di+Rr)),Math.max(0,J-(vn+Wo)),Mr.TOP_LEFT):new _n(w.left+di+Rr,w.top+vn+Wo),this.topRightContentBox=me>0||Ue>0?Tr(w.left+Math.min(Tn,w.width+di+Rr),w.top+vn+Wo,Tn>w.width+di+Rr?0:me-di+Rr,Ue-(vn+Wo),Mr.TOP_RIGHT):new _n(w.left+w.width-(ar+_a),w.top+vn+Wo),this.bottomRightContentBox=lt>0||Et>0?Tr(w.left+Math.min(Oi,w.width-(di+Rr)),w.top+Math.min(mr,w.height+vn+Wo),Math.max(0,lt-(ar+_a)),Et-(hr+La),Mr.BOTTOM_RIGHT):new _n(w.left+w.width-(ar+_a),w.top+w.height-(hr+La)),this.bottomLeftContentBox=en>0||dn>0?Tr(w.left+di+Rr,w.top+ai,Math.max(0,en-(di+Rr)),dn-(hr+La),Mr.BOTTOM_LEFT):new _n(w.left+di+Rr,w.top+w.height-(hr+La))}}(),Mr=function(v){return v[v.TOP_LEFT=0]="TOP_LEFT",v[v.TOP_RIGHT=1]="TOP_RIGHT",v[v.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",v[v.BOTTOM_LEFT=3]="BOTTOM_LEFT",v}(Mr||{}),Tr=function(v,g,x,w,S){var O=(Math.sqrt(2)-1)/3*4,J=x*O,pe=w*O,me=v+x,Ue=g+w;switch(S){case Mr.TOP_LEFT:return new Mc(new _n(v,Ue),new _n(v,Ue-pe),new _n(me-J,g),new _n(me,g));case Mr.TOP_RIGHT:return new Mc(new _n(v,g),new _n(v+J,g),new _n(me,Ue-pe),new _n(me,Ue));case Mr.BOTTOM_RIGHT:return new Mc(new _n(me,g),new _n(me,g+pe),new _n(v+J,Ue),new _n(v,Ue));default:return new Mc(new _n(me,Ue),new _n(me-J,Ue),new _n(v,g+pe),new _n(v,g))}},Jc=function(v){return[v.topLeftBorderBox,v.topRightBorderBox,v.bottomRightBorderBox,v.bottomLeftBorderBox]},a0=function(v){return[v.topLeftPaddingBox,v.topRightPaddingBox,v.bottomRightPaddingBox,v.bottomLeftPaddingBox]},no=function(){return function v(g,x,w){this.offsetX=g,this.offsetY=x,this.matrix=w,this.type=0,this.target=6}}(),Nf=function(){return function v(g,x){this.path=g,this.target=x,this.type=1}}(),PD=function(){return function v(g){this.opacity=g,this.type=2,this.target=6}}(),zl=function(v){return 1===v.type},Gv=function(v,g){return v.length===g.length&&v.some(function(x,w){return x===g[w]})},Op=function(){return function v(g){this.element=g,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),$v=function(){function v(g,x){if(this.container=g,this.parent=x,this.effects=[],this.curves=new zC(this.container),this.container.styles.opacity<1&&this.effects.push(new PD(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new no(this.container.bounds.left+this.container.styles.transformOrigin[0].number,this.container.bounds.top+this.container.styles.transformOrigin[1].number,this.container.styles.transform)),0!==this.container.styles.overflowX){var J=Jc(this.curves),pe=a0(this.curves);Gv(J,pe)?this.effects.push(new Nf(J,6)):(this.effects.push(new Nf(J,2)),this.effects.push(new Nf(pe,4)))}}return v.prototype.getEffects=function(g){for(var x=-1===[2,3].indexOf(this.container.styles.position),w=this.parent,S=this.effects.slice(0);w;){var O=w.effects.filter(function(me){return!zl(me)});if(x||0!==w.container.styles.position||!w.parent){if(S.unshift.apply(S,O),x=-1===[2,3].indexOf(w.container.styles.position),0!==w.container.styles.overflowX){var J=Jc(w.curves),pe=a0(w.curves);Gv(J,pe)||S.unshift(new Nf(pe,6))}}else S.unshift.apply(S,O);w=w.parent}return S.filter(function(me){return ho(me.target,g)})},v}(),jv=function(v,g,x,w){v.container.elements.forEach(function(S){var O=ho(S.flags,4),J=ho(S.flags,2),pe=new $v(S,v);ho(S.styles.display,2048)&&w.push(pe);var me=ho(S.flags,8)?[]:w;if(O||J){var Ue=O||S.styles.isPositioned()?x:g,We=new Op(pe);if(S.styles.isPositioned()||S.styles.opacity<1||S.styles.isTransformed()){var lt=S.styles.zIndex.order;if(lt<0){var Et=0;Ue.negativeZIndex.some(function(en,dn){return lt>en.element.container.styles.zIndex.order?(Et=dn,!1):Et>0}),Ue.negativeZIndex.splice(Et,0,We)}else if(lt>0){var bn=0;Ue.positiveZIndex.some(function(en,dn){return lt>=en.element.container.styles.zIndex.order?(bn=dn+1,!1):bn>0}),Ue.positiveZIndex.splice(bn,0,We)}else Ue.zeroOrAutoZIndexOrTransformedOrOpacity.push(We)}else S.styles.isFloating()?Ue.nonPositionedFloats.push(We):Ue.nonPositionedInlineLevel.push(We);jv(pe,We,O?We:x,me)}else S.styles.isInlineLevel()?g.inlineLevel.push(pe):g.nonInlineLevel.push(pe),jv(pe,g,x,me);ho(S.flags,8)&&GC(S,me)})},GC=function(v,g){for(var x=v instanceof Fv?v.start:1,w=v instanceof Fv&&v.reversed,S=0;S"u"?v[0]:x},qd=function(v,g,x,w,S){var O=g[0],J=g[1],pe=x[0],me=x[1];switch(v){case 2:return[new _n(Math.round(w.left),Math.round(w.top+J)),new _n(Math.round(w.left+w.width),Math.round(w.top+J)),new _n(Math.round(w.left+w.width),Math.round(me+w.top+J)),new _n(Math.round(w.left),Math.round(me+w.top+J))];case 3:return[new _n(Math.round(w.left+O),Math.round(w.top)),new _n(Math.round(w.left+O+pe),Math.round(w.top)),new _n(Math.round(w.left+O+pe),Math.round(w.height+w.top)),new _n(Math.round(w.left+O),Math.round(w.height+w.top))];case 1:return[new _n(Math.round(w.left+O),Math.round(w.top+J)),new _n(Math.round(w.left+O+pe),Math.round(w.top+J)),new _n(Math.round(w.left+O+pe),Math.round(w.top+J+me)),new _n(Math.round(w.left+O),Math.round(w.top+J+me))];default:return[new _n(Math.round(S.left),Math.round(S.top)),new _n(Math.round(S.left+S.width),Math.round(S.top)),new _n(Math.round(S.left+S.width),Math.round(S.height+S.top)),new _n(Math.round(S.left),Math.round(S.height+S.top))]}},$C="Hidden Text",jC=function(){function v(g){this._data={},this._document=g}return v.prototype.parseMetrics=function(g,x){var w=this._document.createElement("div"),S=this._document.createElement("img"),O=this._document.createElement("span"),J=this._document.body;w.style.visibility="hidden",w.style.fontFamily=g,w.style.fontSize=x,w.style.margin="0",w.style.padding="0",w.style.whiteSpace="nowrap",J.appendChild(w),S.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",S.width=1,S.height=1,S.style.margin="0",S.style.padding="0",S.style.verticalAlign="baseline",O.style.fontFamily=g,O.style.fontSize=x,O.style.margin="0",O.style.padding="0",O.appendChild(this._document.createTextNode($C)),w.appendChild(O),w.appendChild(S);var pe=S.offsetTop-O.offsetTop+2;w.removeChild(O),w.appendChild(this._document.createTextNode($C)),w.style.lineHeight="normal",S.style.verticalAlign="super";var me=S.offsetTop-w.offsetTop+2;return J.removeChild(w),{baseline:pe,middle:me}},v.prototype.getMetrics=function(g,x){var w=g+" "+x;return typeof this._data[w]>"u"&&(this._data[w]=this.parseMetrics(g,x)),this._data[w]},v}(),HD=function(){return function v(g,x){this.context=g,this.options=x}}(),J8=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S._activeEffects=[],S.canvas=w.canvas?w.canvas:document.createElement("canvas"),S.ctx=S.canvas.getContext("2d"),w.canvas||(S.canvas.width=Math.floor(w.width*w.scale),S.canvas.height=Math.floor(w.height*w.scale),S.canvas.style.width=w.width+"px",S.canvas.style.height=w.height+"px"),S.fontMetrics=new jC(document),S.ctx.scale(S.options.scale,S.options.scale),S.ctx.translate(-w.x,-w.y),S.ctx.textBaseline="bottom",S._activeEffects=[],S.context.logger.debug("Canvas renderer initialized ("+w.width+"x"+w.height+") with scale "+w.scale),S}return p(g,v),g.prototype.applyEffects=function(x){for(var w=this;this._activeEffects.length;)this.popEffect();x.forEach(function(S){return w.applyEffect(S)})},g.prototype.applyEffect=function(x){this.ctx.save(),function(v){return 2===v.type}(x)&&(this.ctx.globalAlpha=x.opacity),function(v){return 0===v.type}(x)&&(this.ctx.translate(x.offsetX,x.offsetY),this.ctx.transform(x.matrix[0],x.matrix[1],x.matrix[2],x.matrix[3],x.matrix[4],x.matrix[5]),this.ctx.translate(-x.offsetX,-x.offsetY)),zl(x)&&(this.path(x.path),this.ctx.clip()),this._activeEffects.push(x)},g.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},g.prototype.renderStack=function(x){return k(this,void 0,void 0,function(){return m(this,function(S){switch(S.label){case 0:return x.element.container.styles.isVisible()?[4,this.renderStackContent(x)]:[3,2];case 1:S.sent(),S.label=2;case 2:return[2]}})})},g.prototype.renderNode=function(x){return k(this,void 0,void 0,function(){return m(this,function(w){switch(w.label){case 0:return ho(x.container.flags,16),x.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(x)]:[3,3];case 1:return w.sent(),[4,this.renderNodeContent(x)];case 2:w.sent(),w.label=3;case 3:return[2]}})})},g.prototype.renderTextWithLetterSpacing=function(x,w,S){var O=this;0===w?this.ctx.fillText(x.text,x.bounds.left,x.bounds.top+S):Dp(x.text).reduce(function(pe,me){return O.ctx.fillText(me,pe,x.bounds.top+S),pe+O.ctx.measureText(me).width},x.bounds.left)},g.prototype.createFontStyle=function(x){var w=x.fontVariant.filter(function(J){return"normal"===J||"small-caps"===J}).join(""),S=Nn(x.fontFamily).join(", "),O=mp(x.fontSize)?""+x.fontSize.number+x.fontSize.unit:x.fontSize.number+"px";return[[x.fontStyle,w,x.fontWeight,O,S].join(" "),S,O]},g.prototype.renderTextNode=function(x,w){return k(this,void 0,void 0,function(){var S,J,pe,me,Ue,We,lt,Et=this;return m(this,function(bn){return S=this.createFontStyle(w),J=S[1],pe=S[2],this.ctx.font=S[0],this.ctx.direction=1===w.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",me=this.fontMetrics.getMetrics(J,pe),Ue=me.baseline,We=me.middle,lt=w.paintOrder,x.textBounds.forEach(function(en){lt.forEach(function(dn){switch(dn){case 0:Et.ctx.fillStyle=qo(w.color),Et.renderTextWithLetterSpacing(en,w.letterSpacing,Ue);var Wn=w.textShadow;Wn.length&&en.text.trim().length&&(Wn.slice(0).reverse().forEach(function(Sn){Et.ctx.shadowColor=qo(Sn.color),Et.ctx.shadowOffsetX=Sn.offsetX.number*Et.options.scale,Et.ctx.shadowOffsetY=Sn.offsetY.number*Et.options.scale,Et.ctx.shadowBlur=Sn.blur.number,Et.renderTextWithLetterSpacing(en,w.letterSpacing,Ue)}),Et.ctx.shadowColor="",Et.ctx.shadowOffsetX=0,Et.ctx.shadowOffsetY=0,Et.ctx.shadowBlur=0),w.textDecorationLine.length&&(Et.ctx.fillStyle=qo(w.textDecorationColor||w.color),w.textDecorationLine.forEach(function(Sn){switch(Sn){case 1:Et.ctx.fillRect(en.bounds.left,Math.round(en.bounds.top+Ue),en.bounds.width,1);break;case 2:Et.ctx.fillRect(en.bounds.left,Math.round(en.bounds.top),en.bounds.width,1);break;case 3:Et.ctx.fillRect(en.bounds.left,Math.ceil(en.bounds.top+We),en.bounds.width,1)}}));break;case 1:w.webkitTextStrokeWidth&&en.text.trim().length&&(Et.ctx.strokeStyle=qo(w.webkitTextStrokeColor),Et.ctx.lineWidth=w.webkitTextStrokeWidth,Et.ctx.lineJoin=window.chrome?"miter":"round",Et.ctx.strokeText(en.text,en.bounds.left,en.bounds.top+Ue)),Et.ctx.strokeStyle="",Et.ctx.lineWidth=0,Et.ctx.lineJoin="miter"}})}),[2]})})},g.prototype.renderReplacedElement=function(x,w,S){if(S&&x.intrinsicWidth>0&&x.intrinsicHeight>0){var O=Lp(x),J=a0(w);this.path(J),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(S,0,0,x.intrinsicWidth,x.intrinsicHeight,O.left,O.top,O.width,O.height),this.ctx.restore()}},g.prototype.renderNodeContent=function(x){return k(this,void 0,void 0,function(){var w,S,O,J,pe,We,lt,Et,en,dn,Wn,Sn,Tn,mr,Oi,ai;return m(this,function(vn){switch(vn.label){case 0:this.applyEffects(x.getEffects(4)),S=x.curves,O=(w=x.container).styles,J=0,pe=w.textNodes,vn.label=1;case 1:return J0&&td>0&&(Wd=O.ctx.createRadialGradient(_a+ia,La+Bs,0,_a+ia,La+Bs,Gl),Ct(We.stops,2*Gl).forEach(function(d0){return Wd.addColorStop(d0.stop,qo(d0.color))}),O.path(Wo),O.ctx.fillStyle=Wd,Gl!==td?(ah=x.bounds.left+.5*x.bounds.width,nd=x.bounds.top+.5*x.bounds.height,id=1/(lh=td/Gl),O.ctx.save(),O.ctx.translate(ah,nd),O.ctx.transform(1,0,0,lh,0,0),O.ctx.translate(-ah,-nd),O.ctx.fillRect(_a,id*(La-nd)+nd,Rr,gs*id),O.ctx.restore()):O.ctx.fill())):(en=c0(x,w,[null,null,null]),Wo=en[0],ia=en[1],Bs=en[2],dn=dv(We.angle,Rr=en[3],gs=en[4]),Wn=dn[0],Sn=dn[1],Tn=dn[2],mr=dn[3],Oi=dn[4],(ai=document.createElement("canvas")).width=Rr,ai.height=gs,vn=ai.getContext("2d"),ar=vn.createLinearGradient(Sn,mr,Tn,Oi),Ct(We.stops,Wn).forEach(function(d0){return ar.addColorStop(d0.stop,qo(d0.color))}),vn.fillStyle=ar,vn.fillRect(0,0,Rr,gs),Rr>0&&gs>0&&(hr=O.ctx.createPattern(ai,"repeat"),O.renderRepeat(Wo,hr,ia,Bs))),ch.label=6;case 6:return w--,[2]}})},O=this,J=0,pe=x.styles.backgroundImage.slice(0).reverse(),Ue.label=1;case 1:return J0?2!==We.style?[3,5]:[4,this.renderDashedDottedBorder(We.color,We.width,pe,x.curves,2)]:[3,11]:[3,13];case 4:return Et.sent(),[3,11];case 5:return 3!==We.style?[3,7]:[4,this.renderDashedDottedBorder(We.color,We.width,pe,x.curves,3)];case 6:return Et.sent(),[3,11];case 7:return 4!==We.style?[3,9]:[4,this.renderDoubleBorder(We.color,We.width,pe,x.curves)];case 8:return Et.sent(),[3,11];case 9:return[4,this.renderSolidBorder(We.color,pe,x.curves)];case 10:Et.sent(),Et.label=11;case 11:pe++,Et.label=12;case 12:return me++,[3,3];case 13:return[2]}})})},g.prototype.renderDashedDottedBorder=function(x,w,S,O,J){return k(this,void 0,void 0,function(){var pe,me,Ue,We,lt,Et,bn,en,dn,Wn,Sn,Tn,mr,Oi,ai,vn;return m(this,function(ar){return this.ctx.save(),pe=function(v,g){switch(g){case 0:return l0(v.topLeftBorderStroke,v.topRightBorderStroke);case 1:return l0(v.topRightBorderStroke,v.bottomRightBorderStroke);case 2:return l0(v.bottomRightBorderStroke,v.bottomLeftBorderStroke);default:return l0(v.bottomLeftBorderStroke,v.topLeftBorderStroke)}}(O,S),me=Xv(O,S),2===J&&(this.path(me),this.ctx.clip()),al(me[0])?(Ue=me[0].start.x,We=me[0].start.y):(Ue=me[0].x,We=me[0].y),al(me[1])?(lt=me[1].end.x,Et=me[1].end.y):(lt=me[1].x,Et=me[1].y),bn=0===S||2===S?Math.abs(Ue-lt):Math.abs(We-Et),this.ctx.beginPath(),this.formatPath(3===J?pe:me.slice(0,2)),en=w<3?3*w:2*w,dn=w<3?2*w:w,3===J&&(en=w,dn=w),Wn=!0,bn<=2*en?Wn=!1:bn<=2*en+dn?(en*=Sn=bn/(2*en+dn),dn*=Sn):(Tn=Math.floor((bn+dn)/(en+dn)),mr=(bn-Tn*en)/(Tn-1),dn=(Oi=(bn-(Tn+1)*en)/Tn)<=0||Math.abs(dn-mr){function Se(Re){return Array.isArray(Re)?Re:[Re]}const m=/^\s+$/,q=/(?:[^\\]|^)\\$/,F=/^\\!/,I=/^\\#/,G=/\r?\n/g,T=/^\.*\/|^\.+$/;let V="node-ignore";typeof Symbol<"u"&&(V=Symbol.for("node-ignore"));const X=V,K=/([0-z])-([0-z])/g,oe=()=>!1,He=[[/^\uFEFF/,()=>""],[/\\?\s+$/,Re=>0===Re.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\$.|*+(){^]/g,Re=>`\\${Re}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(Re,mt,St)=>mt+6mt+St.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(Re,mt,St,Lt,qt)=>"\\"===mt?`\\[${St}${(Re=>{const{length:mt}=Re;return Re.slice(0,mt-mt%2)})(Lt)}${qt}`:"]"===qt&&Lt.length%2==0?`[${(Re=>Re.replace(K,(mt,St,Lt)=>St.charCodeAt(0)<=Lt.charCodeAt(0)?mt:""))(St)}${Lt}]`:"[]"],[/(?:[^*])$/,Re=>/\/$/.test(Re)?`${Re}$`:`${Re}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(Re,mt)=>(mt?`${mt}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],Te=Object.create(null),Je=Re=>"string"==typeof Re;class et{constructor(mt,St,Lt,qt){this.origin=mt,this.pattern=St,this.negative=Lt,this.regex=qt}}const st=(Re,mt)=>{throw new mt(Re)},Ge=(Re,mt,St)=>Je(Re)?Re?!Ge.isNotRelative(Re)||St(`path should be a \`path.relative()\`d string, but got "${mt}"`,RangeError):St("path must not be empty",TypeError):St(`path must be a string, but got \`${mt}\``,TypeError),Fe=Re=>T.test(Re);Ge.isNotRelative=Fe,Ge.convert=Re=>Re;class ge{constructor({ignorecase:mt=!0,ignoreCase:St=mt,allowRelativePaths:Lt=!1}={}){((Re,mt,St)=>{Object.defineProperty(this,mt,{value:!0})})(0,X),this._rules=[],this._ignoreCase=St,this._allowRelativePaths=Lt,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(mt){if(mt&&mt[X])return this._rules=this._rules.concat(mt._rules),void(this._added=!0);if((Re=mt)&&Je(Re)&&!m.test(Re)&&!q.test(Re)&&0!==Re.indexOf("#")){const St=((Re,mt)=>{const St=Re;let Lt=!1;0===Re.indexOf("!")&&(Lt=!0,Re=Re.substr(1));const qt=((Re,mt)=>{let St=Te[Re];return St||(St=He.reduce((Lt,qt)=>Lt.replace(qt[0],qt[1].bind(Re)),Re),Te[Re]=St),mt?new RegExp(St,"i"):new RegExp(St)})(Re=Re.replace(F,"!").replace(I,"#"),mt);return new et(St,Re,Lt,qt)})(mt,this._ignoreCase);this._added=!0,this._rules.push(St)}var Re}add(mt){return this._added=!1,Se(Je(mt)?(Re=mt,Re.split(G)):mt).forEach(this._addPattern,this),this._added&&this._initCache(),this;var Re}addPattern(mt){return this.add(mt)}_testOne(mt,St){let Lt=!1,qt=!1;return this._rules.forEach(wn=>{const{negative:On}=wn;qt===On&&Lt!==qt||On&&!Lt&&!qt&&!St||wn.regex.test(mt)&&(Lt=!On,qt=On)}),{ignored:Lt,unignored:qt}}_test(mt,St,Lt,qt){const wn=mt&&Ge.convert(mt);return Ge(wn,mt,this._allowRelativePaths?oe:st),this._t(wn,St,Lt,qt)}_t(mt,St,Lt,qt){if(mt in St)return St[mt];if(qt||(qt=mt.split("/")),qt.pop(),!qt.length)return St[mt]=this._testOne(mt,Lt);const wn=this._t(qt.join("/")+"/",St,Lt,qt);return St[mt]=wn.ignored?wn:this._testOne(mt,Lt)}ignores(mt){return this._test(mt,this._ignoreCache,!1).ignored}createFilter(){return mt=>!this.ignores(mt)}filter(mt){return Se(mt).filter(this.createFilter())}test(mt){return this._test(mt,this._testCache,!0)}}const Oe=Re=>new ge(Re);if(Oe.isPathValid=Re=>Ge(Re&&Ge.convert(Re),Re,oe),Oe.default=Oe,ut.exports=Oe,typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){Ge.convert=St=>/^\\\\\?\\/.test(St)||/["<>|\u0000-\u001F]+/u.test(St)?St:St.replace(/\\/g,"/");const mt=/^[a-z]:\//i;Ge.isNotRelative=St=>mt.test(St)||Fe(St)}},8749:ut=>{function Se(z){return!!z.constructor&&"function"==typeof z.constructor.isBuffer&&z.constructor.isBuffer(z)}ut.exports=function(z){return null!=z&&(Se(z)||function p(z){return"function"==typeof z.readFloatLE&&"function"==typeof z.slice&&Se(z.slice(0,0))}(z)||!!z._isBuffer)}},4331:ut=>{"use strict";var Se=ut.exports=function(k,m,q){"function"==typeof m&&(q=m,m={}),p(m,"function"==typeof(q=m.cb||q)?q:q.pre||function(){},q.post||function(){},k,"",k)};function p(k,m,q,F,I,G,T,W,V,X){if(F&&"object"==typeof F&&!Array.isArray(F)){for(var P in m(F,I,G,T,W,V,X),F){var K=F[P];if(Array.isArray(K)){if(P in Se.arrayKeywords)for(var oe=0;oe{var z,k,m,q,F;z=p(9928),k=p(7468).utf8,m=p(8749),q=p(7468).bin,(F=function(I,G){I.constructor==String?I=G&&"binary"===G.encoding?q.stringToBytes(I):k.stringToBytes(I):m(I)?I=Array.prototype.slice.call(I,0):!Array.isArray(I)&&I.constructor!==Uint8Array&&(I=I.toString());for(var T=z.bytesToWords(I),W=8*I.length,V=1732584193,X=-271733879,P=-1732584194,K=271733878,oe=0;oe>>24)|4278255360&(T[oe]<<24|T[oe]>>>8);T[W>>>5]|=128<>>9<<4)]=W;var ie=F._ff,Me=F._gg,He=F._hh,Te=F._ii;for(oe=0;oe>>0,X=X+Je>>>0,P=P+ke>>>0,K=K+gt>>>0}return z.endian([V,X,P,K])})._ff=function(I,G,T,W,V,X,P){var K=I+(G&T|~G&W)+(V>>>0)+P;return(K<>>32-X)+G},F._gg=function(I,G,T,W,V,X,P){var K=I+(G&W|T&~W)+(V>>>0)+P;return(K<>>32-X)+G},F._hh=function(I,G,T,W,V,X,P){var K=I+(G^T^W)+(V>>>0)+P;return(K<>>32-X)+G},F._ii=function(I,G,T,W,V,X,P){var K=I+(T^(G|~W))+(V>>>0)+P;return(K<>>32-X)+G},F._blocksize=16,F._digestsize=16,ut.exports=function(I,G){if(null==I)throw new Error("Illegal argument "+I);var T=z.wordsToBytes(F(I,G));return G&&G.asBytes?T:G&&G.asString?q.bytesToString(T):z.bytesToHex(T)}},8314:(ut,Se,p)=>{const k=p(2836),m=p(9460),q=p(7030),F=p(6511);function I(G,T,W,V,X){const P=[].slice.call(arguments,1),K=P.length,oe="function"==typeof P[K-1];if(!oe&&!k())throw new Error("Callback required as last argument");if(!oe){if(K<1)throw new Error("Too few arguments provided");return 1===K?(W=T,T=V=void 0):2===K&&!T.getContext&&(V=W,W=T,T=void 0),new Promise(function(ie,Me){try{const He=m.create(W,V);ie(G(He,T,V))}catch(He){Me(He)}})}if(K<2)throw new Error("Too few arguments provided");2===K?(X=W,W=T,T=V=void 0):3===K&&(T.getContext&&typeof X>"u"?(X=V,V=void 0):(X=V,V=W,W=T,T=void 0));try{const ie=m.create(W,V);X(null,G(ie,T,V))}catch(ie){X(ie)}}Se.mo=I.bind(null,q.render),I.bind(null,q.renderToDataURL),I.bind(null,function(G,T,W){return F.render(G,W)})},2836:ut=>{ut.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6214:(ut,Se,p)=>{const z=p(9089).getSymbolSize;Se.getRowColCoords=function(m){if(1===m)return[];const q=Math.floor(m/7)+2,F=z(m),I=145===F?26:2*Math.ceil((F-13)/(2*q-2)),G=[F-7];for(let T=1;T{const z=p(4058),k=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function m(q){this.mode=z.ALPHANUMERIC,this.data=q}m.getBitsLength=function(F){return 11*Math.floor(F/2)+F%2*6},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(F){let I;for(I=0;I+2<=this.data.length;I+=2){let G=45*k.indexOf(this.data[I]);G+=k.indexOf(this.data[I+1]),F.put(G,11)}this.data.length%2&&F.put(k.indexOf(this.data[I]),6)},ut.exports=m},4662:ut=>{function Se(){this.buffer=[],this.length=0}Se.prototype={get:function(p){const z=Math.floor(p/8);return 1==(this.buffer[z]>>>7-p%8&1)},put:function(p,z){for(let k=0;k>>z-k-1&1))},getLengthInBits:function(){return this.length},putBit:function(p){const z=Math.floor(this.length/8);this.buffer.length<=z&&this.buffer.push(0),p&&(this.buffer[z]|=128>>>this.length%8),this.length++}},ut.exports=Se},5941:ut=>{function Se(p){if(!p||p<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=p,this.data=new Uint8Array(p*p),this.reservedBit=new Uint8Array(p*p)}Se.prototype.set=function(p,z,k,m){const q=p*this.size+z;this.data[q]=k,m&&(this.reservedBit[q]=!0)},Se.prototype.get=function(p,z){return this.data[p*this.size+z]},Se.prototype.xor=function(p,z,k){this.data[p*this.size+z]^=k},Se.prototype.isReserved=function(p,z){return this.reservedBit[p*this.size+z]},ut.exports=Se},4969:(ut,Se,p)=>{const z=p(3174),k=p(4058);function m(q){this.mode=k.BYTE,"string"==typeof q&&(q=z(q)),this.data=new Uint8Array(q)}m.getBitsLength=function(F){return 8*F},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(q){for(let F=0,I=this.data.length;F{const z=p(7424),k=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],m=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];Se.getBlocksCount=function(F,I){switch(I){case z.L:return k[4*(F-1)+0];case z.M:return k[4*(F-1)+1];case z.Q:return k[4*(F-1)+2];case z.H:return k[4*(F-1)+3];default:return}},Se.getTotalCodewordsCount=function(F,I){switch(I){case z.L:return m[4*(F-1)+0];case z.M:return m[4*(F-1)+1];case z.Q:return m[4*(F-1)+2];case z.H:return m[4*(F-1)+3];default:return}}},7424:(ut,Se)=>{Se.L={bit:1},Se.M={bit:0},Se.Q={bit:3},Se.H={bit:2},Se.isValid=function(k){return k&&typeof k.bit<"u"&&k.bit>=0&&k.bit<4},Se.from=function(k,m){if(Se.isValid(k))return k;try{return function p(z){if("string"!=typeof z)throw new Error("Param is not a string");switch(z.toLowerCase()){case"l":case"low":return Se.L;case"m":case"medium":return Se.M;case"q":case"quartile":return Se.Q;case"h":case"high":return Se.H;default:throw new Error("Unknown EC Level: "+z)}}(k)}catch{return m}}},6269:(ut,Se,p)=>{const z=p(9089).getSymbolSize;Se.getPositions=function(q){const F=z(q);return[[0,0],[F-7,0],[0,F-7]]}},6254:(ut,Se,p)=>{const z=p(9089),q=z.getBCHDigit(1335);Se.getEncodedBits=function(I,G){const T=I.bit<<3|G;let W=T<<10;for(;z.getBCHDigit(W)-q>=0;)W^=1335<{const p=new Uint8Array(512),z=new Uint8Array(256);(function(){let m=1;for(let q=0;q<255;q++)p[q]=m,z[m]=q,m<<=1,256&m&&(m^=285);for(let q=255;q<512;q++)p[q]=p[q-255]})(),Se.log=function(m){if(m<1)throw new Error("log("+m+")");return z[m]},Se.exp=function(m){return p[m]},Se.mul=function(m,q){return 0===m||0===q?0:p[z[m]+z[q]]}},3264:(ut,Se,p)=>{const z=p(4058),k=p(9089);function m(q){this.mode=z.KANJI,this.data=q}m.getBitsLength=function(F){return 13*F},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(q){let F;for(F=0;F=33088&&I<=40956)I-=33088;else{if(!(I>=57408&&I<=60351))throw new Error("Invalid SJIS character: "+this.data[F]+"\nMake sure your charset is UTF-8");I-=49472}I=192*(I>>>8&255)+(255&I),q.put(I,13)}},ut.exports=m},3361:(ut,Se)=>{Se.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function z(k,m,q){switch(k){case Se.Patterns.PATTERN000:return(m+q)%2==0;case Se.Patterns.PATTERN001:return m%2==0;case Se.Patterns.PATTERN010:return q%3==0;case Se.Patterns.PATTERN011:return(m+q)%3==0;case Se.Patterns.PATTERN100:return(Math.floor(m/2)+Math.floor(q/3))%2==0;case Se.Patterns.PATTERN101:return m*q%2+m*q%3==0;case Se.Patterns.PATTERN110:return(m*q%2+m*q%3)%2==0;case Se.Patterns.PATTERN111:return(m*q%3+(m+q)%2)%2==0;default:throw new Error("bad maskPattern:"+k)}}Se.isValid=function(m){return null!=m&&""!==m&&!isNaN(m)&&m>=0&&m<=7},Se.from=function(m){return Se.isValid(m)?parseInt(m,10):void 0},Se.getPenaltyN1=function(m){const q=m.size;let F=0,I=0,G=0,T=null,W=null;for(let V=0;V=5&&(F+=I-5+3),T=P,I=1),P=m.get(X,V),P===W?G++:(G>=5&&(F+=G-5+3),W=P,G=1)}I>=5&&(F+=I-5+3),G>=5&&(F+=G-5+3)}return F},Se.getPenaltyN2=function(m){const q=m.size;let F=0;for(let I=0;I=10&&(1488===I||93===I)&&F++,G=G<<1&2047|m.get(W,T),W>=10&&(1488===G||93===G)&&F++}return 40*F},Se.getPenaltyN4=function(m){let q=0;const F=m.data.length;for(let G=0;G{const z=p(377),k=p(9359);Se.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},Se.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},Se.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},Se.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},Se.MIXED={bit:-1},Se.getCharCountIndicator=function(F,I){if(!F.ccBits)throw new Error("Invalid mode: "+F);if(!z.isValid(I))throw new Error("Invalid version: "+I);return I>=1&&I<10?F.ccBits[0]:I<27?F.ccBits[1]:F.ccBits[2]},Se.getBestModeForData=function(F){return k.testNumeric(F)?Se.NUMERIC:k.testAlphanumeric(F)?Se.ALPHANUMERIC:k.testKanji(F)?Se.KANJI:Se.BYTE},Se.toString=function(F){if(F&&F.id)return F.id;throw new Error("Invalid mode")},Se.isValid=function(F){return F&&F.bit&&F.ccBits},Se.from=function(F,I){if(Se.isValid(F))return F;try{return function m(q){if("string"!=typeof q)throw new Error("Param is not a string");switch(q.toLowerCase()){case"numeric":return Se.NUMERIC;case"alphanumeric":return Se.ALPHANUMERIC;case"kanji":return Se.KANJI;case"byte":return Se.BYTE;default:throw new Error("Unknown mode: "+q)}}(F)}catch{return I}}},6628:(ut,Se,p)=>{const z=p(4058);function k(m){this.mode=z.NUMERIC,this.data=m.toString()}k.getBitsLength=function(q){return 10*Math.floor(q/3)+(q%3?q%3*3+1:0)},k.prototype.getLength=function(){return this.data.length},k.prototype.getBitsLength=function(){return k.getBitsLength(this.data.length)},k.prototype.write=function(q){let F,I,G;for(F=0;F+3<=this.data.length;F+=3)I=this.data.substr(F,3),G=parseInt(I,10),q.put(G,10);const T=this.data.length-F;T>0&&(I=this.data.substr(F),G=parseInt(I,10),q.put(G,3*T+1))},ut.exports=k},1744:(ut,Se,p)=>{const z=p(6686);Se.mul=function(m,q){const F=new Uint8Array(m.length+q.length-1);for(let I=0;I=0;){const I=F[0];for(let T=0;T{const z=p(9089),k=p(7424),m=p(4662),q=p(5941),F=p(6214),I=p(6269),G=p(3361),T=p(3677),W=p(6289),V=p(1252),X=p(6254),P=p(4058),K=p(2868);function Te(et,Ne,st){const Ge=et.size,Fe=X.getEncodedBits(Ne,st);let ge,Oe;for(ge=0;ge<15;ge++)Oe=1==(Fe>>ge&1),et.set(ge<6?ge:ge<8?ge+1:Ge-15+ge,8,Oe,!0),et.set(8,ge<8?Ge-ge-1:ge<9?15-ge-1+1:15-ge-1,Oe,!0);et.set(Ge-8,8,1,!0)}function gt(et,Ne,st,Ge){let Fe;if(Array.isArray(et))Fe=K.fromArray(et);else{if("string"!=typeof et)throw new Error("Invalid data");{let mt=Ne;if(!mt){const St=K.rawSplit(et);mt=V.getBestVersionForData(St,st)}Fe=K.fromString(et,mt||40)}}const ge=V.getBestVersionForData(Fe,st);if(!ge)throw new Error("The amount of data is too big to be stored in a QR Code");if(Ne){if(Ne=0&&tt<=6&&(0===Re||6===Re)||Re>=0&&Re<=6&&(0===tt||6===tt)||tt>=2&&tt<=4&&Re>=2&&Re<=4,!0)}}(Re,Ne),function ie(et){const Ne=et.size;for(let st=8;st=7&&function He(et,Ne){const st=et.size,Ge=V.getEncodedBits(Ne);let Fe,ge,Oe;for(let tt=0;tt<18;tt++)Fe=Math.floor(tt/3),ge=tt%3+st-8-3,Oe=1==(Ge>>tt&1),et.set(Fe,ge,Oe,!0),et.set(ge,Fe,Oe,!0)}(Re,Ne),function Xe(et,Ne){const st=et.size;let Ge=-1,Fe=st-1,ge=7,Oe=0;for(let tt=st-1;tt>0;tt-=2)for(6===tt&&tt--;;){for(let Re=0;Re<2;Re++)if(!et.isReserved(Fe,tt-Re)){let mt=!1;Oe>>ge&1)),et.set(Fe,tt-Re,mt),ge--,-1===ge&&(Oe++,ge=7)}if(Fe+=Ge,Fe<0||st<=Fe){Fe-=Ge,Ge=-Ge;break}}}(Re,Oe),isNaN(Ge)&&(Ge=G.getBestMask(Re,Te.bind(null,Re,st))),G.applyMask(Ge,Re),Te(Re,st,Ge),{modules:Re,version:Ne,errorCorrectionLevel:st,maskPattern:Ge,segments:Fe}}Se.create=function(Ne,st){if(typeof Ne>"u"||""===Ne)throw new Error("No input text");let Fe,ge,Ge=k.M;return typeof st<"u"&&(Ge=k.from(st.errorCorrectionLevel,k.M),Fe=V.from(st.version),ge=G.from(st.maskPattern),st.toSJISFunc&&z.setToSJISFunction(st.toSJISFunc)),gt(Ne,Fe,Ge,ge)}},6289:(ut,Se,p)=>{const z=p(1744);function k(m){this.genPoly=void 0,this.degree=m,this.degree&&this.initialize(this.degree)}k.prototype.initialize=function(q){this.degree=q,this.genPoly=z.generateECPolynomial(this.degree)},k.prototype.encode=function(q){if(!this.genPoly)throw new Error("Encoder not initialized");const F=new Uint8Array(q.length+this.degree);F.set(q);const I=z.mod(F,this.genPoly),G=this.degree-I.length;if(G>0){const T=new Uint8Array(this.degree);return T.set(I,G),T}return I},ut.exports=k},9359:(ut,Se)=>{const p="[0-9]+";let k="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";k=k.replace(/u/g,"\\u");const m="(?:(?![A-Z0-9 $%*+\\-./:]|"+k+")(?:.|[\r\n]))+";Se.KANJI=new RegExp(k,"g"),Se.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Se.BYTE=new RegExp(m,"g"),Se.NUMERIC=new RegExp(p,"g"),Se.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const q=new RegExp("^"+k+"$"),F=new RegExp("^"+p+"$"),I=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Se.testKanji=function(T){return q.test(T)},Se.testNumeric=function(T){return F.test(T)},Se.testAlphanumeric=function(T){return I.test(T)}},2868:(ut,Se,p)=>{const z=p(4058),k=p(6628),m=p(1018),q=p(4969),F=p(3264),I=p(9359),G=p(9089),T=p(243);function W(He){return unescape(encodeURIComponent(He)).length}function V(He,Te,Xe){const Je=[];let ke;for(;null!==(ke=He.exec(Xe));)Je.push({data:ke[0],index:ke.index,mode:Te,length:ke[0].length});return Je}function X(He){const Te=V(I.NUMERIC,z.NUMERIC,He),Xe=V(I.ALPHANUMERIC,z.ALPHANUMERIC,He);let Je,ke;return G.isKanjiModeEnabled()?(Je=V(I.BYTE,z.BYTE,He),ke=V(I.KANJI,z.KANJI,He)):(Je=V(I.BYTE_KANJI,z.BYTE,He),ke=[]),Te.concat(Xe,Je,ke).sort(function(et,Ne){return et.index-Ne.index}).map(function(et){return{data:et.data,mode:et.mode,length:et.length}})}function P(He,Te){switch(Te){case z.NUMERIC:return k.getBitsLength(He);case z.ALPHANUMERIC:return m.getBitsLength(He);case z.KANJI:return F.getBitsLength(He);case z.BYTE:return q.getBitsLength(He)}}function Me(He,Te){let Xe;const Je=z.getBestModeForData(He);if(Xe=z.from(Te,Je),Xe!==z.BYTE&&Xe.bit=0?Te[Te.length-1]:null;return Je&&Je.mode===Xe.mode?(Te[Te.length-1].data+=Xe.data,Te):(Te.push(Xe),Te)},[])}(Ne))},Se.rawSplit=function(Te){return Se.fromArray(X(Te,G.isKanjiModeEnabled()))}},9089:(ut,Se)=>{let p;const z=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];Se.getSymbolSize=function(m){if(!m)throw new Error('"version" cannot be null or undefined');if(m<1||m>40)throw new Error('"version" should be in range from 1 to 40');return 4*m+17},Se.getSymbolTotalCodewords=function(m){return z[m]},Se.getBCHDigit=function(k){let m=0;for(;0!==k;)m++,k>>>=1;return m},Se.setToSJISFunction=function(m){if("function"!=typeof m)throw new Error('"toSJISFunc" is not a valid function.');p=m},Se.isKanjiModeEnabled=function(){return typeof p<"u"},Se.toSJIS=function(m){return p(m)}},377:(ut,Se)=>{Se.isValid=function(z){return!isNaN(z)&&z>=1&&z<=40}},1252:(ut,Se,p)=>{const z=p(9089),k=p(3677),m=p(7424),q=p(4058),F=p(377),G=z.getBCHDigit(7973);function W(P,K){return q.getCharCountIndicator(P,K)+4}function V(P,K){let oe=0;return P.forEach(function(ie){const Me=W(ie.mode,K);oe+=Me+ie.getBitsLength()}),oe}Se.from=function(K,oe){return F.isValid(K)?parseInt(K,10):oe},Se.getCapacity=function(K,oe,ie){if(!F.isValid(K))throw new Error("Invalid QR Code version");typeof ie>"u"&&(ie=q.BYTE);const Te=8*(z.getSymbolTotalCodewords(K)-k.getTotalCodewordsCount(K,oe));if(ie===q.MIXED)return Te;const Xe=Te-W(ie,K);switch(ie){case q.NUMERIC:return Math.floor(Xe/10*3);case q.ALPHANUMERIC:return Math.floor(Xe/11*2);case q.KANJI:return Math.floor(Xe/13);default:return Math.floor(Xe/8)}},Se.getBestVersionForData=function(K,oe){let ie;const Me=m.from(oe,m.M);if(Array.isArray(K)){if(K.length>1)return function X(P,K){for(let oe=1;oe<=40;oe++)if(V(P,oe)<=Se.getCapacity(oe,K,q.MIXED))return oe}(K,Me);if(0===K.length)return 1;ie=K[0]}else ie=K;return function T(P,K,oe){for(let ie=1;ie<=40;ie++)if(K<=Se.getCapacity(ie,oe,P))return ie}(ie.mode,ie.getLength(),Me)},Se.getEncodedBits=function(K){if(!F.isValid(K)||K<7)throw new Error("Invalid QR Code version");let oe=K<<12;for(;z.getBCHDigit(oe)-G>=0;)oe^=7973<{const z=p(7077);Se.render=function(F,I,G){let T=G,W=I;typeof T>"u"&&(!I||!I.getContext)&&(T=I,I=void 0),I||(W=function m(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),T=z.getOptions(T);const V=z.getImageWidth(F.modules.size,T),X=W.getContext("2d"),P=X.createImageData(V,V);return z.qrToImageData(P.data,F,T),function k(q,F,I){q.clearRect(0,0,F.width,F.height),F.style||(F.style={}),F.height=I,F.width=I,F.style.height=I+"px",F.style.width=I+"px"}(X,W,V),X.putImageData(P,0,0),W},Se.renderToDataURL=function(F,I,G){let T=G;return typeof T>"u"&&(!I||!I.getContext)&&(T=I,I=void 0),T||(T={}),Se.render(F,I,T).toDataURL(T.type||"image/png",(T.rendererOpts||{}).quality)}},6511:(ut,Se,p)=>{const z=p(7077);function k(F,I){const G=F.a/255,T=I+'="'+F.hex+'"';return G<1?T+" "+I+'-opacity="'+G.toFixed(2).slice(1)+'"':T}function m(F,I,G){let T=F+I;return typeof G<"u"&&(T+=" "+G),T}Se.render=function(I,G,T){const W=z.getOptions(G),V=I.modules.size,X=I.modules.data,P=V+2*W.margin,K=W.color.light.a?"':"",oe="0&&K>0&&F[P-1]||(T+=V?m("M",K+G,.5+oe+G):m("m",W,0),W=0,V=!1),K+1',He=''+K+oe+"\n";return"function"==typeof T&&T(null,He),He}},7077:(ut,Se)=>{function p(z){if("number"==typeof z&&(z=z.toString()),"string"!=typeof z)throw new Error("Color should be defined as hex string");let k=z.slice().replace("#","").split("");if(k.length<3||5===k.length||k.length>8)throw new Error("Invalid hex color: "+z);(3===k.length||4===k.length)&&(k=Array.prototype.concat.apply([],k.map(function(q){return[q,q]}))),6===k.length&&k.push("F","F");const m=parseInt(k.join(""),16);return{r:m>>24&255,g:m>>16&255,b:m>>8&255,a:255&m,hex:"#"+k.slice(0,6).join("")}}Se.getOptions=function(k){k||(k={}),k.color||(k.color={});const q=k.width&&k.width>=21?k.width:void 0;return{width:q,scale:q?4:k.scale||4,margin:typeof k.margin>"u"||null===k.margin||k.margin<0?4:k.margin,color:{dark:p(k.color.dark||"#000000ff"),light:p(k.color.light||"#ffffffff")},type:k.type,rendererOpts:k.rendererOpts||{}}},Se.getScale=function(k,m){return m.width&&m.width>=k+2*m.margin?m.width/(k+2*m.margin):m.scale},Se.getImageWidth=function(k,m){const q=Se.getScale(k,m);return Math.floor((k+2*m.margin)*q)},Se.qrToImageData=function(k,m,q){const F=m.modules.size,I=m.modules.data,G=Se.getScale(F,q),T=Math.floor((F+2*q.margin)*G),W=q.margin*G,V=[q.color.light,q.color.dark];for(let X=0;X=W&&P>=W&&X{"use strict";const{hasOwnProperty:p}=Object.prototype,z=oe();z.configure=oe,z.stringify=z,z.default=z,Se.stringify=z,Se.configure=oe,ut.exports=z;const k=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function m(ie){return ie.length<5e3&&!k.test(ie)?`"${ie}"`:JSON.stringify(ie)}function q(ie){if(ie.length>200)return ie.sort();for(let Me=1;MeHe;)ie[Te]=ie[Te-1],Te--;ie[Te]=He}return ie}const F=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function I(ie){return void 0!==F.call(ie)&&0!==ie.length}function G(ie,Me,He){ie.length= 1`)}return void 0===He?1/0:He}function X(ie){return 1===ie?"1 item":`${ie} items`}function oe(ie){const Me=function K(ie){if(p.call(ie,"strict")){const Me=ie.strict;if("boolean"!=typeof Me)throw new TypeError('The "strict" argument must be of type boolean');if(Me)return He=>{let Te="Object can not safely be stringified. Received type "+typeof He;throw"function"!=typeof He&&(Te+=` (${He.toString()})`),new Error(Te)}}}(ie={...ie});Me&&(void 0===ie.bigint&&(ie.bigint=!1),"circularValue"in ie||(ie.circularValue=Error));const He=function T(ie){if(p.call(ie,"circularValue")){const Me=ie.circularValue;if("string"==typeof Me)return`"${Me}"`;if(null==Me)return Me;if(Me===Error||Me===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(ie),Te=W(ie,"bigint"),Xe=W(ie,"deterministic"),Je=V(ie,"maximumDepth"),ke=V(ie,"maximumBreadth");function gt(Fe,ge,Oe,tt,Re,mt){let St=ge[Fe];switch("object"==typeof St&&null!==St&&"function"==typeof St.toJSON&&(St=St.toJSON(Fe)),St=tt.call(ge,Fe,St),typeof St){case"string":return m(St);case"object":{if(null===St)return"null";if(-1!==Oe.indexOf(St))return He;let Lt="",qt=",";const wn=mt;if(Array.isArray(St)){if(0===St.length)return"[]";if(Jeke&&(Lt+=`${qt}"... ${X(St.length-ke-1)} not stringified"`),""!==Re&&(Lt+=`\n${wn}`),Oe.pop(),`[${Lt}]`}let On=Object.keys(St);const _i=On.length;if(0===_i)return"{}";if(Jeke&&(Lt+=`${Pi}"...":${jn}"${X(_i-ke)} not stringified"`,Pi=qt),""!==Re&&Pi.length>1&&(Lt=`\n${mt}${Lt}\n${wn}`),Oe.pop(),`{${Lt}}`}case"number":return isFinite(St)?String(St):Me?Me(St):"null";case"boolean":return!0===St?"true":"false";case"undefined":return;case"bigint":if(Te)return String(St);default:return Me?Me(St):void 0}}function et(Fe,ge,Oe,tt,Re,mt){switch("object"==typeof ge&&null!==ge&&"function"==typeof ge.toJSON&&(ge=ge.toJSON(Fe)),typeof ge){case"string":return m(ge);case"object":{if(null===ge)return"null";if(-1!==Oe.indexOf(ge))return He;const St=mt;let Lt="",qt=",";if(Array.isArray(ge)){if(0===ge.length)return"[]";if(Jeke&&(Lt+=`${qt}"... ${X(ge.length-ke-1)} not stringified"`),""!==Re&&(Lt+=`\n${St}`),Oe.pop(),`[${Lt}]`}Oe.push(ge);let wn="";""!==Re&&(qt=`,\n${mt+=Re}`,wn=" ");let On="";for(const _i of tt){const jn=et(_i,ge[_i],Oe,tt,Re,mt);void 0!==jn&&(Lt+=`${On}${m(_i)}:${wn}${jn}`,On=qt)}return""!==Re&&On.length>1&&(Lt=`\n${mt}${Lt}\n${St}`),Oe.pop(),`{${Lt}}`}case"number":return isFinite(ge)?String(ge):Me?Me(ge):"null";case"boolean":return!0===ge?"true":"false";case"undefined":return;case"bigint":if(Te)return String(ge);default:return Me?Me(ge):void 0}}function Ne(Fe,ge,Oe,tt,Re){switch(typeof ge){case"string":return m(ge);case"object":{if(null===ge)return"null";if("function"==typeof ge.toJSON){if("object"!=typeof(ge=ge.toJSON(Fe)))return Ne(Fe,ge,Oe,tt,Re);if(null===ge)return"null"}if(-1!==Oe.indexOf(ge))return He;const mt=Re;if(Array.isArray(ge)){if(0===ge.length)return"[]";if(Jeke&&(jn+=`${Pi}"... ${X(ge.length-ke-1)} not stringified"`),jn+=`\n${mt}`,Oe.pop(),`[${jn}]`}let St=Object.keys(ge);const Lt=St.length;if(0===Lt)return"{}";if(Jeke&&(wn+=`${On}"...": "${X(Lt-ke)} not stringified"`,On=qt),""!==On&&(wn=`\n${Re}${wn}\n${mt}`),Oe.pop(),`{${wn}}`}case"number":return isFinite(ge)?String(ge):Me?Me(ge):"null";case"boolean":return!0===ge?"true":"false";case"undefined":return;case"bigint":if(Te)return String(ge);default:return Me?Me(ge):void 0}}function st(Fe,ge,Oe){switch(typeof ge){case"string":return m(ge);case"object":{if(null===ge)return"null";if("function"==typeof ge.toJSON){if("object"!=typeof(ge=ge.toJSON(Fe)))return st(Fe,ge,Oe);if(null===ge)return"null"}if(-1!==Oe.indexOf(ge))return He;let tt="";if(Array.isArray(ge)){if(0===ge.length)return"[]";if(Jeke&&(tt+=`,"... ${X(ge.length-ke-1)} not stringified"`),Oe.pop(),`[${tt}]`}let Re=Object.keys(ge);const mt=Re.length;if(0===mt)return"{}";if(Jeke&&(tt+=`${St}"...":"${X(mt-ke)} not stringified"`),Oe.pop(),`{${tt}}`}case"number":return isFinite(ge)?String(ge):Me?Me(ge):"null";case"boolean":return!0===ge?"true":"false";case"undefined":return;case"bigint":if(Te)return String(ge);default:return Me?Me(ge):void 0}}return function Ge(Fe,ge,Oe){if(arguments.length>1){let tt="";if("number"==typeof Oe?tt=" ".repeat(Math.min(Oe,10)):"string"==typeof Oe&&(tt=Oe.slice(0,10)),null!=ge){if("function"==typeof ge)return gt("",{"":Fe},[],ge,tt,"");if(Array.isArray(ge))return et("",Fe,[],function P(ie){const Me=new Set;for(const He of ie)("string"==typeof He||"number"==typeof He)&&Me.add(String(He));return Me}(ge),tt,"")}if(0!==tt.length)return Ne("",Fe,[],tt,"")}return st("",Fe,[])}}},5568:function(ut,Se){!function(p){"use strict";function z(){for(var Be=arguments.length,fe=Array(Be),De=0;De1){fe[0]=fe[0].slice(0,-1);for(var yt=fe.length-1,Qe=1;Qe= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Ge=Math.floor,Fe=String.fromCharCode;function ge(Be){throw new RangeError(Ne[Be])}function tt(Be,fe){var De=Be.split("@"),yt="";return De.length>1&&(yt=De[0]+"@",Be=De[1]),yt+function Oe(Be,fe){for(var De=[],yt=Be.length;yt--;)De[yt]=fe(Be[yt]);return De}((Be=Be.replace(et,".")).split("."),fe).join(".")}function Re(Be){for(var fe=[],De=0,yt=Be.length;De=55296&&Qe<=56319&&De>1,fe+=Ge(fe/De);fe>455;Qe+=K)fe=Ge(fe/35);return Ge(Qe+36*fe/(fe+38))},wn=function(fe){var De=[],yt=fe.length,Qe=0,yn=128,bi=72,ct=fe.lastIndexOf("-");ct<0&&(ct=0);for(var $i=0;$i=128&&ge("not-basic"),De.push(fe.charCodeAt($i));for(var Qr=ct>0?ct+1:0;Qr=yt&&ge("invalid-input");var zr=St(fe.charCodeAt(Qr++));(zr>=K||zr>Ge((P-Qe)/lo))&&ge("overflow"),Qe+=zr*lo;var Fi=ko<=bi?1:ko>=bi+26?26:ko-bi;if(zrGe(P/wr)&&ge("overflow"),lo*=wr}var rr=De.length+1;bi=qt(Qe-Qi,rr,0==Qi),Ge(Qe/rr)>P-yn&&ge("overflow"),yn+=Ge(Qe/rr),Qe%=rr,De.splice(Qe++,0,yn)}return String.fromCodePoint.apply(String,De)},On=function(fe){var De=[],yt=(fe=Re(fe)).length,Qe=128,yn=0,bi=72,ct=!0,$i=!1,Qr=void 0;try{for(var lo,Qi=fe[Symbol.iterator]();!(ct=(lo=Qi.next()).done);ct=!0){var ko=lo.value;ko<128&&De.push(Fe(ko))}}catch(Po){$i=!0,Qr=Po}finally{try{!ct&&Qi.return&&Qi.return()}finally{if($i)throw Qr}}var zr=De.length,Fi=zr;for(zr&&De.push("-");Fi=Qe&&fsGe((P-yn)/Ti)&&ge("overflow"),yn+=(wr-Qe)*Ti,Qe=wr;var Cl=!0,Ml=!1,Ii=void 0;try{for(var co,Hu=fe[Symbol.iterator]();!(Cl=(co=Hu.next()).done);Cl=!0){var Pd=co.value;if(PdP&&ge("overflow"),Pd==Qe){for(var _c=yn,El=K;;El+=K){var ei=El<=bi?1:El>=bi+26?26:El-bi;if(_c>6|192).toString(16).toUpperCase()+"%"+(63&fe|128).toString(16).toUpperCase():"%"+(fe>>12|224).toString(16).toUpperCase()+"%"+(fe>>6&63|128).toString(16).toUpperCase()+"%"+(63&fe|128).toString(16).toUpperCase()}function Ye(Be){for(var fe="",De=0,yt=Be.length;De=194&&Qe<224){if(yt-De>=6){var yn=parseInt(Be.substr(De+4,2),16);fe+=String.fromCharCode((31&Qe)<<6|63&yn)}else fe+=Be.substr(De,6);De+=6}else if(Qe>=224){if(yt-De>=9){var bi=parseInt(Be.substr(De+4,2),16),ct=parseInt(Be.substr(De+7,2),16);fe+=String.fromCharCode((15&Qe)<<12|(63&bi)<<6|63&ct)}else fe+=Be.substr(De,9);De+=9}else fe+=Be.substr(De,3),De+=3}return fe}function Pt(Be,fe){function De(yt){var Qe=Ye(yt);return Qe.match(fe.UNRESERVED)?Qe:yt}return Be.scheme&&(Be.scheme=String(Be.scheme).replace(fe.PCT_ENCODED,De).toLowerCase().replace(fe.NOT_SCHEME,"")),void 0!==Be.userinfo&&(Be.userinfo=String(Be.userinfo).replace(fe.PCT_ENCODED,De).replace(fe.NOT_USERINFO,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.host&&(Be.host=String(Be.host).replace(fe.PCT_ENCODED,De).toLowerCase().replace(fe.NOT_HOST,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.path&&(Be.path=String(Be.path).replace(fe.PCT_ENCODED,De).replace(Be.scheme?fe.NOT_PATH:fe.NOT_PATH_NOSCHEME,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.query&&(Be.query=String(Be.query).replace(fe.PCT_ENCODED,De).replace(fe.NOT_QUERY,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.fragment&&(Be.fragment=String(Be.fragment).replace(fe.PCT_ENCODED,De).replace(fe.NOT_FRAGMENT,li).replace(fe.PCT_ENCODED,q)),Be}function jt(Be){return Be.replace(/^0*(.*)/,"$1")||"0"}function En(Be,fe){var De=Be.match(fe.IPV4ADDRESS)||[],Qe=V(De,2)[1];return Qe?Qe.split(".").map(jt).join("."):Be}function Xt(Be,fe){var De=Be.match(fe.IPV6ADDRESS)||[],yt=V(De,3),Qe=yt[1],yn=yt[2];if(Qe){for(var bi=Qe.toLowerCase().split("::").reverse(),ct=V(bi,2),$i=ct[0],Qr=ct[1],Qi=Qr?Qr.split(":").map(jt):[],lo=$i.split(":").map(jt),ko=fe.IPV4ADDRESS.test(lo[lo.length-1]),zr=ko?7:8,Fi=lo.length-zr,wr=Array(zr),rr=0;rr1){var or=wr.slice(0,Ts.index),fs=wr.slice(Ts.index+Ts.length);Jo=or.join(":")+"::"+fs.join(":")}else Jo=wr.join(":");return yn&&(Jo+="%"+yn),Jo}return Be}var on=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Yt=void 0==="".match(/(){0}/)[1];function Ri(Be){var fe=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},De={},yt=!1!==fe.iri?W:T;"suffix"===fe.reference&&(Be=(fe.scheme?fe.scheme+":":"")+"//"+Be);var Qe=Be.match(on);if(Qe){Yt?(De.scheme=Qe[1],De.userinfo=Qe[3],De.host=Qe[4],De.port=parseInt(Qe[5],10),De.path=Qe[6]||"",De.query=Qe[7],De.fragment=Qe[8],isNaN(De.port)&&(De.port=Qe[5])):(De.scheme=Qe[1]||void 0,De.userinfo=-1!==Be.indexOf("@")?Qe[3]:void 0,De.host=-1!==Be.indexOf("//")?Qe[4]:void 0,De.port=parseInt(Qe[5],10),De.path=Qe[6]||"",De.query=-1!==Be.indexOf("?")?Qe[7]:void 0,De.fragment=-1!==Be.indexOf("#")?Qe[8]:void 0,isNaN(De.port)&&(De.port=Be.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?Qe[4]:void 0)),De.host&&(De.host=Xt(En(De.host,yt),yt)),De.reference=void 0!==De.scheme||void 0!==De.userinfo||void 0!==De.host||void 0!==De.port||De.path||void 0!==De.query?void 0===De.scheme?"relative":void 0===De.fragment?"absolute":"uri":"same-document",fe.reference&&"suffix"!==fe.reference&&fe.reference!==De.reference&&(De.error=De.error||"URI is not a "+fe.reference+" reference.");var yn=Ui[(fe.scheme||De.scheme||"").toLowerCase()];if(fe.unicodeSupport||yn&&yn.unicodeSupport)Pt(De,yt);else{if(De.host&&(fe.domainHost||yn&&yn.domainHost))try{De.host=Pi.toASCII(De.host.replace(yt.PCT_ENCODED,Ye).toLowerCase())}catch(bi){De.error=De.error||"Host's domain name can not be converted to ASCII via punycode: "+bi}Pt(De,T)}yn&&yn.parse&&yn.parse(De,fe)}else De.error=De.error||"URI can not be parsed.";return De}var yr=/^\.\.?\//,Xn=/^\/\.(\/|$)/,ri=/^\/\.\.(\/|$)/,Qo=/^\/?(?:.|\n)*?(?=\/|$)/;function So(Be){for(var fe=[];Be.length;)if(Be.match(yr))Be=Be.replace(yr,"");else if(Be.match(Xn))Be=Be.replace(Xn,"/");else if(Be.match(ri))Be=Be.replace(ri,"/"),fe.pop();else if("."===Be||".."===Be)Be="";else{var De=Be.match(Qo);if(!De)throw new Error("Unexpected dot segment condition");var yt=De[0];Be=Be.slice(yt.length),fe.push(yt)}return fe.join("")}function Zi(Be){var fe=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},De=fe.iri?W:T,yt=[],Qe=Ui[(fe.scheme||Be.scheme||"").toLowerCase()];if(Qe&&Qe.serialize&&Qe.serialize(Be,fe),Be.host&&!De.IPV6ADDRESS.test(Be.host)&&(fe.domainHost||Qe&&Qe.domainHost))try{Be.host=fe.iri?Pi.toUnicode(Be.host):Pi.toASCII(Be.host.replace(De.PCT_ENCODED,Ye).toLowerCase())}catch(ct){Be.error=Be.error||"Host's domain name can not be converted to "+(fe.iri?"Unicode":"ASCII")+" via punycode: "+ct}Pt(Be,De),"suffix"!==fe.reference&&Be.scheme&&(yt.push(Be.scheme),yt.push(":"));var yn=function ir(Be,fe){var De=!1!==fe.iri?W:T,yt=[];return void 0!==Be.userinfo&&(yt.push(Be.userinfo),yt.push("@")),void 0!==Be.host&&yt.push(Xt(En(String(Be.host),De),De).replace(De.IPV6ADDRESS,function(Qe,yn,bi){return"["+yn+(bi?"%25"+bi:"")+"]"})),("number"==typeof Be.port||"string"==typeof Be.port)&&(yt.push(":"),yt.push(String(Be.port))),yt.length?yt.join(""):void 0}(Be,fe);if(void 0!==yn&&("suffix"!==fe.reference&&yt.push("//"),yt.push(yn),Be.path&&"/"!==Be.path.charAt(0)&&yt.push("/")),void 0!==Be.path){var bi=Be.path;!fe.absolutePath&&(!Qe||!Qe.absolutePath)&&(bi=So(bi)),void 0===yn&&(bi=bi.replace(/^\/\//,"/%2F")),yt.push(bi)}return void 0!==Be.query&&(yt.push("?"),yt.push(Be.query)),void 0!==Be.fragment&&(yt.push("#"),yt.push(Be.fragment)),yt.join("")}function Er(Be,fe){var De=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},Qe={};return arguments[3]||(Be=Ri(Zi(Be,De),De),fe=Ri(Zi(fe,De),De)),!(De=De||{}).tolerant&&fe.scheme?(Qe.scheme=fe.scheme,Qe.userinfo=fe.userinfo,Qe.host=fe.host,Qe.port=fe.port,Qe.path=So(fe.path||""),Qe.query=fe.query):(void 0!==fe.userinfo||void 0!==fe.host||void 0!==fe.port?(Qe.userinfo=fe.userinfo,Qe.host=fe.host,Qe.port=fe.port,Qe.path=So(fe.path||""),Qe.query=fe.query):(fe.path?("/"===fe.path.charAt(0)?Qe.path=So(fe.path):(Qe.path=void 0===Be.userinfo&&void 0===Be.host&&void 0===Be.port||Be.path?Be.path?Be.path.slice(0,Be.path.lastIndexOf("/")+1)+fe.path:fe.path:"/"+fe.path,Qe.path=So(Qe.path)),Qe.query=fe.query):(Qe.path=Be.path,Qe.query=void 0!==fe.query?fe.query:Be.query),Qe.userinfo=Be.userinfo,Qe.host=Be.host,Qe.port=Be.port),Qe.scheme=Be.scheme),Qe.fragment=fe.fragment,Qe}function Js(Be,fe){return Be&&Be.toString().replace(fe&&fe.iri?W.PCT_ENCODED:T.PCT_ENCODED,Ye)}var wl={scheme:"http",domainHost:!0,parse:function(fe,De){return fe.host||(fe.error=fe.error||"HTTP URIs must have a host."),fe},serialize:function(fe,De){var yt="https"===String(fe.scheme).toLowerCase();return(fe.port===(yt?443:80)||""===fe.port)&&(fe.port=void 0),fe.path||(fe.path="/"),fe}},ea={scheme:"https",domainHost:wl.domainHost,parse:wl.parse,serialize:wl.serialize};function Zo(Be){return"boolean"==typeof Be.secure?Be.secure:"wss"===String(Be.scheme).toLowerCase()}var xl={scheme:"ws",domainHost:!0,parse:function(fe,De){var yt=fe;return yt.secure=Zo(yt),yt.resourceName=(yt.path||"/")+(yt.query?"?"+yt.query:""),yt.path=void 0,yt.query=void 0,yt},serialize:function(fe,De){if((fe.port===(Zo(fe)?443:80)||""===fe.port)&&(fe.port=void 0),"boolean"==typeof fe.secure&&(fe.scheme=fe.secure?"wss":"ws",fe.secure=void 0),fe.resourceName){var yt=fe.resourceName.split("?"),Qe=V(yt,2),yn=Qe[0],bi=Qe[1];fe.path=yn&&"/"!==yn?yn:void 0,fe.query=bi,fe.resourceName=void 0}return fe.fragment=void 0,fe}},Ac={scheme:"wss",domainHost:xl.domainHost,parse:xl.parse,serialize:xl.serialize},Bd={},gc="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Ss="[0-9A-Fa-f]",Gc=k(k("%[EFef]"+Ss+"%"+Ss+Ss+"%"+Ss+Ss)+"|"+k("%[89A-Fa-f]"+Ss+"%"+Ss+Ss)+"|"+k("%"+Ss+Ss)),sp=z("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),ma=new RegExp(gc,"g"),Wc=new RegExp(Gc,"g"),Uu=new RegExp(z("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',sp),"g"),Ji=new RegExp(z("[^]",gc,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),Af=Ji;function gf(Be){var fe=Ye(Be);return fe.match(ma)?fe:Be}var Ag={scheme:"mailto",parse:function(fe,De){var yt=fe,Qe=yt.to=yt.path?yt.path.split(","):[];if(yt.path=void 0,yt.query){for(var yn=!1,bi={},ct=yt.query.split("&"),$i=0,Qr=ct.length;$i{ut.exports="varying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\nvarying vec3 vWorldNormal;\n\nbool normalPointingUp(const in vec3 normal)\n{\n return normal.y > 0.9;\n}\n\nvoid main() {\n const float minDelta = 0.001;\n bool isTop = normalPointingUp(vWorldNormal);\n \n if (abs(vDelta) > minDelta && (vUV.y > 1.0 - abs(vDelta) || isTop))\n {\n gl_FragColor = vOutgoingDiffuseDeltaColor;\n } else {\n gl_FragColor = vOutgoingDiffuseColor;\n }\n}\n"},1812:ut=>{ut.exports="#define saturate(a) clamp( a, 0.0, 1.0)\n#define RECIPROCAL_PI 0.31830988618\n#define PI 3.14159265359\n\nattribute vec3 color;\nattribute vec3 deltaColor;\nattribute highp float delta;\nattribute lowp float isHeight;\n\nvarying vec3 vWorldNormal;\nvarying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\n\nuniform vec3 ambientLightColor;\n\nstruct DirectionalLight {\n vec3 direction;\n vec3 color;\n};\nuniform DirectionalLight directionalLights[NUM_DIR_LIGHTS];\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n\nvoid getDirectionalDirectLightIrradiance(const in DirectionalLight directionalLight,out IncidentLight directLight) {\n directLight.color = directionalLight.color;\n directLight.direction = directionalLight.direction;\n}\n\nvec3 BRDF_Diffuse_Lambert (const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nvec3 getAmbientLightIrradiance() {\n return ambientLightColor*PI;\n}\n\nvec3 getBaseOutgoingLight(const vec3 lightFront) {\n ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n reflectedLight.indirectDiffuse = getAmbientLightIrradiance();\n reflectedLight.directDiffuse = lightFront;\n return (reflectedLight.directDiffuse + reflectedLight.indirectDiffuse);\n}\n\n// better to calc the colors in vertex as no color interpolation is used, performance improvements will be noticeable \n// once frustum or occlusion culling is properly used\n\nvoid main() \n{\n vec3 adjustedHeightPos = position;\n \n // height position will be adjusted based on camera position in order to prevent \n // z-fighting in different zoom levels when position is positive.\n // preferred multiplication over if branching of the isHeight variable \n // the same line could be written this way : \n //\n // adjustedHeightPos = position\n // if (isHeight>0.5 && cameraPosition.y>0) {\n // adjustedHeightPos.y = position.y + cameraPosition.y/1000.\n // } \n // \n \n adjustedHeightPos.y = position.y + (isHeight*max(0.,cameraPosition.y/1000.));\n\n\tvec4 modelViewPosition = modelViewMatrix * vec4(adjustedHeightPos, 1.0);\n\tgl_Position = projectionMatrix * modelViewPosition;\n\n vec3 worldNormal = vWorldNormal = normalize((modelMatrix * vec4(normal, 0.0)).xyz);\n vec3 normal= normalize(normalMatrix * normal);\n vec3 lightFront = vec3(0.0);\n\n vUV = uv;\n vDelta = abs(delta);\n\n for (int i=0; i < 2; ++i)\n {\n IncidentLight directLight;\n\n getDirectionalDirectLightIrradiance(directionalLights[i],directLight);\n float dotNL = dot(normal, directLight.direction);\n vec3 directLightColor_Diffuse = PI * directLight.color; \n lightFront += saturate(dotNL) * directLightColor_Diffuse;\n }\n\n vec3 baseOutgoingLight = getBaseOutgoingLight(lightFront);\n \n vOutgoingDiffuseColor = vec4(BRDF_Diffuse_Lambert(color.rgb)*baseOutgoingLight,1.0);\n vOutgoingDiffuseDeltaColor = vec4(BRDF_Diffuse_Lambert(deltaColor)*baseOutgoingLight,1.0);\n}\n"},6655:ut=>{ut.exports='precision highp float;\n\t\t\nuniform sampler2D tDiffuse;\nuniform vec2 resolution;\n\t\t\nvarying vec2 vUv;\n\t\t\n// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n//----------------------------------------------------------------------------------\n// File: es3-kepler\\FXAA\\assets\\shaders/FXAA_DefaultES.frag\n// SDK Version: v3.00\n// Email: gameworks@nvidia.com\n// Site: http://developer.nvidia.com/\n//\n// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of NVIDIA CORPORATION nor the names of its\n// contributors may be used to endorse or promote products derived\n// from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS\\\\ AND ANY\n// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n//----------------------------------------------------------------------------------\n\t\t\n#define FXAA_PC 1\n#define FXAA_GLSL_100 1\n#define FXAA_QUALITY_PRESET 15\n#define FXAA_GATHER4_ALPHA 0\n#define FXAA_GREEN_AS_LUMA 1\n#define FXAA_EARLY_EXIT 1\n\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_120\n #define FXAA_GLSL_120 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_130\n #define FXAA_GLSL_130 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_3\n #define FXAA_HLSL_3 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_4\n #define FXAA_HLSL_4 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_5\n #define FXAA_HLSL_5 0\n#endif\n/*==========================================================================*/\n#ifndef FXAA_GREEN_AS_LUMA\n //\n // For those using non-linear color,\n // and either not able to get luma in alpha, or not wanting to,\n // this enables FXAA to run using green as a proxy for luma.\n // So with this enabled, no need to pack luma in alpha.\n //\n // This will turn off AA on anything which lacks some amount of green.\n // Pure red and blue or combination of only R and B, will get no AA.\n //\n // Might want to lower the settings for both,\n // fxaaConsoleEdgeThresholdMin\n // fxaaQualityEdgeThresholdMin\n // In order to insure AA does not get turned off on colors\n // which contain a minor amount of green.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_GREEN_AS_LUMA 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_EARLY_EXIT\n //\n // Controls algorithm\\s early exit path.\n // On PS3 turning this ON adds 2 cycles to the shader.\n // On 360 turning this OFF adds 10ths of a millisecond to the shader.\n // Turning this off on console will result in a more blurry image.\n // So this defaults to on.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_EARLY_EXIT 1\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_DISCARD\n //\n // Only valid for PC OpenGL currently.\n // Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n //\n // 1 = Use discard on pixels which don\\t need AA.\n // For APIs which enable concurrent TEX+ROP from same surface.\n // 0 = Return unchanged color on pixels which don\\t need AA.\n //\n #define FXAA_DISCARD 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_FAST_PIXEL_OFFSET\n //\n // Used for GLSL 120 only.\n //\n // 1 = GL API supports fast pixel offsets\n // 0 = do not use fast pixel offsets\n //\n #ifdef GL_EXT_gpu_shader4\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifndef FXAA_FAST_PIXEL_OFFSET\n #define FXAA_FAST_PIXEL_OFFSET 0\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GATHER4_ALPHA\n //\n // 1 = API supports gather4 on alpha channel.\n // 0 = API does not support gather4 on alpha channel.\n //\n #if (FXAA_HLSL_5 == 1)\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifndef FXAA_GATHER4_ALPHA\n #define FXAA_GATHER4_ALPHA 0\n #endif\n#endif\n\n\n/*============================================================================\n FXAA QUALITY - TUNING KNOBS\n------------------------------------------------------------------------------\nNOTE the other tuning knobs are now in the shader function inputs!\n============================================================================*/\n#ifndef FXAA_QUALITY_PRESET\n //\n // Choose the quality preset.\n // This needs to be compiled into the shader as it effects code.\n // Best option to include multiple presets is to\n // in each shader define the preset, then include this file.\n //\n // OPTIONS\n // -----------------------------------------------------------------------\n // 10 to 15 - default medium dither (10=fastest, 15=highest quality)\n // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)\n // 39 - no dither, very expensive\n //\n // NOTES\n // -----------------------------------------------------------------------\n // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)\n // 13 = about same speed as FXAA 3.9 and better than 12\n // 23 = closest to FXAA 3.9 visually and performance wise\n // _ = the lowest digit is directly related to performance\n // _ = the highest digit is directly related to style\n //\n #define FXAA_QUALITY_PRESET 12\n#endif\n\n\n/*============================================================================\n\n FXAA QUALITY - PRESETS\n\n============================================================================*/\n\n/*============================================================================\n FXAA QUALITY - MEDIUM DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 10)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 3.0\n #define FXAA_QUALITY_P2 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 11)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 3.0\n #define FXAA_QUALITY_P3 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 12)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 4.0\n #define FXAA_QUALITY_P4 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 13)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 4.0\n #define FXAA_QUALITY_P5 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 14)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 4.0\n #define FXAA_QUALITY_P6 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 15)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 12.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - LOW DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 20)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 2.0\n #define FXAA_QUALITY_P2 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 21)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 22)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 23)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 24)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 3.0\n #define FXAA_QUALITY_P6 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 25)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 26)\n #define FXAA_QUALITY_PS 9\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 4.0\n #define FXAA_QUALITY_P8 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 27)\n #define FXAA_QUALITY_PS 10\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 4.0\n #define FXAA_QUALITY_P9 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 28)\n #define FXAA_QUALITY_PS 11\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 4.0\n #define FXAA_QUALITY_P10 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 29)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - EXTREME QUALITY\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 39)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.0\n #define FXAA_QUALITY_P2 1.0\n #define FXAA_QUALITY_P3 1.0\n #define FXAA_QUALITY_P4 1.0\n #define FXAA_QUALITY_P5 1.5\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n\n\n/*============================================================================\n\n API PORTING\n\n============================================================================*/\n#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)\n #define FxaaBool bool\n #define FxaaDiscard discard\n #define FxaaFloat float\n #define FxaaFloat2 vec2\n #define FxaaFloat3 vec3\n #define FxaaFloat4 vec4\n #define FxaaHalf float\n #define FxaaHalf2 vec2\n #define FxaaHalf3 vec3\n #define FxaaHalf4 vec4\n #define FxaaInt2 ivec2\n #define FxaaSat(x) clamp(x, 0.0, 1.0)\n #define FxaaTex sampler2D\n#else\n #define FxaaBool bool\n #define FxaaDiscard clip(-1)\n #define FxaaFloat float\n #define FxaaFloat2 float2\n #define FxaaFloat3 float3\n #define FxaaFloat4 float4\n #define FxaaHalf half\n #define FxaaHalf2 half2\n #define FxaaHalf3 half3\n #define FxaaHalf4 half4\n #define FxaaSat(x) saturate(x)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_100 == 1)\n #define FxaaTexTop(t, p) texture2D(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_120 == 1)\n // Requires,\n // #version 120\n // And at least,\n // #extension GL_EXT_gpu_shader4 : enable\n // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)\n #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)\n #if (FXAA_FAST_PIXEL_OFFSET == 1)\n #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)\n #else\n #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)\n #endif\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_130 == 1)\n // Requires "#version 130" or better\n #define FxaaTexTop(t, p) textureLod(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_3 == 1)\n #define FxaaInt2 float2\n #define FxaaTex sampler2D\n #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))\n #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_4 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_5 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)\n #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)\n #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)\n #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)\n#endif\n\n\n/*============================================================================\n GREEN AS LUMA OPTION SUPPORT FUNCTION\n============================================================================*/\n#if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }\n#else\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }\n#endif\n\n/*============================================================================\n\n FXAA3 QUALITY - PC\n\n============================================================================*/\n#if (FXAA_PC == 1)\n/*--------------------------------------------------------------------------*/\nFxaaFloat4 FxaaPixelShader(\n //\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy} = center of pixel\n FxaaFloat2 pos,\n //\n // Used only for FXAA Console, and not used on the 360 version.\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy_} = upper left of pixel\n // {_zw} = lower right of pixel\n FxaaFloat4 fxaaConsolePosPos,\n //\n // Input color texture.\n // {rgb_} = color in linear or perceptual color space\n // if (FXAA_GREEN_AS_LUMA == 0)\n // {__a} = luma in perceptual color space (not linear)\n FxaaTex tex,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 2nd sampler.\n // This sampler needs to have an exponent bias of -1.\n FxaaTex fxaaConsole360TexExpBiasNegOne,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 3nd sampler.\n // This sampler needs to have an exponent bias of -2.\n FxaaTex fxaaConsole360TexExpBiasNegTwo,\n //\n // Only used on FXAA Quality.\n // This must be from a constant/uniform.\n // {x_} = 1.0/screenWidthInPixels\n // {_y} = 1.0/screenHeightInPixels\n FxaaFloat2 fxaaQualityRcpFrame,\n //\n // Only used on FXAA Console.\n // This must be from a constant/uniform.\n // This effects sub-pixel AA quality and inversely sharpness.\n // Where N ranges between,\n // N = 0.50 (default)\n // N = 0.33 (sharper)\n // {x__} = -N/screenWidthInPixels\n // {_y_} = -N/screenHeightInPixels\n // {_z_} = N/screenWidthInPixels\n // {__w} = N/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt,\n //\n // Only used on FXAA Console.\n // Not used on 360, but used on PS3 and PC.\n // This must be from a constant/uniform.\n // {x__} = -2.0/screenWidthInPixels\n // {_y_} = -2.0/screenHeightInPixels\n // {_z_} = 2.0/screenWidthInPixels\n // {__w} = 2.0/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt2,\n //\n // Only used on FXAA Console.\n // Only used on 360 in place of fxaaConsoleRcpFrameOpt2.\n // This must be from a constant/uniform.\n // {x__} = 8.0/screenWidthInPixels\n // {_y_} = 8.0/screenHeightInPixels\n // {_z_} = -4.0/screenWidthInPixels\n // {__w} = -4.0/screenHeightInPixels\n FxaaFloat4 fxaaConsole360RcpFrameOpt2,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_SUBPIX define.\n // It is here now to allow easier tuning.\n // Choose the amount of sub-pixel aliasing removal.\n // This can effect sharpness.\n // 1.00 - upper limit (softer)\n // 0.75 - default amount of filtering\n // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)\n // 0.25 - almost off\n // 0.00 - completely off\n FxaaFloat fxaaQualitySubpix,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // The minimum amount of local contrast required to apply algorithm.\n // 0.333 - too little (faster)\n // 0.250 - low quality\n // 0.166 - default\n // 0.125 - high quality\n // 0.063 - overkill (slower)\n FxaaFloat fxaaQualityEdgeThreshold,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // 0.0833 - upper limit (default, the start of visible unfiltered edges)\n // 0.0625 - high quality (faster)\n // 0.0312 - visible limit (slower)\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaQualityEdgeThresholdMin,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3.\n // Due to the PS3 being ALU bound,\n // there are only three safe values here: 2 and 4 and 8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // For all other platforms can be a non-power of two.\n // 8.0 is sharper (default!!!)\n // 4.0 is softer\n // 2.0 is really soft (good only for vector graphics inputs)\n FxaaFloat fxaaConsoleEdgeSharpness,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3.\n // Due to the PS3 being ALU bound,\n // there are only two safe values here: 1/4 and 1/8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // The console setting has a different mapping than the quality setting.\n // Other platforms can use other values.\n // 0.125 leaves less aliasing, but is softer (default!!!)\n // 0.25 leaves more aliasing, and is sharper\n FxaaFloat fxaaConsoleEdgeThreshold,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // The console setting has a different mapping than the quality setting.\n // This only applies when FXAA_EARLY_EXIT is 1.\n // This does not apply to PS3,\n // PS3 was simplified to avoid more shader instructions.\n // 0.06 - faster but more aliasing in darks\n // 0.05 - default\n // 0.04 - slower and less aliasing in darks\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaConsoleEdgeThresholdMin,\n //\n // Extra constants for 360 FXAA Console only.\n // Use zeros or anything else for other platforms.\n // These must be in physical constant registers and NOT immediates.\n // Immediates will result in compiler un-optimizing.\n // {xyzw} = float4(1.0, -1.0, 0.25, -0.25)\n FxaaFloat4 fxaaConsole360ConstDir\n) {\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posM;\n posM.x = pos.x;\n posM.y = pos.y;\n #if (FXAA_GATHER4_ALPHA == 1)\n #if (FXAA_DISCARD == 0)\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #endif\n #if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));\n #else\n FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));\n #endif\n #if (FXAA_DISCARD == 1)\n #define lumaM luma4A.w\n #endif\n #define lumaE luma4A.z\n #define lumaS luma4A.x\n #define lumaSE luma4A.y\n #define lumaNW luma4B.w\n #define lumaN luma4B.z\n #define lumaW luma4B.x\n #else\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));\n #endif\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat maxSM = max(lumaS, lumaM);\n FxaaFloat minSM = min(lumaS, lumaM);\n FxaaFloat maxESM = max(lumaE, maxSM);\n FxaaFloat minESM = min(lumaE, minSM);\n FxaaFloat maxWN = max(lumaN, lumaW);\n FxaaFloat minWN = min(lumaN, lumaW);\n FxaaFloat rangeMax = max(maxWN, maxESM);\n FxaaFloat rangeMin = min(minWN, minESM);\n FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\n FxaaFloat range = rangeMax - rangeMin;\n FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\n FxaaBool earlyExit = range < rangeMaxClamped;\n/*--------------------------------------------------------------------------*/\n if(earlyExit)\n #if (FXAA_DISCARD == 1)\n FxaaDiscard;\n #else\n return rgbyM;\n #endif\n/*--------------------------------------------------------------------------*/\n #if (FXAA_GATHER4_ALPHA == 0)\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n #else\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNS = lumaN + lumaS;\n FxaaFloat lumaWE = lumaW + lumaE;\n FxaaFloat subpixRcpRange = 1.0/range;\n FxaaFloat subpixNSWE = lumaNS + lumaWE;\n FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;\n FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNESE = lumaNE + lumaSE;\n FxaaFloat lumaNWNE = lumaNW + lumaNE;\n FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\n FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNWSW = lumaNW + lumaSW;\n FxaaFloat lumaSWSE = lumaSW + lumaSE;\n FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\n FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\n FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\n FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\n FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;\n FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;\n/*--------------------------------------------------------------------------*/\n FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;\n FxaaFloat lengthSign = fxaaQualityRcpFrame.x;\n FxaaBool horzSpan = edgeHorz >= edgeVert;\n FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\n/*--------------------------------------------------------------------------*/\n if(!horzSpan) lumaN = lumaW;\n if(!horzSpan) lumaS = lumaE;\n if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\n FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;\n/*--------------------------------------------------------------------------*/\n FxaaFloat gradientN = lumaN - lumaM;\n FxaaFloat gradientS = lumaS - lumaM;\n FxaaFloat lumaNN = lumaN + lumaM;\n FxaaFloat lumaSS = lumaS + lumaM;\n FxaaBool pairN = abs(gradientN) >= abs(gradientS);\n FxaaFloat gradient = max(abs(gradientN), abs(gradientS));\n if(pairN) lengthSign = -lengthSign;\n FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posB;\n posB.x = posM.x;\n posB.y = posM.y;\n FxaaFloat2 offNP;\n offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n if(!horzSpan) posB.x += lengthSign * 0.5;\n if( horzSpan) posB.y += lengthSign * 0.5;\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posN;\n posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;\n posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;\n FxaaFloat2 posP;\n posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;\n posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;\n FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;\n FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));\n FxaaFloat subpixE = subpixC * subpixC;\n FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));\n/*--------------------------------------------------------------------------*/\n if(!pairN) lumaNN = lumaSS;\n FxaaFloat gradientScaled = gradient * 1.0/4.0;\n FxaaFloat lumaMM = lumaM - lumaNN * 0.5;\n FxaaFloat subpixF = subpixD * subpixE;\n FxaaBool lumaMLTZero = lumaMM < 0.0;\n/*--------------------------------------------------------------------------*/\n lumaEndN -= lumaNN * 0.5;\n lumaEndP -= lumaNN * 0.5;\n FxaaBool doneN = abs(lumaEndN) >= gradientScaled;\n FxaaBool doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;\n FxaaBool doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;\n/*--------------------------------------------------------------------------*/\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 3)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 4)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 5)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 6)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 7)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 8)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 9)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 10)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 11)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 12)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n/*--------------------------------------------------------------------------*/\n FxaaFloat dstN = posM.x - posN.x;\n FxaaFloat dstP = posP.x - posM.x;\n if(!horzSpan) dstN = posM.y - posN.y;\n if(!horzSpan) dstP = posP.y - posM.y;\n/*--------------------------------------------------------------------------*/\n FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\n FxaaFloat spanLength = (dstP + dstN);\n FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\n FxaaFloat spanLengthRcp = 1.0/spanLength;\n/*--------------------------------------------------------------------------*/\n FxaaBool directionN = dstN < dstP;\n FxaaFloat dst = min(dstN, dstP);\n FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;\n FxaaFloat subpixG = subpixF * subpixF;\n FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\n FxaaFloat subpixH = subpixG * fxaaQualitySubpix;\n/*--------------------------------------------------------------------------*/\n FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\n FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\n if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\n if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\n #if (FXAA_DISCARD == 1)\n return FxaaTexTop(tex, posM);\n #else\n return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);\n #endif\n}\n/*==========================================================================*/\n#endif\n\nvoid main() {\n gl_FragColor = FxaaPixelShader(\n vUv,\n vec4(0.0),\n tDiffuse,\n tDiffuse,\n tDiffuse,\n resolution,\n vec4(0.0),\n vec4(0.0),\n vec4(0.0),\n 0.75,\n 0.166,\n 0.0833,\n 0.0,\n 0.0,\n 0.0,\n vec4(0.0)\n );\n\n // TODO avoid querying texture twice for same texel\n gl_FragColor.a = texture2D(tDiffuse, vUv).a;\n}\n'},889:ut=>{ut.exports="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n"},3420:ut=>{"use strict";ut.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},8198:ut=>{"use strict";ut.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},ut=>{ut(ut.s=9328)}]); \ No newline at end of file +(self.webpackChunkvisualization=self.webpackChunkvisualization||[]).push([[792],{9328:(ut,Se,p)=>{"use strict";function z(n,t,e,i,r,o,s){try{var a=n[o](s),l=a.value}catch(c){return void e(c)}a.done?t(l):Promise.resolve(l).then(i,r)}function k(n){return function(){var t=this,e=arguments;return new Promise(function(i,r){var o=n.apply(t,e);function s(l){z(o,i,r,s,a,"next",l)}function a(l){z(o,i,r,s,a,"throw",l)}s(void 0)})}}function m(n,t){return Object.is(n,t)}let q=null,F=!1,I=1;const G=Symbol("SIGNAL");function T(n){const t=q;return q=n,t}const P={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function K(n){if(F)throw new Error("");if(null===q)return;q.consumerOnSignalRead(n);const t=q.nextProducerIndex++;Ge(q),tn.nextProducerIndex;)n.producerNode.pop(),n.producerLastReadVersion.pop(),n.producerIndexOfThis.pop()}}function ke(n){Ge(n);for(let t=0;t0}function Ge(n){n.producerNode??=[],n.producerIndexOfThis??=[],n.producerLastReadVersion??=[]}function Fe(n){n.liveConsumerNode??=[],n.liveConsumerIndexOfThis??=[]}const Oe=Symbol("UNSET"),tt=Symbol("COMPUTING"),Re=Symbol("ERRORED"),mt={...P,value:Oe,dirty:!0,error:null,equal:m,producerMustRecompute:n=>n.value===Oe||n.value===tt,producerRecomputeValue(n){if(n.value===tt)throw new Error("Detected cycle in computations.");const t=n.value;n.value=tt;const e=Xe(n);let i;try{i=n.computation()}catch(r){i=Re,n.error=r}finally{Je(n,e)}t!==Oe&&t!==Re&&i!==Re&&n.equal(t,i)?n.value=t:(n.value=i,n.version++)}};let Lt=function St(){throw new Error};function qt(){Lt()}let On=null;function Ui(n,t){He()||qt(),n.equal(n.value,t)||(n.value=t,function Pt(n){n.version++,function oe(){I++}(),Me(n),On?.()}(n))}const Ye={...P,equal:m,value:void 0};const En=()=>{},Xt={...P,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:n=>{null!==n.schedule&&n.schedule(n.ref)},hasRun:!1,cleanupFn:En};function Yt(n){return"function"==typeof n}function Ri(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const ir=Ri(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function yr(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class Xn{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const o of e)o.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(Yt(i))try{i()}catch(o){t=o instanceof ir?o.errors:[o]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const o of r)try{So(o)}catch(s){t=t??[],s instanceof ir?t=[...t,...s.errors]:t.push(s)}}if(t)throw new ir(t)}}add(t){var e;if(t&&t!==this)if(this.closed)So(t);else{if(t instanceof Xn){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&yr(e,t)}remove(t){const{_finalizers:e}=this;e&&yr(e,t),t instanceof Xn&&t._removeParent(this)}}Xn.EMPTY=(()=>{const n=new Xn;return n.closed=!0,n})();const ri=Xn.EMPTY;function Qo(n){return n instanceof Xn||n&&"closed"in n&&Yt(n.remove)&&Yt(n.add)&&Yt(n.unsubscribe)}function So(n){Yt(n)?n():n.unsubscribe()}const Zi={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Er={setTimeout(n,t,...e){const{delegate:i}=Er;return i?.setTimeout?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=Er;return(t?.clearTimeout||clearTimeout)(n)},delegate:void 0};function _o(n){Er.setTimeout(()=>{const{onUnhandledError:t}=Zi;if(!t)throw n;t(n)})}function tl(){}const mf=wl("C",void 0,void 0);function wl(n,t,e){return{kind:n,value:t,error:e}}let ea=null;function Zo(n){if(Zi.useDeprecatedSynchronousErrorHandling){const t=!ea;if(t&&(ea={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=ea;if(ea=null,e)throw i}}else n()}class Ac extends Xn{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Qo(t)&&t.add(this)):this.destination=sp}static create(t,e,i){return new Ss(t,e,i)}next(t){this.isStopped?Lu(function Js(n){return wl("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Lu(function Ou(n){return wl("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Lu(mf,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Bd=Function.prototype.bind;function op(n,t){return Bd.call(n,t)}class gc{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){Gc(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){Gc(i)}else Gc(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){Gc(e)}}}class Ss extends Ac{constructor(t,e,i){let r;if(super(),Yt(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let o;this&&Zi.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&op(t.next,o),error:t.error&&op(t.error,o),complete:t.complete&&op(t.complete,o)}):r=t}this.destination=new gc(r)}}function Gc(n){Zi.useDeprecatedSynchronousErrorHandling?function xl(n){Zi.useDeprecatedSynchronousErrorHandling&&ea&&(ea.errorThrown=!0,ea.error=n)}(n):_o(n)}function Lu(n,t){const{onStoppedNotification:e}=Zi;e&&Er.setTimeout(()=>e(n,t))}const sp={closed:!0,next:tl,error:function pf(n){throw n},complete:tl},Nu="function"==typeof Symbol&&Symbol.observable||"@@observable";function ma(n){return n}let Ji=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const o=function Ag(n){return n&&n instanceof Ac||function gf(n){return n&&Yt(n.next)&&Yt(n.error)&&Yt(n.complete)}(n)&&Qo(n)}(e)?e:new Ss(e,i,r);return Zo(()=>{const{operator:s,source:a}=this;o.add(s?s.call(o,a):a?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Af(i))((r,o)=>{const s=new Ss({next:a=>{try{e(a)}catch(l){o(l),s.unsubscribe()}},error:o,complete:r});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Nu](){return this}pipe(...e){return function Uu(n){return 0===n.length?ma:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=Af(e))((i,r)=>{let o;this.subscribe(s=>o=s,s=>r(s),()=>i(o))})}}return n.create=t=>new n(t),n})();function Af(n){var t;return null!==(t=n??Zi.Promise)&&void 0!==t?t:Promise}const jb=Ri(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Ln=(()=>{class n extends Ji{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Hi(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new jb}next(e){Zo(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Zo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Zo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:o}=this;return i||r?ri:(this.currentObservers=null,o.push(e),new Xn(()=>{this.currentObservers=null,yr(o,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:o}=this;i?e.error(r):o&&e.complete()}asObservable(){const e=new Ji;return e.source=this,e}}return n.create=(t,e)=>new Hi(t,e),n})();class Hi extends Ln{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:ri}}class Ia extends Ln{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}function fe(n){return t=>{if(function Be(n){return Yt(n?.lift)}(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function De(n,t,e,i,r){return new yt(n,t,e,i,r)}class yt extends Ac{constructor(t,e,i,r,o,s){super(t),this.onFinalize=o,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){t.error(l)}}:super._next,this._error=r?function(a){try{r(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function Qe(n,t){return fe((e,i)=>{let r=0;e.subscribe(De(i,o=>{i.next(n.call(t,o,r++))}))})}const bi="https://g.co/ng/security#xss";class ct extends Error{constructor(t,e){super(function $i(n,t){return`NG0${Math.abs(n)}${t?": "+t:""}`}(t,e)),this.code=t}}function Fi(n){return{toString:n}.toString()}const rr="__parameters__";function or(n,t,e){return Fi(()=>{const i=function Jo(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...o){if(this instanceof r)return i.apply(this,o),this;const s=new r(...o);return a.annotation=s,a;function a(l,c,d){const u=l.hasOwnProperty(rr)?l[rr]:Object.defineProperty(l,rr,{value:[]})[rr];for(;u.length<=d;)u.push(null);return(u[d]=u[d]||[]).push(s),l}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}const Ti=globalThis;function Ii(n){for(let t in n)if(n[t]===Ii)return t;throw Error("Could not find renamed property on target object.")}function Hu(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function co(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(co).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function Pd(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const El=Ii({__forward_ref__:Ii});function ei(n){return n.__forward_ref__=ei,n.toString=function(){return co(this())},n}function Gn(n){return Bo(n)?n():n}function Bo(n){return"function"==typeof n&&n.hasOwnProperty(El)&&n.__forward_ref__===ei}function Ft(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function It(n){return{providers:n.providers||[],imports:n.imports||[]}}function lp(n){return Jb(n,wf)||Jb(n,jx)}function Jb(n,t){return n.hasOwnProperty(t)?n[t]:null}function yf(n){return n&&(n.hasOwnProperty(cp)||n.hasOwnProperty(PF))?n[cp]:null}const wf=Ii({\u0275prov:Ii}),cp=Ii({\u0275inj:Ii}),jx=Ii({ngInjectableDef:Ii}),PF=Ii({ngInjectorDef:Ii});class dt{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ft({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function nv(n){return n&&!!n.\u0275providers}const up=Ii({\u0275cmp:Ii}),xf=Ii({\u0275dir:Ii}),Cf=Ii({\u0275pipe:Ii}),iv=Ii({\u0275mod:Ii}),$c=Ii({\u0275fac:Ii}),nl=Ii({__NG_ELEMENT_ID__:Ii}),hp=Ii({__NG_ENV_ID__:Ii});function ci(n){return"string"==typeof n?n:null==n?"":String(n)}function rv(n,t){throw new ct(-201,!1)}var sr=function(n){return n[n.Default=0]="Default",n[n.Host=1]="Host",n[n.Self=2]="Self",n[n.SkipSelf=4]="SkipSelf",n[n.Optional=8]="Optional",n}(sr||{});let ov;function Xx(){return ov}function Aa(n){const t=ov;return ov=n,t}function Kx(n,t,e){const i=lp(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&sr.Optional?null:void 0!==t?t:void rv()}const fp={},av="__NG_DI_FLAG__",vg="ngTempTokenPath",HF=/\n/gm,Yx="__source";let Rd;function jc(n){const t=Rd;return Rd=n,t}function mp(n,t=sr.Default){if(void 0===Rd)throw new ct(-203,!1);return null===Rd?Kx(n,void 0,t):Rd.get(n,t&sr.Optional?null:void 0,t)}function ve(n,t=sr.Default){return(Xx()||mp)(Gn(n),t)}function Qt(n,t=sr.Default){return ve(n,Mf(t))}function Mf(n){return typeof n>"u"||"number"==typeof n?n:(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function yg(n){const t=[];for(let e=0;e({token:n})),-1),qu=bc(or("Optional"),8),Ef=bc(or("SkipSelf"),4);function Il(n,t){return n.hasOwnProperty($c)?n[$c]:null}function Gu(n,t){n.forEach(e=>Array.isArray(e)?Gu(e,t):t(e))}function lv(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function pp(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function zo(n,t,e){let i=ka(n,t);return i>=0?n[1|i]=e:(i=~i,function Da(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function qo(n,t){const e=ka(n,t);if(e>=0)return n[1|e]}function ka(n,t){return function cv(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const o=i+(r-i>>1),s=n[o<t?r=o:i=o+1}return~(r<t){s=o-1;break}}}for(;o-1){let o;for(;++ro?"":r[d+1].toLowerCase(),2&i&&c!==u){if(ol(i))return!1;s=!0}}}}else{if(!s&&!ol(i)&&!ol(l))return!1;if(s&&ol(l))continue;s=!1,i=l|1&i}}return ol(i)||s}function ol(n){return!(1&n)}function nC(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let o=!1;for(;r-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?r+="."+s:4&i&&(r+=" "+s);else""!==r&&!ol(s)&&(t+=oC(o,r),r=""),i=s,o=o||!ol(i);e++}return""!==r&&(t+=oC(o,r)),t}function bt(n){return Fi(()=>{const t=aC(n),e={...t,decls:n.decls,vars:n.vars,template:n.template,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,onPush:n.changeDetection===Cg.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&n.dependencies||null,getStandaloneInjector:null,signals:n.signals??!1,data:n.data||{},encapsulation:n.encapsulation||ga.Emulated,styles:n.styles||dr,_:null,schemas:n.schemas||null,tView:null,id:""};lC(e);const i=n.dependencies;return e.directiveDefs=Xu(i,!1),e.pipeDefs=Xu(i,!0),e.id=function JF(n){let t=0;const e=[n.selectors,n.ngContentSelectors,n.hostVars,n.hostAttrs,n.consts,n.vars,n.decls,n.encapsulation,n.standalone,n.signals,n.exportAs,JSON.stringify(n.inputs),JSON.stringify(n.outputs),Object.getOwnPropertyNames(n.type.prototype),!!n.contentQueries,!!n.viewQuery].join("|");for(const r of e)t=Math.imul(31,t)+r.charCodeAt(0)|0;return t+=2147483648,"c"+t}(e),e})}function KF(n){return Vi(n)||es(n)}function YF(n){return null!==n}function kt(n){return Fi(()=>({type:n.type,bootstrap:n.bootstrap||dr,declarations:n.declarations||dr,imports:n.imports||dr,exports:n.exports||dr,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function sC(n,t){if(null==n)return il;const e={};for(const i in n)if(n.hasOwnProperty(i)){const r=n[i];let o,s,a=Ct.None;Array.isArray(r)?(a=r[0],o=r[1],s=r[2]??o):(o=r,s=r),t?(e[o]=a!==Ct.None?[i,a]:i,t[o]=s):e[o]=i}return e}function Wt(n){return Fi(()=>{const t=aC(n);return lC(t),t})}function ur(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function Vi(n){return n[up]||null}function es(n){return n[xf]||null}function Go(n){return n[Cf]||null}function aC(n){const t={};return{type:n.type,providersResolver:null,factory:null,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:n.inputs||il,exportAs:n.exportAs||null,standalone:!0===n.standalone,signals:!0===n.signals,selectors:n.selectors||dr,viewQuery:n.viewQuery||null,features:n.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:sC(n.inputs,t),outputs:sC(n.outputs),debugInfo:null}}function lC(n){n.features?.forEach(t=>t(n))}function Xu(n,t){if(!n)return null;const e=t?Go:KF;return()=>("function"==typeof n?n():n).map(i=>e(i)).filter(YF)}function eD(...n){return{\u0275providers:Tf(0,n),\u0275fromNgModule:!0}}function Tf(n,...t){const e=[],i=new Set;let r;const o=s=>{e.push(s)};return Gu(t,s=>{const a=s;Sg(a,o,[],i)&&(r||=[],r.push(a))}),void 0!==r&&cC(r,o),e}function cC(n,t){for(let e=0;e{t(o,i)})}}function Sg(n,t,e,i){if(!(n=Gn(n)))return!1;let r=null,o=yf(n);const s=!o&&Vi(n);if(o||s){if(s&&!s.standalone)return!1;r=n}else{const l=n.ngModule;if(o=yf(l),!o)return!1;r=l}const a=i.has(r);if(s){if(a)return!1;if(i.add(r),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Sg(c,t,e,i)}}else{if(!o)return!1;{if(null!=o.imports&&!a){let c;i.add(r);try{Gu(o.imports,d=>{Sg(d,t,e,i)&&(c||=[],c.push(d))})}finally{}void 0!==c&&cC(c,t)}if(!a){const c=Il(r)||(()=>new r);t({provide:r,useFactory:c,deps:dr},r),t({provide:Fl,useValue:r,multi:!0},r),t({provide:Nd,useValue:()=>ve(r),multi:!0},r)}const l=o.providers;if(null!=l&&!a){const c=n;mv(l,d=>{t(d,c)})}}}return r!==n&&void 0!==n.providers}function mv(n,t){for(let e of n)nv(e)&&(e=e.\u0275providers),Array.isArray(e)?mv(e,t):t(e)}const Tg=Ii({provide:String,useValue:Ii});function pv(n){return null!==n&&"object"==typeof n&&Tg in n}function Ku(n){return"function"==typeof n}const Av=new dt(""),Ig={},nD={};let gv;function Fg(){return void 0===gv&&(gv=new xg),gv}class Ba{}class If extends Ba{get destroyed(){return this._destroyed}constructor(t,e,i,r){super(),this.parent=e,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,bv(t,s=>this.processProvider(s)),this.records.set(Sf,Ud(void 0,this)),r.has("environment")&&this.records.set(Ba,Ud(void 0,this));const o=this.records.get(Av);null!=o&&"string"==typeof o.value&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(Fl,dr,sr.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const t=T(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),T(t)}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const e=jc(this),i=Aa(void 0);try{return t()}finally{jc(e),Aa(i)}}get(t,e=fp,i=sr.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(hp))return t[hp](this);i=Mf(i);const o=jc(this),s=Aa(void 0);try{if(!(i&sr.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function oD(n){return"function"==typeof n||"object"==typeof n&&n instanceof dt}(t)&&lp(t);l=c&&this.injectableDefInScope(c)?Ud(_v(t),Ig):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&sr.Self?Fg():this.parent).get(t,e=i&sr.Optional&&e===fp?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[vg]=a[vg]||[]).unshift(co(t)),o)throw a;return function QF(n,t,e,i){const r=n[vg];throw t[Yx]&&r.unshift(t[Yx]),n.message=function Od(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let r=co(t);if(Array.isArray(t))r=t.map(co).join(" -> ");else if("object"==typeof t){let o=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];o.push(s+":"+("string"==typeof a?JSON.stringify(a):co(a)))}r=`{${o.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(HF,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[vg]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{Aa(s),jc(o)}}resolveInjectorInitializers(){const t=T(null),e=jc(this),i=Aa(void 0);try{const o=this.get(Nd,dr,sr.Self);for(const s of o)s()}finally{jc(e),Aa(i),T(t)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(co(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ct(205,!1)}processProvider(t){let e=Ku(t=Gn(t))?t:Gn(t&&t.provide);const i=function iD(n){return pv(n)?Ud(void 0,n.useValue):Ud(fC(n),Ig)}(t);if(!Ku(t)&&!0===t.multi){let r=this.records.get(e);r||(r=Ud(void 0,Ig,!0),r.factory=()=>yg(r.multi),this.records.set(e,r)),e=t,r.multi.push(t)}this.records.set(e,i)}hydrate(t,e){const i=T(null);try{return e.value===Ig&&(e.value=nD,e.value=e.factory()),"object"==typeof e.value&&e.value&&function rD(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{T(i)}}injectableDefInScope(t){if(!t.providedIn)return!1;const e=Gn(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(t){const e=this._onDestroyHooks.indexOf(t);-1!==e&&this._onDestroyHooks.splice(e,1)}}function _v(n){const t=lp(n),e=null!==t?t.factory:Il(n);if(null!==e)return e;if(n instanceof dt)throw new ct(204,!1);if(n instanceof Function)return function hC(n){if(n.length>0)throw new ct(204,!1);const e=function Tl(n){return n&&(n[wf]||n[jx])||null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new ct(204,!1)}function fC(n,t,e){let i;if(Ku(n)){const r=Gn(n);return Il(r)||_v(r)}if(pv(n))i=()=>Gn(n.useValue);else if(function uC(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...yg(n.deps||[]));else if(function dC(n){return!(!n||!n.useExisting)}(n))i=()=>ve(Gn(n.useExisting));else{const r=Gn(n&&(n.useClass||n.provide));if(!function Dg(n){return!!n.deps}(n))return Il(r)||_v(r);i=()=>new r(...yg(n.deps))}return i}function Ud(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function bv(n,t){for(const e of n)Array.isArray(e)?bv(e,t):e&&nv(e)?bv(e.\u0275providers,t):t(e)}function mC(){return void 0!==Xx()||null!=function Zx(){return Rd}()}function bp(n){if(!mC())throw new ct(-203,!1)}const uo=0,Jt=1,Hn=2,Ro=3,Dl=4,Fs=5,Pa=6,Ff=7,Xr=8,Ds=9,kl=10,oi=11,yp=12,AC=13,ho=14,bo=15,wp=16,Df=17,Kc=18,xp=19,yv=20,Hd=21,Pg=22,Yu=23,vi=25,wv=1,Bl=7,kf=9,Oo=10;var Mp=function(n){return n[n.None=0]="None",n[n.HasTransplantedViews=2]="HasTransplantedViews",n}(Mp||{});function eo(n){return Array.isArray(n)&&"object"==typeof n[wv]}function Gs(n){return Array.isArray(n)&&!0===n[wv]}function Rg(n){return!!(4&n.flags)}function Pl(n){return n.componentOffset>-1}function Zu(n){return!(1&~n.flags)}function Rl(n){return!!n.template}function xv(n){return!!(512&n[Hn])}class Mv{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Ng(n,t,e,i){null!==t?t.applyValueToInputSignal(t,i):n[e]=i}function xr(){return Ev}function Ev(n){return n.type.prototype.ngOnChanges&&(n.setInput=vC),bD}function bD(){const n=Hg(this),t=n?.current;if(t){const e=n.previous;if(e===il)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function vC(n,t,e,i,r){const o=this.declaredInputs[i],s=Hg(n)||function yC(n,t){return n[Ug]=t}(n,{previous:il,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[o];a[o]=new Mv(c&&c.currentValue,e,l===il),Ng(n,t,r,e)}xr.ngInherit=!0;const Ug="__ngSimpleChanges__";function Hg(n){return n[Ug]||null}const Ol=function(n,t,e){},Qg="svg";let CC=!1;function Cr(n){for(;Array.isArray(n);)n=n[uo];return n}function Sp(n,t){return Cr(t[n])}function na(n,t){return Cr(t[n.index])}function Tp(n,t){return n.data[t]}function Bf(n,t){return n[t]}function Ra(n,t){const e=t[n];return eo(e)?e:e[uo]}function Tv(n){return!(128&~n[Hn])}function yc(n,t){return null==t?null:n[t]}function zg(n){n[Df]=0}function EC(n){1024&n[Hn]||(n[Hn]|=1024,Tv(n)&&Ip(n))}function eh(n){return!!(9216&n[Hn]||n[Yu]?.dirty)}function Iv(n){n[kl].changeDetectionScheduler?.notify(1),eh(n)?Ip(n):64&n[Hn]&&(function vD(){return CC}()?(n[Hn]|=1024,Ip(n)):n[kl].changeDetectionScheduler?.notify())}function Ip(n){n[kl].changeDetectionScheduler?.notify();let t=th(n);for(;null!==t&&!(8192&t[Hn])&&(t[Hn]|=8192,Tv(t));)t=th(t)}function Fp(n,t){if(!(256&~n[Hn]))throw new ct(911,!1);null===n[Hd]&&(n[Hd]=[]),n[Hd].push(t)}function th(n){const t=n[Ro];return Gs(t)?t[Ro]:t}const si={lFrame:Ov(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function TC(){return si.bindingsEnabled}function nh(){return null!==si.skipHydrationRootTNode}function Dt(){return si.lFrame.lView}function ji(){return si.lFrame.tView}function Ot(n){return si.lFrame.contextLView=n,n[Xr]}function Rt(n){return si.lFrame.contextLView=null,n}function Ar(){let n=kC();for(;null!==n&&64===n.type;)n=n.parent;return n}function kC(){return si.lFrame.currentTNode}function sl(n,t){const e=si.lFrame;e.currentTNode=n,e.isParent=t}function qg(){return si.lFrame.isParent}function Gg(){si.lFrame.isParent=!1}function Ws(){const n=si.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function wc(){return si.lFrame.bindingIndex}function Nl(){return si.lFrame.bindingIndex++}function xc(n){const t=si.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}function $g(n,t){const e=si.lFrame;e.bindingIndex=e.bindingRootIndex=n,Dv(t)}function Dv(n){si.lFrame.currentDirectiveIndex=n}function Bv(){return si.lFrame.currentQueryIndex}function Bp(n){si.lFrame.currentQueryIndex=n}function Pv(n){const t=n[Jt];return 2===t.type?t.declTNode:1===t.type?n[Fs]:null}function Rv(n,t,e){if(e&sr.SkipSelf){let r=t,o=n;for(;!(r=r.parent,null!==r||e&sr.Host||(r=Pv(o),null===r||(o=o[ho],10&r.type))););if(null===r)return!1;t=r,n=o}const i=si.lFrame=Xg();return i.currentTNode=t,i.lView=n,!0}function jg(n){const t=Xg(),e=n[Jt];si.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Xg(){const n=si.lFrame,t=null===n?null:n.child;return null===t?Ov(n):t}function Ov(n){const t={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:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Lv(){const n=si.lFrame;return si.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const RC=Lv;function Of(){const n=Lv();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function ks(){return si.lFrame.selectedIndex}function Vd(n){si.lFrame.selectedIndex=n}function Kr(){const n=si.lFrame;return Tp(n.tView,n.selectedIndex)}function Ul(){si.lFrame.currentNamespace=Qg}function Yg(){!function TD(){si.lFrame.currentNamespace=null}()}let Nv=!0;function to(){return Nv}function $s(n){Nv=n}function Hl(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[l]<0&&(n[Df]+=65536),(a>14>16&&(3&n[Hn])===t&&(n[Hn]+=16384,Hv(a,o)):Hv(a,o)}const zd=-1;class Yc{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Vv(n){return n!==zd}function rh(n){return 32767&n}function Pp(n,t){let e=function DD(n){return n>>16}(n),i=t;for(;e>0;)i=i[ho],e--;return i}let Qv=!0;function e0(n){const t=Qv;return Qv=n,t}const t0=255,n0=5;let UC=0;const Cc={};function Rp(n,t){const e=HC(n,t);if(-1!==e)return e;const i=t[Jt];i.firstCreatePass&&(n.injectorIndex=t.length,zv(i.data,n),zv(t,null),zv(i.blueprint,null));const r=r0(n,t),o=n.injectorIndex;if(Vv(r)){const s=rh(r),a=Pp(r,t),l=a[Jt].data;for(let c=0;c<8;c++)t[o+c]=a[s+c]|l[s+c]}return t[o+8]=r,o}function zv(n,t){n.push(0,0,0,0,0,0,0,0,t)}function HC(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function r0(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){if(i=qC(r),null===i)return zd;if(e++,r=r[ho],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return zd}function qv(n,t,e){!function kD(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(nl)&&(i=e[nl]),null==i&&(i=e[nl]=UC++);const r=i&t0;t.data[n+(r>>n0)]|=1<=0?t&t0:a0:t}(e);if("function"==typeof o){if(!Rv(t,n,i))return i&sr.Host?o0(r,0,i):VC(t,e,i,r);try{let s;if(s=o(i),null!=s||i&sr.Optional)return s;rv()}finally{RC()}}else if("number"==typeof o){let s=null,a=HC(n,t),l=zd,c=i&sr.Host?t[bo][Fs]:null;for((-1===a||i&sr.SkipSelf)&&(l=-1===a?r0(n,t):t[a+8],l!==zd&&Mr(i,!1)?(s=t[Jt],a=rh(l),t=Pp(l,t)):a=-1);-1!==a;){const d=t[Jt];if(zC(o,a,d.data)){const u=_n(a,t,e,s,i,c);if(u!==Cc)return u}l=t[a+8],l!==zd&&Mr(i,t[Jt].data[a+8]===c)&&zC(o,a,t)?(s=d,a=rh(l),t=Pp(l,t)):a=-1}}return r}function _n(n,t,e,i,r,o){const s=t[Jt],a=s.data[n+8],d=Zc(a,s,e,null==i?Pl(a)&&Qv:i!=s&&!!(3&a.type),r&sr.Host&&o===a);return null!==d?Mc(t,s,d,a):Cc}function Zc(n,t,e,i,r){const o=n.providerIndexes,s=t.data,a=1048575&o,l=n.directiveStart,d=o>>20,h=r?a+d:n.directiveEnd;for(let f=i?a:a+d;f=l&&A.type===e)return f}if(r){const f=s[l];if(f&&Rl(f)&&f.type===e)return l}return null}function Mc(n,t,e,i){let r=n[e];const o=t.data;if(function NC(n){return n instanceof Yc}(r)){const s=r;s.resolving&&function LF(n,t){throw t&&t.join(" > "),new ct(-200,n)}(function _r(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():ci(n)}(o[e]));const a=e0(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?Aa(s.injectImpl):null;Rv(n,i,sr.Default);try{r=n[e]=s.factory(void 0,o,n,i),t.firstCreatePass&&e>=i.directiveStart&&function Lf(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=t.type.prototype;if(i){const s=Ev(t);(e.preOrderHooks??=[]).push(n,s),(e.preOrderCheckHooks??=[]).push(n,s)}r&&(e.preOrderHooks??=[]).push(0-n,r),o&&((e.preOrderHooks??=[]).push(n,o),(e.preOrderCheckHooks??=[]).push(n,o))}(e,o[e],t)}finally{null!==c&&Aa(c),e0(a),s.resolving=!1,RC()}}return r}function zC(n,t,e){return!!(e[t+(n>>n0)]&1<{const t=n.prototype.constructor,e=t[$c]||Nf(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const o=r[$c]||Nf(r);if(o&&o!==e)return o;r=Object.getPrototypeOf(r)}return o=>new o})}function Nf(n){return Bo(n)?()=>{const t=Nf(Gn(n));return t&&t()}:Il(n)}function qC(n){const t=n[Jt],e=t.type;return 2===e?t.declTNode:1===e?n[Fs]:null}function zl(n){return function BD(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let r=0;for(;r{class n{static{this.THROW_IF_NOT_FOUND=fp}static{this.NULL=new xg}static create(e,i){if(Array.isArray(e))return Kv({name:""},i,e,"");{const r=e.name??"";return Kv({name:r},e.parent,e.providers,r)}}static{this.\u0275prov=Ft({token:n,providedIn:"any",factory:()=>ve(Sf)})}static{this.__NG_ELEMENT_ID__=-1}}return n})();function Uf(n){return n.ngOriginalError}class Oa{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&Uf(t);for(;e&&Uf(e);)e=Uf(e);return e||null}}const oh=new dt("",{providedIn:"root",factory:()=>Qt(Oa).handleError.bind(void 0)});let qd=(()=>{class n{static{this.__NG_ELEMENT_ID__=$C}static{this.__NG_ENV_ID__=e=>e}}return n})();class UD extends qd{constructor(t){super(),this._lView=t}onDestroy(t){return Fp(this._lView,t),()=>function Dp(n,t){if(null===n[Hd])return;const e=n[Hd].indexOf(t);-1!==e&&n[Hd].splice(e,1)}(this._lView,t)}}function $C(){return new UD(Dt())}function VD(){return Hf(Ar(),Dt())}function Hf(n,t){return new Nn(na(n,t))}let Nn=(()=>{class n{constructor(e){this.nativeElement=e}static{this.__NG_ELEMENT_ID__=VD}}return n})();function XC(n){return n instanceof Nn?n.nativeElement:n}function Yv(n){return t=>{setTimeout(n,void 0,t)}}const Fn=class QD extends Ln{constructor(t=!1){super(),this.destroyRef=void 0,this.__isAsync=t,mC()&&(this.destroyRef=Qt(qd,{optional:!0})??void 0)}emit(t){const e=T(null);try{super.next(t)}finally{T(e)}}subscribe(t,e,i){let r=t,o=e||(()=>null),s=i;if(t&&"object"==typeof t){const l=t;r=l.next?.bind(l),o=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(o=Yv(o),r&&(r=Yv(r)),s&&(s=Yv(s)));const a=super.subscribe({next:r,error:o,complete:s});return t instanceof Xn&&t.add(a),a}};function zD(){return this._results[Symbol.iterator]()}class sh{get changes(){return this._changes??=new Fn}constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const e=sh.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=zD)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){this.dirty=!1;const i=function ta(n){return n.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function jr(n,t,e){if(n.length!==t.length)return!1;for(let i=0;ieoe}),eoe="ng",r6=new dt(""),Qf=new dt("",{providedIn:"platform",factory:()=>"unknown"}),_s=new dt(""),GD=new dt("",{providedIn:"root",factory:()=>Vf().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let o6=()=>null;function JD(n,t,e=!1){return o6(n,t,e)}const d6=new dt("",{providedIn:"root",factory:()=>!1});let nM,iM;function f0(n){return function i3(){if(void 0===nM&&(nM=null,Ti.trustedTypes))try{nM=Ti.trustedTypes.createPolicy("angular",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return nM}()?.createHTML(n)||n}function h6(n){return function r3(){if(void 0===iM&&(iM=null,Ti.trustedTypes))try{iM=Ti.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return iM}()?.createHTML(n)||n}class Hp{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${bi})`}}function Wl(n){return n instanceof Hp?n.changingThisBreaksApplicationSecurity:n}function $d(n,t){const e=function boe(n){return n instanceof Hp&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see ${bi})`)}return e===t}class Moe{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(f0(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class Eoe{constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){const e=this.inertDocument.createElement("template");return e.innerHTML=f0(t),e}}const Toe=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function rM(n){return(n=String(n)).match(Toe)?n:"unsafe:"+n}function dh(n){const t={};for(const e of n.split(","))t[e]=!0;return t}function iy(...n){const t={};for(const e of n)for(const i in e)e.hasOwnProperty(i)&&(t[i]=!0);return t}const A6=dh("area,br,col,hr,img,wbr"),g6=dh("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),_6=dh("rp,rt"),o3=iy(A6,iy(g6,dh("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),iy(_6,dh("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),iy(_6,g6)),s3=dh("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),b6=iy(s3,dh("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),dh("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),Ioe=dh("script,style,template");class Foe{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,i=!0,r=[];for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)r.push(e),e=Boe(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=koe(e);if(o){e=o;break}e=r.pop()}return this.buf.join("")}startElement(t){const e=v6(t).toLowerCase();if(!o3.hasOwnProperty(e))return this.sanitizedSomething=!0,!Ioe.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=t.attributes;for(let r=0;r"),!0}endElement(t){const e=v6(t).toLowerCase();o3.hasOwnProperty(e)&&!A6.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(w6(t))}}function koe(n){const t=n.nextSibling;if(t&&n!==t.previousSibling)throw y6(t);return t}function Boe(n){const t=n.firstChild;if(t&&function Doe(n,t){return(n.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(n,t))throw y6(t);return t}function v6(n){const t=n.nodeName;return"string"==typeof t?t:"FORM"}function y6(n){return new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`)}const Poe=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Roe=/([^\#-~ |!])/g;function w6(n){return n.replace(/&/g,"&").replace(Poe,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(Roe,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let oM;function x6(n,t){let e=null;try{oM=oM||function p6(n){const t=new Eoe(n);return function Soe(){try{return!!(new window.DOMParser).parseFromString(f0(""),"text/html")}catch{return!1}}()?new Moe(t):t}(n);let i=t?String(t):"";e=oM.getInertBodyElement(i);let r=5,o=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=e.innerHTML,e=oM.getInertBodyElement(i)}while(i!==o);return f0((new Foe).sanitizeChildren(a3(e)||e))}finally{if(e){const i=a3(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function a3(n){return"content"in n&&function Ooe(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var ra=function(n){return n[n.NONE=0]="NONE",n[n.HTML=1]="HTML",n[n.STYLE=2]="STYLE",n[n.SCRIPT=3]="SCRIPT",n[n.URL=4]="URL",n[n.RESOURCE_URL=5]="RESOURCE_URL",n}(ra||{});function l3(n){const t=ry();return t?h6(t.sanitize(ra.HTML,n)||""):$d(n,"HTML")?h6(Wl(n)):x6(Vf(),ci(n))}function Vp(n){const t=ry();return t?t.sanitize(ra.URL,n)||"":$d(n,"URL")?Wl(n):rM(ci(n))}function ry(){const n=Dt();return n&&n[kl].sanitizer}const zoe=/^>|^->||--!>|)/g,Goe="\u200b$1\u200b";function oy(n){return n.ownerDocument.defaultView}function T6(n){return n.ownerDocument}var qf=function(n){return n[n.Important=1]="Important",n[n.DashCase=2]="DashCase",n}(qf||{});let h3;function f3(n,t){return h3(n,t)}function p0(n,t,e,i,r){if(null!=i){let o,s=!1;Gs(i)?o=i:eo(i)&&(s=!0,i=i[uo]);const a=Cr(i);0===n&&null!==e?null==r?L6(t,e,a):Qp(t,e,a,r||null,!0):1===n&&null!==e?Qp(t,e,a,r||null,!0):2===n?function ly(n,t,e){const i=dM(n,t);i&&function lse(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,a,s):3===n&&t.destroyNode(a),null!=o&&function use(n,t,e,i,r){const o=e[Bl];o!==Cr(e)&&p0(t,n,i,o,r);for(let a=Oo;at.replace(qoe,Goe))}(t))}function lM(n,t,e){return n.createElement(t,e)}function P6(n,t){t[kl].changeDetectionScheduler?.notify(1),hM(n,t,t[oi],2,null,null)}function R6(n,t){const e=n[kf],i=e.indexOf(t);e.splice(i,1)}function sy(n,t){if(n.length<=Oo)return;const e=Oo+t,i=n[e];if(i){const r=i[wp];null!==r&&r!==n&&R6(r,i),t>0&&(n[e-1][Dl]=i[Dl]);const o=pp(n,Oo+t);!function tse(n,t){P6(n,t),t[uo]=null,t[Fs]=null}(i[Jt],i);const s=o[Kc];null!==s&&s.detachView(o[Jt]),i[Ro]=null,i[Dl]=null,i[Hn]&=-129}return i}function cM(n,t){if(!(256&t[Hn])){const e=t[oi];e.destroyNode&&hM(n,t,e,3,null,null),function ise(n){let t=n[yp];if(!t)return A3(n[Jt],n);for(;t;){let e=null;if(eo(t))e=t[yp];else{const i=t[Oo];i&&(e=i)}if(!e){for(;t&&!t[Dl]&&t!==n;)eo(t)&&A3(t[Jt],t),t=t[Ro];null===t&&(t=n),eo(t)&&A3(t[Jt],t),e=t&&t[Dl]}t=e}}(t)}}function A3(n,t){if(256&t[Hn])return;const e=T(null);try{t[Hn]&=-129,t[Hn]|=256,t[Yu]&>(t[Yu]),function ase(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[s]():i[-s].unsubscribe(),o+=2}else e[o].call(i[e[o+1]]);null!==i&&(t[Ff]=null);const r=t[Hd];if(null!==r){t[Hd]=null;for(let o=0;o-1){const{encapsulation:o}=n.data[i.directiveStart+r];if(o===ga.None||o===ga.Emulated)return null}return na(i,e)}}(n,t.parent,e)}function Qp(n,t,e,i,r){n.insertBefore(t,e,i,r)}function L6(n,t,e){n.appendChild(t,e)}function N6(n,t,e,i,r){null!==i?Qp(n,t,e,i,r):L6(n,t,e)}function dM(n,t){return n.parentNode(t)}function U6(n,t,e){return V6(n,t,e)}let _3,V6=function H6(n,t,e){return 40&n.type?na(n,e):null};function uM(n,t,e,i){const r=g3(n,i,t),o=t[oi],a=U6(i.parent||t[Fs],i,t);if(null!=r)if(Array.isArray(e))for(let l=0;lvi&&j6(n,t,vi,!1),Ol(s?2:0,r),e(i,r)}finally{Vd(o),Ol(s?3:1,r)}}function w3(n,t,e){if(Rg(t)){const i=T(null);try{const o=t.directiveEnd;for(let s=t.directiveStart;snull;function e7(n,t,e,i,r){for(let o in t){if(!t.hasOwnProperty(o))continue;const s=t[o];if(void 0===s)continue;i??={};let a,l=Ct.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let c=o;if(null!==r){if(!r.hasOwnProperty(o))continue;c=r[o]}0===n?t7(i,e,c,a,l):t7(i,e,c,a)}return i}function t7(n,t,e,i,r){let o;n.hasOwnProperty(e)?(o=n[e]).push(t,i):o=n[e]=[t,i],void 0!==r&&o.push(r)}function ll(n,t,e,i,r,o,s,a){const l=na(t,e);let d,c=t.inputs;!a&&null!=c&&(d=c[i])?(F3(n,e,d,i,r),Pl(t)&&function Cse(n,t){const e=Ra(t,n);16&e[Hn]||(e[Hn]|=64)}(e,t.index)):3&t.type&&(i=function xse(n){return"class"===n?"className":"for"===n?"htmlFor":"formaction"===n?"formAction":"innerHtml"===n?"innerHTML":"readonly"===n?"readOnly":"tabindex"===n?"tabIndex":n}(i),r=null!=s?s(r,t.value||"",i):r,o.setProperty(l,i,r))}function E3(n,t,e,i){if(TC()){const r=null===i?null:{"":-1},o=function Fse(n,t){const e=n.directiveRegistry;let i=null,r=null;if(e)for(let o=0;o0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,o)}}(n,t,i,cy(n,e,r.hostVars,Di),r)}function jd(n,t,e,i,r,o){const s=na(n,t);!function T3(n,t,e,i,r,o,s){if(null==o)n.removeAttribute(t,r,e);else{const a=null==s?ci(o):s(o,i||"",r);n.setAttribute(t,r,a,e)}}(t[oi],s,o,n.value,e,i,r)}function Ose(n,t,e,i,r,o){const s=o[t];if(null!==s)for(let a=0;a0&&(e[r-1][Dl]=t),i{Ip(n.lView)},consumerOnSignalRead(){this.lView[Yu]=this}},h7=100;function AM(n,t=!0,e=0){const i=n[kl],r=i.rendererFactory;r.begin?.();try{!function Gse(n,t){B3(n,t);let e=0;for(;eh(n);){if(e===h7)throw new ct(103,!1);e++,B3(n,1)}}(n,e)}catch(s){throw t&&pM(n,s),s}finally{r.end?.(),i.inlineEffectRunner?.flush()}}function Wse(n,t,e,i){const r=t[Hn];if(!(256&~r))return;t[kl].inlineEffectRunner?.flush(),jg(t);let s=null,a=null;(function $se(n){return 2!==n.type})(n)&&(a=function Vse(n){return n[Yu]??function Qse(n){const t=u7.pop()??Object.create(qse);return t.lView=n,t}(n)}(t),s=Xe(a));try{zg(t),function PC(n){return si.lFrame.bindingIndex=n}(n.bindingStartIndex),null!==e&&Y6(n,t,e,2,i);const l=!(3&~r);if(l){const u=n.preOrderCheckHooks;null!==u&&Vl(t,u,null)}else{const u=n.preOrderHooks;null!==u&&Qd(t,u,0,null),Ql(t,0)}if(function jse(n){for(let t=gs(n);null!==t;t=ed(t)){if(!(t[Hn]&Mp.HasTransplantedViews))continue;const e=t[kf];for(let i=0;i-1&&(sy(t,i),pp(e,i))}this._attachedToViewContainer=!1}cM(this._lView[Jt],this._lView)}onDestroy(t){Fp(this._lView,t)}markForCheck(){fy(this._cdRefInjectingView||this._lView)}detach(){this._lView[Hn]&=-129}reattach(){Iv(this._lView),this._lView[Hn]|=128}detectChanges(){this._lView[Hn]|=1024,AM(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ct(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,P6(this._lView[Jt],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new ct(902,!1);this._appRef=t,Iv(this._lView)}}let jl=(()=>{class n{static{this.__NG_ELEMENT_ID__=Zse}}return n})();const Kse=jl,Yse=class extends Kse{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,e){return this.createEmbeddedViewImpl(t,e)}createEmbeddedViewImpl(t,e,i){const r=dy(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:e,dehydratedView:i});return new my(r)}};function Zse(){return gM(Ar(),Dt())}function gM(n,t){return 4&n.type?new Yse(t,n,Hf(n,t)):null}let y7=()=>null;function _0(n,t){return y7(n,t)}class wM{}class wae{}class w7{}class Cae{resolveComponentFactory(t){throw function xae(n){const t=Error(`No component factory found for ${co(n)}.`);return t.ngComponent=n,t}(t)}}let b0=(()=>{class n{static{this.NULL=new Cae}}return n})();class U3{}let zp=(()=>{class n{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function Mae(){const n=Dt(),e=Ra(Ar().index,n);return(eo(e)?e:n)[oi]}()}}return n})(),Eae=(()=>{class n{static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:()=>null})}}return n})();const H3={},C7=new Set;function Xd(n){C7.has(n)||(C7.add(n),performance?.mark?.("mark_feature_usage",{detail:{feature:n}}))}function M7(...n){}class In{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Fn(!1),this.onMicrotaskEmpty=new Fn(!1),this.onStable=new Fn(!1),this.onError=new Fn(!1),typeof Zone>"u")throw new ct(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function Sae(){const n="function"==typeof Ti.requestAnimationFrame;let t=Ti[n?"requestAnimationFrame":"setTimeout"],e=Ti[n?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&e){const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function Fae(n){const t=()=>{!function Iae(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Ti,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,Q3(n),n.isCheckStableRunning=!0,V3(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),Q3(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,o,s,a)=>{if(function Dae(n){return!(!Array.isArray(n)||1!==n.length)&&!0===n[0].data?.__ignore_ng_zone__}(a))return e.invokeTask(r,o,s,a);try{return E7(n),e.invokeTask(r,o,s,a)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||n.shouldCoalesceRunChangeDetection)&&t(),S7(n)}},onInvoke:(e,i,r,o,s,a,l)=>{try{return E7(n),e.invoke(r,o,s,a,l)}finally{n.shouldCoalesceRunChangeDetection&&t(),S7(n)}},onHasTask:(e,i,r,o)=>{e.hasTask(r,o),i===r&&("microTask"==o.change?(n._hasPendingMicrotasks=o.microTask,Q3(n),V3(n)):"macroTask"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:(e,i,r,o)=>(e.handleError(r,o),n.runOutsideAngular(()=>n.onError.emit(o)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!In.isInAngularZone())throw new ct(909,!1)}static assertNotInAngularZone(){if(In.isInAngularZone())throw new ct(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+r,t,Tae,M7,M7);try{return o.runTask(s,e,i)}finally{o.cancelTask(s)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const Tae={};function V3(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function Q3(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function E7(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function S7(n){n._nesting--,V3(n)}class T7{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Fn,this.onMicrotaskEmpty=new Fn,this.onStable=new Fn,this.onError=new Fn}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}let by=(()=>{class n{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:()=>new n})}}return n})();function CM(n,t,e){let i=e?n.styles:null,r=e?n.classes:null,o=0;if(null!==t)for(let s=0;s0&&W6(n,e,o.join(" "))}}(f,N,y,i),void 0!==e&&function qae(n,t,e){const i=n.projection=[];for(let r=0;r{class n{static{this.__NG_ELEMENT_ID__=Wae}}return n})();function Wae(){return N7(Ar(),Dt())}const $ae=oa,O7=class extends $ae{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return Hf(this._hostTNode,this._hostLView)}get injector(){return new ns(this._hostTNode,this._hostLView)}get parentInjector(){const t=r0(this._hostTNode,this._hostLView);if(Vv(t)){const e=Pp(t,this._hostLView),i=rh(t);return new ns(e[Jt].data[i+8],e)}return new ns(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=L7(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-Oo}createEmbeddedView(t,e,i){let r,o;"number"==typeof i?r=i:null!=i&&(r=i.index,o=i.injector);const s=_0(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(e||{},o,s);return this.insertImpl(a,r,g0(this._hostTNode,s)),a}createComponent(t,e,i,r,o){const s=t&&!function vp(n){return"function"==typeof n}(t);let a;if(s)a=e;else{const A=e||{};a=A.index,i=A.injector,r=A.projectableNodes,o=A.environmentInjector||A.ngModuleRef}const l=s?t:new wy(Vi(t)),c=i||this.parentInjector;if(!o&&null==l.ngModule){const y=(s?c:this.parentInjector).get(Ba,null);y&&(o=y)}const d=Vi(l.componentType??{}),u=_0(this._lContainer,d?.id??null),f=l.create(c,r,u?.firstChild??null,o);return this.insertImpl(f.hostView,a,g0(this._hostTNode,u)),f}insert(t,e){return this.insertImpl(t,e,!0)}insertImpl(t,e,i){const r=t._lView;if(function MC(n){return Gs(n[Ro])}(r)){const a=this.indexOf(t);if(-1!==a)this.detach(a);else{const l=r[Ro],c=new O7(l,l[Fs],l[Ro]);c.detach(c.indexOf(t))}}const o=this._adjustIndex(e),s=this._lContainer;return uy(s,r,o,i),t.attachToViewContainerRef(),lv(W3(s),o,t),t}move(t,e){return this.insert(t,e)}indexOf(t){const e=L7(this._lContainer);return null!==e?e.indexOf(t):-1}remove(t){const e=this._adjustIndex(t,-1),i=sy(this._lContainer,e);i&&(pp(W3(this._lContainer),e),cM(i[Jt],i))}detach(t){const e=this._adjustIndex(t,-1),i=sy(this._lContainer,e);return i&&null!=pp(W3(this._lContainer),e)?new my(i):null}_adjustIndex(t,e=0){return t??this.length+e}};function L7(n){return n[8]}function W3(n){return n[8]||(n[8]=[])}function N7(n,t){let e;const i=t[n.index];return Gs(i)?e=i:(e=r7(i,t,null,n),t[n.index]=e,mM(t,e)),U7(e,t,n,i),new O7(e,n,t)}let U7=function V7(n,t,e,i){if(n[Bl])return;let r;r=8&e.type?Cr(i):function jae(n,t){const e=n[oi],i=e.createComment(""),r=na(t,n);return Qp(e,dM(e,r),i,function cse(n,t){return n.nextSibling(t)}(e,r),!1),i}(t,e),n[Bl]=r},$3=()=>!1;class j3{constructor(t){this.queryList=t,this.matches=null}clone(){return new j3(this.queryList)}setDirty(){this.queryList.setDirty()}}class X3{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const i=null!==t.contentQueries?t.contentQueries[0]:e.length,r=[];for(let o=0;ot.trim())}(t):t}}class K3{constructor(t=[]){this.queries=t}elementStart(t,e){for(let i=0;i0)i.push(s[a/2]);else{const c=o[a+1],d=t[-l];for(let u=Oo;u(K(t),t.value);return e[G]=t,e}(n),i=e[G];return t?.equal&&(i.equal=t.equal),e.set=r=>Ui(i,r),e.update=r=>function li(n,t){He()||qt(),Ui(n,t(n.value))}(i,r),e.asReadonly=X7.bind(e),e}function X7(){const n=this[G];if(void 0===n.readonlyFn){const t=()=>this();t[G]=n,n.readonlyFn=t}return n.readonlyFn}function K7(n){return EM(n)&&"function"==typeof n.set}function yi(n){let t=function a9(n){return Object.getPrototypeOf(n.prototype).constructor}(n.type),e=!0;const i=[n];for(;t;){let r;if(Rl(n))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new ct(903,!1);r=t.\u0275dir}if(r){if(e){i.push(r);const s=n;s.inputs=TM(n.inputs),s.inputTransforms=TM(n.inputTransforms),s.declaredInputs=TM(n.declaredInputs),s.outputs=TM(n.outputs);const a=r.hostBindings;a&&gle(n,a);const l=r.viewQuery,c=r.contentQueries;if(l&&ple(n,l),c&&Ale(n,c),fle(n,r),Hu(n.outputs,r.outputs),Rl(r)&&r.data.animation){const d=n.data;d.animation=(d.animation||[]).concat(r.data.animation)}}const o=r.features;if(o)for(let s=0;s=0;i--){const r=n[i];r.hostVars=t+=r.hostVars,r.hostAttrs=Ap(r.hostAttrs,e=Ap(e,r.hostAttrs))}}(i)}function fle(n,t){for(const e in t.inputs){if(!t.inputs.hasOwnProperty(e)||n.inputs.hasOwnProperty(e))continue;const i=t.inputs[e];if(void 0!==i&&(n.inputs[e]=i,n.declaredInputs[e]=t.declaredInputs[e],null!==t.inputTransforms)){const r=Array.isArray(i)?i[0]:i;if(!t.inputTransforms.hasOwnProperty(r))continue;n.inputTransforms??={},n.inputTransforms[r]=t.inputTransforms[r]}}}function TM(n){return n===il?{}:n===dr?[]:n}function ple(n,t){const e=n.viewQuery;n.viewQuery=e?(i,r)=>{t(i,r),e(i,r)}:t}function Ale(n,t){const e=n.contentQueries;n.contentQueries=e?(i,r,o)=>{t(i,r,o),e(i,r,o)}:t}function gle(n,t){const e=n.hostBindings;n.hostBindings=e?(i,r)=>{t(i,r),e(i,r)}:t}function rs(n){const t=n.inputConfig,e={};for(const i in t)if(t.hasOwnProperty(i)){const r=t[i];Array.isArray(r)&&r[3]&&(e[i]=r[3])}n.inputTransforms=e}class Wp{}class xle{}class ik extends Wp{constructor(t,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new P7(this);const r=function qs(n,t){const e=n[iv]||null;if(!e&&!0===t)throw new Error(`Type ${co(n)} does not have '\u0275mod' property.`);return e}(t);this._bootstrapComponents=function $l(n){return n instanceof Function?n():n}(r.bootstrap),this._r3Injector=Lp(t,e,[{provide:Wp,useValue:this},{provide:b0,useValue:this.componentFactoryResolver},...i],co(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class rk extends xle{constructor(t){super(),this.moduleType=t}create(t){return new ik(this.moduleType,t,[])}}class u9 extends Wp{constructor(t){super(),this.componentFactoryResolver=new P7(this),this.instance=null;const e=new If([...t.providers,{provide:Wp,useValue:this},{provide:b0,useValue:this.componentFactoryResolver}],t.parent||Fg(),t.debugName,new Set(["environment"]));this.injector=e,t.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}let $p=(()=>{class n{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Ia(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function ok(n){return null!==n&&("function"==typeof n||"object"==typeof n)}function Kd(n,t,e){return n[t]=e}function os(n,t,e){return!Object.is(n[t],e)&&(n[t]=e,!0)}function jp(n,t,e,i){const r=os(n,t,e);return os(n,t+1,i)||r}function Ec(n,t,e,i,r,o){const s=jp(n,t,e,i);return jp(n,t+2,r,o)||s}function pt(n,t,e,i,r,o,s,a){const l=Dt(),c=ji(),d=n+vi,u=c.firstCreatePass?function Dle(n,t,e,i,r,o,s,a,l){const c=t.consts,d=A0(t,n,4,s||null,yc(c,a));E3(t,e,d,yc(c,l)),Hl(t,d);const u=d.tView=M3(2,d,i,r,o,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,d),u.queries=t.queries.embeddedTView(d)),d}(d,c,l,t,e,i,r,o,s):c.data[d];sl(u,!1);const h=f9(c,l,u,n);to()&&uM(c,l,h,u),Wn(h,l);const f=r7(h,l,h,u);return l[d]=f,mM(l,f),function H7(n,t,e){return $3(n,t,e)}(f,u,l),Zu(u)&&x3(c,l,u),null!=s&&C3(l,u,a),pt}let f9=function m9(n,t,e,i){return $s(!0),t[oi].createComment("")};function pi(n,t,e,i){const r=Dt();return os(r,Nl(),t)&&(ji(),jd(Kr(),r,n,t,e,i)),pi}function T0(n,t,e,i){return os(n,Nl(),e)?t+ci(e)+i:Di}function I0(n,t,e,i,r,o){const a=jp(n,wc(),e,r);return xc(2),a?t+ci(e)+i+ci(r)+o:Di}function LM(n,t){return n<<17|t<<2}function $f(n){return n>>17&32767}function pk(n){return 2|n}function Kp(n){return(131068&n)>>2}function Ak(n,t){return-131069&n|t<<2}function gk(n){return 1|n}function G9(n,t,e,i){const r=n[e+1],o=null===t;let s=i?$f(r):Kp(r),a=!1;for(;0!==s&&(!1===a||o);){const c=n[s+1];Ace(n[s],t)&&(a=!0,n[s+1]=i?gk(c):pk(c)),s=i?$f(c):Kp(c)}a&&(n[e+1]=i?pk(r):gk(r))}function Ace(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&ka(n,t)>=0}const Ps={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function W9(n){return n.substring(Ps.key,Ps.keyEnd)}function gce(n){return n.substring(Ps.value,Ps.valueEnd)}function $9(n,t){const e=Ps.textEnd;return e===t?-1:(t=Ps.keyEnd=function vce(n,t,e){for(;t32;)t++;return t}(n,Ps.key=t,e),O0(n,t,e))}function j9(n,t){const e=Ps.textEnd;let i=Ps.key=O0(n,t,e);return e===i?-1:(i=Ps.keyEnd=function yce(n,t,e){let i;for(;t=65&&(-33&i)<=90||i>=48&&i<=57);)t++;return t}(n,i,e),i=K9(n,i,e),i=Ps.value=O0(n,i,e),i=Ps.valueEnd=function wce(n,t,e){let i=-1,r=-1,o=-1,s=t,a=s;for(;s32&&(a=s),o=r,r=i,i=-33&l}return a}(n,i,e),K9(n,i,e))}function X9(n){Ps.key=0,Ps.keyEnd=0,Ps.value=0,Ps.valueEnd=0,Ps.textEnd=n.length}function O0(n,t,e){for(;t=0;e=j9(t,e))eH(n,W9(t),gce(t))}function cl(n){od(Ice,Yd,n,!0)}function Yd(n,t){for(let e=function _ce(n){return X9(n),$9(n,O0(n,0,Ps.textEnd))}(t);e>=0;e=$9(t,e))zo(n,W9(t),!0)}function rd(n,t,e,i){const r=Dt(),o=ji(),s=xc(2);o.firstUpdatePass&&J9(o,n,s,i),t!==Di&&os(r,s,t)&&tH(o,o.data[ks()],r,r[oi],n,r[s+1]=function Dce(n,t){return null==n||""===n||("string"==typeof t?n+=t:"object"==typeof n&&(n=co(Wl(n)))),n}(t,e),i,s)}function od(n,t,e,i){const r=ji(),o=xc(2);r.firstUpdatePass&&J9(r,null,o,i);const s=Dt();if(e!==Di&&os(s,o,e)){const a=r.data[ks()];if(iH(a,i)&&!Z9(r,o)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=Pd(l,e||"")),_k(r,a,s,e,i)}else!function Fce(n,t,e,i,r,o,s,a){r===Di&&(r=dr);let l=0,c=0,d=0=n.expandoStartIndex}function J9(n,t,e,i){const r=n.data;if(null===r[e+1]){const o=r[ks()],s=Z9(n,e);iH(o,i)&&null===t&&!s&&(t=!1),t=function Cce(n,t,e,i){const r=function kv(n){const t=si.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let o=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=Iy(e=bk(null,n,t,e,i),t.attrs,i),o=null);else{const s=t.directiveStylingLast;if(-1===s||n[s]!==r)if(e=bk(r,n,t,e,i),null===o){let l=function Mce(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Kp(i))return n[$f(i)]}(n,t,i);void 0!==l&&Array.isArray(l)&&(l=bk(null,n,t,l[1],i),l=Iy(l,t.attrs,i),function Ece(n,t,e,i){n[$f(e?t.classBindings:t.styleBindings)]=i}(n,t,i,l))}else o=function Sce(n,t,e){let i;const r=t.directiveEnd;for(let o=1+t.directiveStylingLast;o0)&&(c=!0)):d=e,r)if(0!==l){const h=$f(n[a+1]);n[i+1]=LM(h,a),0!==h&&(n[h+1]=Ak(n[h+1],i)),n[a+1]=function hce(n,t){return 131071&n|t<<17}(n[a+1],i)}else n[i+1]=LM(a,0),0!==a&&(n[a+1]=Ak(n[a+1],i)),a=i;else n[i+1]=LM(l,0),0===a?a=i:n[l+1]=Ak(n[l+1],i),l=i;c&&(n[i+1]=pk(n[i+1])),G9(n,d,i,!0),G9(n,d,i,!1),function pce(n,t,e,i,r){const o=r?n.residualClasses:n.residualStyles;null!=o&&"string"==typeof t&&ka(o,t)>=0&&(e[i+1]=gk(e[i+1]))}(t,d,n,i,o),s=LM(a,l),o?t.classBindings=s:t.styleBindings=s}(r,o,t,e,s,i)}}function bk(n,t,e,i,r){let o=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=n[r],c=Array.isArray(l),d=c?l[1]:l,u=null===d;let h=e[r+1];h===Di&&(h=u?dr:void 0);let f=u?qo(h,i):d===i?h:void 0;if(c&&!NM(f)&&(f=qo(l,i)),NM(f)&&(a=f,s))return a;const A=n[r+1];r=s?$f(A):Kp(A)}if(null!==t){let l=o?t.residualClasses:t.residualStyles;null!=l&&(a=qo(l,i))}return a}function NM(n){return void 0!==n}function iH(n,t){return!!(n.flags&(t?8:16))}function hh(n,t,e){od(zo,Yd,T0(Dt(),n,t,e),!0)}class Uce{destroy(t){}updateValue(t,e){}swap(t,e){const i=Math.min(t,e),r=Math.max(t,e),o=this.detach(r);if(r-i>1){const s=this.detach(i);this.attach(i,o),this.attach(r,s)}else this.attach(i,o)}move(t,e){this.attach(e,this.detach(t))}}function vk(n,t,e,i,r){return n===e&&Object.is(t,i)?1:Object.is(r(n,t),r(e,i))?-1:0}function yk(n,t,e,i){return!(void 0===t||!t.has(i)||(n.attach(e,t.get(i)),t.delete(i),0))}function sH(n,t,e,i,r){if(yk(n,t,i,e(i,r)))n.updateValue(i,r);else{const o=n.create(i,r);n.attach(i,o)}}function aH(n,t,e,i){const r=new Set;for(let o=t;o<=e;o++)r.add(i(o,n.at(o)));return r}class lH{constructor(){this.kvMap=new Map,this._vMap=void 0}has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;const e=this.kvMap.get(t);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(t,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,e){if(this.kvMap.has(t)){let i=this.kvMap.get(t);void 0===this._vMap&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,e)}else this.kvMap.set(t,e)}forEach(t){for(let[e,i]of this.kvMap)if(t(i,e),void 0!==this._vMap){const r=this._vMap;for(;r.has(i);)i=r.get(i),t(i,e)}}}function Tt(n,t,e){Xd("NgControlFlow");const i=Dt(),r=Nl(),o=wk(i,vi+n);if(os(i,r,t)){const a=T(null);try{if(k3(o,0),-1!==t){const l=xk(i[Jt],vi+t),c=_0(o,l.tView.ssrId);uy(o,dy(i,l,e,{dehydratedView:c}),0,g0(l,c))}}finally{T(a)}}else{const a=c7(o,0);void 0!==a&&(a[Xr]=e)}}class Vce{constructor(t,e,i){this.lContainer=t,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-Oo}}function qr(n,t){return t}class zce{constructor(t,e,i){this.hasEmptyBlock=t,this.trackByFn=e,this.liveCollection=i}}function Or(n,t,e,i,r,o,s,a,l,c,d,u,h){Xd("NgControlFlow");const f=void 0!==l,A=Dt(),y=a?s.bind(A[bo][Xr]):s,_=new zce(f,y);A[vi+n]=_,pt(n+1,t,e,i,r,o),f&&pt(n+2,l,c,d,u,h)}class qce extends Uce{constructor(t,e,i){super(),this.lContainer=t,this.hostLView=e,this.templateTNode=i,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Oo}at(t){return this.getLView(t)[Xr].$implicit}attach(t,e){const i=e[Pa];this.needsIndexUpdate||=t!==this.length,uy(this.lContainer,e,t,g0(this.templateTNode,i))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,function Gce(n,t){return sy(n,t)}(this.lContainer,t)}create(t,e){const i=_0(this.lContainer,this.templateTNode.tView.ssrId);return dy(this.hostLView,this.templateTNode,new Vce(this.lContainer,e,t),{dehydratedView:i})}destroy(t){cM(t[Jt],t)}updateValue(t,e){this.getLView(t)[Xr].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t{n.destroy(a)})}(s,n,o.trackByFn),s.updateIndexes(),o.hasEmptyBlock){const a=Nl(),l=0===s.length;if(os(i,a,l)){const c=e+2,d=wk(i,c);if(l){const u=xk(r,c),h=_0(d,u.tView.ssrId);uy(d,dy(i,u,void 0,{dehydratedView:h}),0,g0(u,h))}else k3(d,0)}}}finally{T(t)}}function wk(n,t){return n[t]}function xk(n,t){return Tp(n,t)}function D(n,t,e,i){const r=Dt(),o=ji(),s=vi+n,a=r[oi],l=o.firstCreatePass?function $ce(n,t,e,i,r,o){const s=t.consts,l=A0(t,n,2,i,yc(s,r));return E3(t,e,l,yc(s,o)),null!==l.attrs&&CM(l,l.attrs,!1),null!==l.mergedAttrs&&CM(l,l.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,l),l}(s,o,r,t,e,i):o.data[s],c=cH(o,r,l,a,t,n);r[s]=c;const d=Zu(l);return sl(l,!0),$6(a,c,l),!function My(n){return!(32&~n.flags)}(l)&&to()&&uM(o,r,c,l),0===function xD(){return si.lFrame.elementDepthCount}()&&Wn(c,r),function CD(){si.lFrame.elementDepthCount++}(),d&&(x3(o,r,l),w3(o,l,r)),null!==i&&C3(r,l),D}function U(){let n=Ar();qg()?Gg():(n=n.parent,sl(n,!1));const t=n;(function IC(n){return si.skipHydrationRootTNode===n})(t)&&function ED(){si.skipHydrationRootTNode=null}(),function MD(){si.lFrame.elementDepthCount--}();const e=ji();return e.firstCreatePass&&(Hl(e,n),Rg(n)&&e.queries.elementEnd(n)),null!=t.classesWithoutHost&&function ID(n){return!!(8&n.flags)}(t)&&_k(e,t,Dt(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function FD(n){return!!(16&n.flags)}(t)&&_k(e,t,Dt(),t.stylesWithoutHost,!1),U}function xe(n,t,e,i){return D(n,t,e,i),U(),xe}let cH=(n,t,e,i,r,o)=>($s(!0),lM(i,r,function ih(){return si.lFrame.currentNamespace}()));function UM(n,t,e){const i=Dt(),r=ji(),o=n+vi,s=r.firstCreatePass?function Kce(n,t,e,i,r){const o=t.consts,s=yc(o,i),a=A0(t,n,8,"ng-container",s);return null!==s&&CM(a,s,!0),E3(t,e,a,yc(o,r)),null!==t.queries&&t.queries.elementStart(t,a),a}(o,r,i,t,e):r.data[o];sl(s,!0);const a=dH(r,i,s,n);return i[o]=a,to()&&uM(r,i,a,s),Wn(a,i),Zu(s)&&(x3(r,i,s),w3(r,s,i)),null!=e&&C3(i,s),UM}function HM(){let n=Ar();const t=ji();return qg()?Gg():(n=n.parent,sl(n,!1)),t.firstCreatePass&&(Hl(t,n),Rg(n)&&t.queries.elementEnd(n)),HM}function L0(n,t,e){return UM(n,t,e),HM(),L0}let dH=(n,t,e,i)=>($s(!0),p3(t[oi],""));function Dn(){return Dt()}function Zd(n,t,e){const i=Dt();return os(i,Nl(),t)&&ll(ji(),Kr(),i,n,t,i[oi],e,!0),Zd}const Yp=void 0;var ede=["en",[["a","p"],["AM","PM"],Yp],[["AM","PM"],Yp,Yp],[["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"]],Yp,[["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"]],Yp,[["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}",Yp,"{1} 'at' {0}",Yp],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Jce(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let N0={};function Na(n){const t=function tde(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=fH(t);if(e)return e;const i=t.split("-")[0];if(e=fH(i),e)return e;if("en"===i)return ede;throw new ct(701,!1)}function fH(n){return n in N0||(N0[n]=Ti.ng&&Ti.ng.common&&Ti.ng.common.locales&&Ti.ng.common.locales[n]),N0[n]}var fo=function(n){return n[n.LocaleId=0]="LocaleId",n[n.DayPeriodsFormat=1]="DayPeriodsFormat",n[n.DayPeriodsStandalone=2]="DayPeriodsStandalone",n[n.DaysFormat=3]="DaysFormat",n[n.DaysStandalone=4]="DaysStandalone",n[n.MonthsFormat=5]="MonthsFormat",n[n.MonthsStandalone=6]="MonthsStandalone",n[n.Eras=7]="Eras",n[n.FirstDayOfWeek=8]="FirstDayOfWeek",n[n.WeekendRange=9]="WeekendRange",n[n.DateFormat=10]="DateFormat",n[n.TimeFormat=11]="TimeFormat",n[n.DateTimeFormat=12]="DateTimeFormat",n[n.NumberSymbols=13]="NumberSymbols",n[n.NumberFormats=14]="NumberFormats",n[n.CurrencyCode=15]="CurrencyCode",n[n.CurrencySymbol=16]="CurrencySymbol",n[n.CurrencyName=17]="CurrencyName",n[n.Currencies=18]="Currencies",n[n.Directionality=19]="Directionality",n[n.PluralCase=20]="PluralCase",n[n.ExtraData=21]="ExtraData",n}(fo||{});const U0="en-US";let mH=U0;function ze(n,t,e,i){const r=Dt(),o=ji(),s=Ar();return Ek(o,r,r[oi],s,n,t,i),ze}function Ek(n,t,e,i,r,o,s){const a=Zu(i),c=n.firstCreatePass&&a7(n),d=t[Xr],u=s7(t);let h=!0;if(3&i.type||s){const y=na(i,t),_=s?s(y):y,b=u.length,M=s?E=>s(Cr(E[i.index])):i.index;let C=null;if(!s&&a&&(C=function Yde(n,t,e,i){const r=n.cleanup;if(null!=r)for(let o=0;ol?a[l]:null}"string"==typeof s&&(o+=2)}return null}(n,t,r,i.index)),null!==C)(C.__ngLastListenerFn__||C).__ngNextListenerFn__=o,C.__ngLastListenerFn__=o,h=!1;else{o=QH(i,t,d,o,!1);const E=e.listen(_,r,o);u.push(o,E),c&&c.push(r,M,b,b+1)}}else o=QH(i,t,d,o,!1);const f=i.outputs;let A;if(h&&null!==f&&(A=f[r])){const y=A.length;if(y)for(let _=0;_-1?Ra(n.index,t):t);let l=VH(t,e,i,s),c=o.__ngNextListenerFn__;for(;c;)l=VH(t,e,c,s)&&l,c=c.__ngNextListenerFn__;return r&&!1===l&&s.preventDefault(),l}}function Le(n=1){return function Kg(n){return(si.lFrame.contextLView=function As(n,t){for(;n>0;)t=t[ho],n--;return t}(n,si.lFrame.contextLView))[Xr]}(n)}function Zde(n,t){let e=null;const i=function iC(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(!(1&e))return t[e+1]}return null}(n);for(let r=0;r($s(!0),function m3(n,t){return n.createText(t)}(t[oi],i));function br(n){return sn("",n,""),br}function sn(n,t,e){const i=Dt(),r=T0(i,n,t,e);return r!==Di&&uh(i,ks(),r),sn}function Jd(n,t,e,i,r){const o=Dt(),s=I0(o,n,t,e,i,r);return s!==Di&&uh(o,ks(),s),Jd}function Sk(n,t,e,i,r,o,s,a,l){const c=Dt(),d=function D0(n,t,e,i,r,o,s,a,l,c){const u=Ec(n,wc(),e,r,s,l);return xc(4),u?t+ci(e)+i+ci(r)+o+ci(s)+a+ci(l)+c:Di}(c,n,t,e,i,r,o,s,a,l);return d!==Di&&uh(c,ks(),d),Sk}function ad(n,t,e){K7(t)&&(t=t());const i=Dt();return os(i,Nl(),t)&&ll(ji(),Kr(),i,n,t,i[oi],e,!1),ad}function eu(n,t){const e=K7(n);return e&&n.set(t),e}function ld(n,t){const e=Dt(),i=ji(),r=Ar();return Ek(i,e,e[oi],r,n,t),ld}function Tk(n,t,e,i,r){if(n=Gn(n),Array.isArray(n))for(let o=0;o>20;if(Ku(n)||!n.multi){const f=new Yc(c,r,$),A=Fk(l,t,r?d:d+h,u);-1===A?(qv(Rp(a,s),o,l),Ik(o,n,t.length),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(f),s.push(f)):(e[A]=f,s[A]=f)}else{const f=Fk(l,t,d+h,u),A=Fk(l,t,d,d+h),_=A>=0&&e[A];if(r&&!_||!r&&!(f>=0&&e[f])){qv(Rp(a,s),o,l);const b=function gue(n,t,e,i,r){const o=new Yc(n,e,$);return o.multi=[],o.index=t,o.componentProviders=0,fV(o,r,i&&!e),o}(r?Aue:pue,e.length,r,i,c);!r&&_&&(e[A].providerFactory=b),Ik(o,n,t.length,0),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(b),s.push(b)}else Ik(o,n,f>-1?f:A,fV(e[r?A:f],c,!r&&i));!r&&i&&_&&e[A].componentProviders++}}}function Ik(n,t,e,i){const r=Ku(t),o=function tD(n){return!!n.useClass}(t);if(r||o){const l=(o?Gn(t.useClass):t).prototype.ngOnDestroy;if(l){const c=n.destroyHooks||(n.destroyHooks=[]);if(!r&&t.multi){const d=c.indexOf(e);-1===d?c.push(e,[i,l]):c[d+1].push(i,l)}else c.push(e,l)}}}function fV(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function Fk(n,t,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function mue(n,t,e){const i=ji();if(i.firstCreatePass){const r=Rl(n);Tk(e,i.data,i.blueprint,r,!0),Tk(t,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,t)}}let _ue=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Tf(0,e.type),r=i.length>0?function h9(n,t,e=null){return new u9({providers:n,parent:t,debugName:e,runEnvironmentInitializers:!0}).injector}([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,r)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Ft({token:n,providedIn:"environment",factory:()=>new n(ve(Ba))})}}return n})();function Nr(n){Xd("NgStandalone"),n.getStandaloneInjector=t=>t.get(_ue).getOrCreateStandaloneInjector(n)}function GM(n,t,e){const i=n.\u0275cmp;i.directiveDefs=Xu(t,!1),i.pipeDefs=Xu(e,!0)}function fh(n,t,e){const i=Ws()+n,r=Dt();return r[i]===Di?Kd(r,i,e?t.call(e):t()):function Cy(n,t){return n[t]}(r,i)}function ul(n,t,e,i,r){return gV(Dt(),Ws(),n,t,e,i,r)}function Oy(n,t){const e=n[t];return e===Di?void 0:e}function AV(n,t,e,i,r,o){const s=t+e;return os(n,s,r)?Kd(n,s+1,o?i.call(o,r):i(r)):Oy(n,s+1)}function gV(n,t,e,i,r,o,s){const a=t+e;return jp(n,a,r,o)?Kd(n,a+2,s?i.call(s,r,o):i(r,o)):Oy(n,a+2)}function qe(n,t){const e=ji();let i;const r=n+vi;e.firstCreatePass?(i=function Sue(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks??=[]).push(r,i.onDestroy)):i=e.data[r];const o=i.factory||(i.factory=Il(i.type)),a=Aa($);try{const l=e0(!1),c=o();return e0(l),function nue(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,Dt(),r,c),c}finally{Aa(a)}}function rt(n,t,e){const i=n+vi,r=Dt(),o=Bf(r,i);return Ly(r,i)?AV(r,Ws(),t,o.transform,e,o):o.transform(e)}function Io(n,t,e,i){const r=n+vi,o=Dt(),s=Bf(o,r);return Ly(o,r)?gV(o,Ws(),t,s.transform,e,i,s):s.transform(e,i)}function yV(n,t,e,i,r,o){const s=n+vi,a=Dt(),l=Bf(a,s);return Ly(a,s)?function bV(n,t,e,i,r,o,s,a,l){const c=t+e;return Ec(n,c,r,o,s,a)?Kd(n,c+4,l?i.call(l,r,o,s,a):i(r,o,s,a)):Oy(n,c+4)}(a,Ws(),t,l.transform,e,i,r,o,l):l.transform(e,i,r,o)}function Ly(n,t){return n[Jt].data[t].pure}function jf(n,t){return gM(n,t)}const VV=new dt(""),XM=new dt("");let Uk,Lk=(()=>{class n{constructor(e,i,r){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Uk||(function xhe(n){Uk=n}(r),r.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{In.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),e()},i)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:r})}whenStable(e,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,r){return[]}static{this.\u0275fac=function(i){return new(i||n)(ve(In),ve(Nk),ve(XM))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Nk=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Uk?.findTestabilityInTree(this,e,i)??null}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"platform"})}}return n})();function KM(n){return!!n&&"function"==typeof n.then}function QV(n){return!!n&&"function"==typeof n.subscribe}const zV=new dt("");let Hk=(()=>{class n{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=Qt(zV,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const r of this.appInits){const o=r();if(KM(o))e.push(o);else if(QV(o)){const s=new Promise((a,l)=>{o.subscribe({complete:a,error:l})});e.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const qV=new dt("");function $V(n,t){return Array.isArray(t)?t.reduce($V,n):{...n,...t}}let Xf=(()=>{class n{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qt(oh),this.afterRenderEffectManager=Qt(by),this.externalTestViews=new Set,this.beforeRender=new Ln,this.afterTick=new Ln,this.componentTypes=[],this.components=[],this.isStable=Qt($p).hasPendingTasks.pipe(Qe(e=>!e)),this._injector=Qt(Ba)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const r=e instanceof w7;if(!this._injector.get(Hk).done)throw!r&&function ju(n){const t=Vi(n)||es(n)||Go(n);return null!==t&&t.standalone}(e),new ct(405,!1);let s;s=r?e:this._injector.get(b0).resolveComponentFactory(e),this.componentTypes.push(s.componentType);const a=function Che(n){return n.isBoundToModule}(s)?void 0:this._injector.get(Wp),c=s.create(is.NULL,[],i||s.selector,a),d=c.location.nativeElement,u=c.injector.get(VV,null);return u?.registerApplication(d),c.onDestroy(()=>{this.detachView(c.hostView),YM(this.components,c),u?.unregisterApplication(d)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(e){if(this._runningTick)throw new ct(101,!1);const i=T(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(e)}catch(r){this.internalErrorHandler(r)}finally{this.afterTick.next(),this._runningTick=!1,T(i)}}detectChangesInAttachedViews(e){let i=0;const r=this.afterRenderEffectManager;for(;;){if(i===h7)throw new ct(103,!1);if(e){const o=0===i;this.beforeRender.next(o);for(let{_lView:s,notifyErrorHandler:a}of this._views)Ehe(s,o,a)}if(i++,r.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>Vk(o))&&(r.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>Vk(o))))break}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;YM(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(qV,[]);[...this._bootstrapListeners,...i].forEach(r=>r(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>YM(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ct(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function YM(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function Ehe(n,t,e){!t&&!Vk(n)||function She(n,t,e){let i;e?(i=0,n[Hn]|=1024):i=64&n[Hn]?0:1,AM(n,t,i)}(n,e,t)}function Vk(n){return eh(n)}let Dhe=(()=>{class n{constructor(){this.zone=Qt(In),this.applicationRef=Qt(Xf)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function khe(){const n=Qt(In),t=Qt(Oa);return e=>n.runOutsideAngular(()=>t.handleError(e))}let Phe=(()=>{class n{constructor(){this.subscription=new Xn,this.initialized=!1,this.zone=Qt(In),this.pendingTasks=Qt($p)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{In.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{In.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const tu=new dt("",{providedIn:"root",factory:()=>Qt(tu,sr.Optional|sr.SkipSelf)||function Rhe(){return typeof $localize<"u"&&$localize.locale||U0}()}),Qk=new dt("");let YV=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const r=function kae(n="zone.js",t){return"noop"===n?new T7:"zone.js"===n?new In(t):n}(i?.ngZone,function KV(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:n?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:n?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return r.run(()=>{const o=function Mle(n,t,e){return new ik(n,t,e)}(e.moduleType,this.injector,function XV(n){return[{provide:In,useFactory:n},{provide:Nd,multi:!0,useFactory:()=>{const t=Qt(Dhe,{optional:!0});return()=>t.initialize()}},{provide:Nd,multi:!0,useFactory:()=>{const t=Qt(Phe);return()=>{t.initialize()}}},{provide:oh,useFactory:khe}]}(()=>r)),s=o.injector.get(Oa,null);return r.runOutsideAngular(()=>{const a=r.onError.subscribe({next:l=>{s.handleError(l)}});o.onDestroy(()=>{YM(this._modules,o),a.unsubscribe()})}),function WV(n,t,e){try{const i=e();return KM(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(s,r,()=>{const a=o.injector.get(Hk);return a.runInitializers(),a.donePromise.then(()=>(function pH(n){"string"==typeof n&&(mH=n.toLowerCase().replace(/_/g,"-"))}(o.injector.get(tu,U0)||U0),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,i=[]){const r=$V({},i);return function Fhe(n,t,e){const i=new rk(e);return Promise.resolve(i)}(0,0,e).then(o=>this.bootstrapModuleFactory(o,r))}_moduleDoBootstrap(e){const i=e.injector.get(Xf);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new ct(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ct(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Qk,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(i){return new(i||n)(ve(is))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"platform"})}}return n})(),Kf=null;const ZV=new dt("");function JV(n,t,e=[]){const i=`Platform: ${t}`,r=new dt(i);return(o=[])=>{let s=zk();if(!s||s.injector.get(ZV,!1)){const a=[...e,...o,{provide:r,useValue:!0}];n?n(a):function Nhe(n){if(Kf&&!Kf.get(ZV,!1))throw new ct(400,!1);(function GV(){!function wn(n){Lt=n}(()=>{throw new ct(600,!1)})})(),Kf=n;const t=n.get(YV);(function tQ(n){n.get(r6,null)?.forEach(e=>e())})(n)}(function eQ(n=[],t){return is.create({name:t,providers:[{provide:Av,useValue:"platform"},{provide:Qk,useValue:new Set([()=>Kf=null])},...n]})}(a,i))}return function Uhe(n){const t=zk();if(!t)throw new ct(401,!1);return t}()}}function zk(){return Kf?.get(YV)??null}let vo=(()=>{class n{static{this.__NG_ELEMENT_ID__=Vhe}}return n})();function Vhe(n){return function Qhe(n,t,e){if(Pl(n)&&!e){const i=Ra(n.index,t);return new my(i,i)}return 47&n.type?new my(t[bo],t):null}(Ar(),Dt(),!(16&~n))}class cQ{constructor(){}supports(t){return t instanceof Map||ok(t)}create(){return new Khe}}class Khe{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ok(t)))throw new ct(900,!1)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(i,r)=>{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const o=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,o)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const o=r._prev,s=r._next;return o&&(o._next=s),s&&(s._prev=o),r._next=null,r._prev=null,r}const i=new Yhe(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class Yhe{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function uQ(){return new tE([new cQ])}let tE=(()=>{class n{static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:uQ})}constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||uQ()),deps:[[n,new Ef,new qu]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(i)return i;throw new ct(901,!1)}}return n})();const efe=JV(null,"core",[]);let tfe=(()=>{class n{constructor(e){}static{this.\u0275fac=function(i){return new(i||n)(ve(Xf))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function Jn(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}function ba(n,t=NaN){return isNaN(parseFloat(n))||isNaN(Number(n))?t:Number(n)}function BQ(n,t){Xd("NgSignals");const e=function ge(n){const t=Object.create(mt);t.computation=n;const e=()=>{if(ie(t),K(t),t.value===Re)throw t.error;return t.value};return e[G]=t,e}(n);return t?.equal&&(e[G].equal=t.equal),e}function PQ(n){const t=T(null);try{return n()}finally{T(t)}}const Dfe=new dt("",{providedIn:"root",factory:()=>Qt(kfe)});let kfe=(()=>{class n{static{this.\u0275prov=Ft({token:n,providedIn:"root",factory:()=>new Bfe})}}return n})();class Bfe{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qt($p),this.taskId=null}scheduleEffect(t){if(this.enqueue(t),null===this.taskId){const e=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(e),this.taskId=null})}}enqueue(t){const e=t.creationZone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(t)||(this.queuedEffectCount++,i.add(t))}flush(){for(;this.queuedEffectCount>0;)for(const[t,e]of this.queues)null===t?this.flushQueue(e):t.run(()=>this.flushQueue(e))}flushQueue(t){for(const e of t)t.delete(e),this.queuedEffectCount--,e.run()}}class Pfe{constructor(t,e,i,r,o,s){this.scheduler=t,this.effectFn=e,this.creationZone=i,this.injector=o,this.watcher=function jt(n,t,e){const i=Object.create(Xt);e&&(i.consumerAllowSignalWrites=!0),i.fn=n,i.schedule=t;const r=l=>{i.cleanupFn=l};return i.ref={notify:()=>Te(i),run:()=>{if(null===i.fn)return;if(function V(){return F}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(i.dirty=!1,i.hasRun&&!ke(i))return;i.hasRun=!0;const l=Xe(i);try{i.cleanupFn(),i.cleanupFn=En,i.fn(r)}finally{Je(i,l)}},cleanup:()=>i.cleanupFn(),destroy:()=>function s(l){(function o(l){return null===l.fn&&null===l.schedule})(l)||(gt(l),l.cleanupFn(),l.fn=null,l.schedule=null,l.cleanupFn=En)}(i),[G]:i},i.ref}(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}runEffect(t){try{this.effectFn(t)}catch(e){this.injector.get(Oa,null,{optional:!0})?.handleError(e)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let OQ=null;function Yf(){return OQ}class Ofe{}const Li=new dt("");let LQ=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:()=>Qt(Lfe),providedIn:"platform"})}}return n})(),Lfe=(()=>{class n extends LQ{constructor(){super(),this._doc=Qt(Li),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Yf().getBaseHref(this._doc)}onPopState(e){const i=Yf().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Yf().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,r){this._history.pushState(e,i,r)}replaceState(e,i,r){this._history.replaceState(e,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:()=>new n,providedIn:"platform"})}}return n})();function NQ(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function UQ(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function Jp(n){return n&&"?"!==n[0]?"?"+n:n}let Zk=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:()=>Qt(Ufe),providedIn:"root"})}}return n})();const Nfe=new dt("");let Ufe=(()=>{class n extends Zk{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Qt(Li).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return NQ(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+Jp(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,o){const s=this.prepareExternalUrl(r+Jp(o));this._platformLocation.pushState(e,i,s)}replaceState(e,i,r,o){const s=this.prepareExternalUrl(r+Jp(o));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(LQ),ve(Nfe,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Jk=(()=>{class n{constructor(e){this._subject=new Fn,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Qfe(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(UQ(HQ(i))),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+Jp(i))}normalize(e){return n.stripTrailingSlash(function Vfe(n,t){if(!n||!t.startsWith(n))return t;const e=t.substring(n.length);return""===e||["/",";","?","#"].includes(e[0])?e:t}(this._basePath,HQ(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._locationStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Jp(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Jp(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}static{this.normalizeQueryParams=Jp}static{this.joinWithSlash=NQ}static{this.stripTrailingSlash=UQ}static{this.\u0275fac=function(i){return new(i||n)(ve(Zk))}}static{this.\u0275prov=Ft({token:n,factory:()=>function Hfe(){return new Jk(ve(Zk))}(),providedIn:"root"})}}return n})();function HQ(n){return n.replace(/\/index.html$/,"")}var aE=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(aE||{}),q0=function(n){return n[n.Zero=0]="Zero",n[n.One=1]="One",n[n.Two=2]="Two",n[n.Few=3]="Few",n[n.Many=4]="Many",n[n.Other=5]="Other",n}(q0||{});const bs={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function Sc(n,t){const e=Na(n),i=e[fo.NumberSymbols][t];if(typeof i>"u"){if(t===bs.CurrencyDecimal)return e[fo.NumberSymbols][bs.Decimal];if(t===bs.CurrencyGroup)return e[fo.NumberSymbols][bs.Group]}return i}const Kfe=function hH(n){return Na(n)[fo.PluralCase]},pme=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function aB(n){const t=parseInt(n);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+n);return t}let lB=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:function(i){let r=null;return i?r=new i:(o=ve(tu),r=new Mme(o)),r;var o},providedIn:"root"})}}return n})();let Mme=(()=>{class n extends lB{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(Kfe(i||this.locale)(e)){case q0.Zero:return"zero";case q0.One:return"one";case q0.Two:return"two";case q0.Few:return"few";case q0.Many:return"many";default:return"other"}}static{this.\u0275fac=function(i){return new(i||n)(ve(tu))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function XQ(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,o]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}const cB=/\s+/,KQ=[];let nu=(()=>{class n{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=KQ,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(cB):KQ}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(cB):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const r=this.stateMap.get(e);void 0!==r?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],r=e[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(cB).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(zp))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngClass",""]],inputs:{klass:[Ct.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return n})(),eA=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new Ime,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){JQ("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){JQ("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||n)($(oa),$(jl))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return n})();class Ime{constructor(){this.$implicit=null,this.ngIf=null}}function JQ(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${co(t)}'.`)}class dB{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let hB=(()=>{class n{constructor(e){this._localization=e,this._caseViews={}}set ngPlural(e){this._updateView(e)}addCase(e,i){this._caseViews[e]=i}_updateView(e){this._clearViews();const r=function jQ(n,t,e,i){let r=`=${n}`;if(t.indexOf(r)>-1||(r=e.getPluralCategory(n,i),t.indexOf(r)>-1))return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${n}"`)}(e,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[r])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(e){e&&(this._activeView=e,this._activeView.create())}static{this.\u0275fac=function(i){return new(i||n)($(lB))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}return n})(),ez=(()=>{class n{constructor(e,i,r,o){this.value=e;const s=!isNaN(Number(e));o.addCase(s?`=${e}`:e,new dB(r,i))}static{this.\u0275fac=function(i){return new(i||n)(zl("ngPluralCase"),$(jl),$(oa),$(hB,1))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngPluralCase",""]],standalone:!0})}}return n})(),G0=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,o]=e.split("."),s=-1===r.indexOf("-")?void 0:qf.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,o?`${i}${o}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,r,s)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(tE),$(zp))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return n})(),zy=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(e,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static{this.\u0275fac=function(i){return new(i||n)($(oa))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[xr]})}}return n})();function dd(n,t){return new ct(2100,!1)}class Bme{createSubscription(t,e){return PQ(()=>t.subscribe({next:e,error:i=>{throw i}}))}dispose(t){PQ(()=>t.unsubscribe())}}class Pme{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}}const Rme=new Pme,Ome=new Bme;let Kn=(()=>{class n{constructor(e){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(KM(e))return Rme;if(QV(e))return Ome;throw dd()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static{this.\u0275fac=function(i){return new(i||n)($(vo,16))}}static{this.\u0275pipe=ur({name:"async",type:n,pure:!1,standalone:!0})}}return n})();const Nme=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;let tz=(()=>{class n{transform(e){if(null==e)return null;if("string"!=typeof e)throw dd();return e.replace(Nme,i=>i[0].toUpperCase()+i.slice(1).toLowerCase())}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"titlecase",type:n,pure:!0,standalone:!0})}}return n})(),_E=(()=>{class n{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=nz}transform(e,i=nz){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const r=this.differ.diff(e),o=i!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(s=>{this.keyValues.push(function jme(n,t){return{key:n,value:t}}(s.key,s.currentValue))})),(r||o)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static{this.\u0275fac=function(i){return new(i||n)($(tE,16))}}static{this.\u0275pipe=ur({name:"keyvalue",type:n,pure:!1,standalone:!0})}}return n})();function nz(n,t){const e=n.key,i=t.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class n{constructor(e){this._locale=e}transform(e,i,r){if(!function fB(n){return!(null==n||""===n||n!=n)}(e))return null;r||=this._locale;try{return function yme(n,t,e){return function oB(n,t,e,i,r,o,s=!1){let a="",l=!1;if(isFinite(n)){let c=function xme(n){let i,r,o,s,a,t=Math.abs(n)+"",e=0;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(o=t.search(/e/i))>0?(r<0&&(r=o),r+=+t.slice(o+1),t=t.substring(0,o)):r<0&&(r=t.length),o=0;"0"===t.charAt(o);o++);if(o===(a=t.length))i=[0],r=1;else{for(a--;"0"===t.charAt(a);)a--;for(r-=o,i=[],s=0;o<=a;o++,s++)i[s]=Number(t.charAt(o))}return r>22&&(i=i.splice(0,21),e=r-1,r=1),{digits:i,exponent:e,integerLen:r}}(n);s&&(c=function wme(n){if(0===n.digits[0])return n;const t=n.digits.length-n.integerLen;return n.exponent?n.exponent+=2:(0===t?n.digits.push(0,0):1===t&&n.digits.push(0),n.integerLen+=2),n}(c));let d=t.minInt,u=t.minFrac,h=t.maxFrac;if(o){const M=o.match(pme);if(null===M)throw new Error(`${o} is not a valid digit info`);const C=M[1],E=M[3],L=M[5];null!=C&&(d=aB(C)),null!=E&&(u=aB(E)),null!=L?h=aB(L):null!=E&&u>h&&(h=u)}!function Cme(n,t,e){if(t>e)throw new Error(`The minimum number of digits after fraction (${t}) is higher than the maximum (${e}).`);let i=n.digits,r=i.length-n.integerLen;const o=Math.min(Math.max(t,r),e);let s=o+n.integerLen,a=i[s];if(s>0){i.splice(Math.max(n.integerLen,s));for(let u=s;u=5)if(s-1<0){for(let u=0;u>s;u--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[s-1]++;for(;r=c?A.pop():l=!1),h>=10?1:0},0);d&&(i.unshift(d),n.integerLen++)}(c,u,h);let f=c.digits,A=c.integerLen;const y=c.exponent;let _=[];for(l=f.every(M=>!M);A0?_=f.splice(A,f.length):(_=f,f=[0]);const b=[];for(f.length>=t.lgSize&&b.unshift(f.splice(-t.lgSize,f.length).join(""));f.length>t.gSize;)b.unshift(f.splice(-t.gSize,f.length).join(""));f.length&&b.unshift(f.join("")),a=b.join(Sc(e,i)),_.length&&(a+=Sc(e,r)+_.join("")),y&&(a+=Sc(e,bs.Exponential)+"+"+y)}else a=Sc(e,bs.Infinity);return a=n<0&&!l?t.negPre+a+t.negSuf:t.posPre+a+t.posSuf,a}(n,function sB(n,t="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],o=i[1],s=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],a=s[0],l=s[1]||"";e.posPre=a.substring(0,a.indexOf("#"));for(let d=0;d{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();const iz="browser";function rz(n){return"server"===n}class oz{}class Ipe extends Ofe{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class AB extends Ipe{static makeCurrent(){!function Rfe(n){OQ??=n}(new AB)}onAndCancel(t,e,i){return t.addEventListener(e,i),()=>{t.removeEventListener(e,i)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function Fpe(){return $y=$y||document.querySelector("base"),$y?$y.getAttribute("href"):null}();return null==e?null:function Dpe(n){return new URL(n,document.baseURI).pathname}(e)}resetBaseElement(){$y=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return XQ(document.cookie,t)}}let $y=null,Bpe=(()=>{class n{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const gB=new dt("");let mz=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>{r.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(o=>o.supports(e)),!i)throw new ct(5101,!1);return this._eventNameToPlugin.set(e,i),i}static{this.\u0275fac=function(i){return new(i||n)(ve(gB),ve(In))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();class pz{constructor(t){this._doc=t}}const _B="ng-app-id";let Az=(()=>{class n{constructor(e,i,r,o={}){this.doc=e,this.appId=i,this.nonce=r,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=rz(o),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(r=>r.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${_B}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(e,i){const r=this.styleRef;if(r.has(e)){const o=r.get(e);return o.usage+=i,o.usage}return r.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const r=this.styleNodesInDOM,o=r?.get(i);if(o?.parentNode===e)return r.delete(i),o.removeAttribute(_B),o;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(_B,this.appId),e.appendChild(s),s}}addStyleToHost(e,i){const r=this.getStyleElement(e,i),o=this.styleRef,s=o.get(i)?.elements;s?s.push(r):o.set(i,{elements:[r],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(Zv),ve(GD,8),ve(Qf))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const bB={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},vB=/%COMP%/g,Lpe=new dt("",{providedIn:"root",factory:()=>!0});function _z(n,t){return t.map(e=>e.replace(vB,n))}let yB=(()=>{class n{constructor(e,i,r,o,s,a,l,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=rz(a),this.defaultRenderer=new wB(e,s,l,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===ga.ShadowDom&&(i={...i,encapsulation:ga.Emulated});const r=this.getOrCreateRenderer(e,i);return r instanceof vz?r.applyToHost(e):r instanceof xB&&r.applyStyles(),r}getOrCreateRenderer(e,i){const r=this.rendererByCompId;let o=r.get(i.id);if(!o){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,u=this.platformIsServer;switch(i.encapsulation){case ga.Emulated:o=new vz(l,c,i,this.appId,d,s,a,u);break;case ga.ShadowDom:return new Vpe(l,c,e,i,s,a,this.nonce,u);default:o=new xB(l,c,i,d,s,a,u)}r.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||n)(ve(mz),ve(Az),ve(Zv),ve(Lpe),ve(Li),ve(Qf),ve(In),ve(GD))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();class wB{constructor(t,e,i,r){this.eventManager=t,this.doc=e,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(t,e){return e?this.doc.createElementNS(bB[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){(bz(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(bz(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?this.doc.querySelector(t):t;if(!i)throw new ct(-5104,!1);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const o=bB[r];o?t.setAttributeNS(o,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=bB[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(qf.DashCase|qf.Important)?t.style.setProperty(e,i,r&qf.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&qf.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){null!=t&&(t[e]=i)}setValue(t,e){t.nodeValue=e}listen(t,e,i){if("string"==typeof t&&!(t=Yf().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${e}`);return this.eventManager.addEventListener(t,e,this.decoratePreventDefault(i))}decoratePreventDefault(t){return e=>{if("__ngUnwrap__"===e)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(e)):t(e))&&e.preventDefault()}}}function bz(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class Vpe extends wB{constructor(t,e,i,r,o,s,a,l){super(t,o,s,l),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=_z(r.id,r.styles);for(const d of c){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=d,this.shadowRoot.appendChild(u)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,i){return super.insertBefore(this.nodeOrShadowRoot(t),e,i)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class xB extends wB{constructor(t,e,i,r,o,s,a,l){super(t,o,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r,this.styles=l?_z(l,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class vz extends xB{constructor(t,e,i,r,o,s,a,l){const c=r+"-"+i.id;super(t,e,i,o,s,a,l,c),this.contentAttr=function Npe(n){return"_ngcontent-%COMP%".replace(vB,n)}(c),this.hostAttr=function Upe(n){return"_nghost-%COMP%".replace(vB,n)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}let Qpe=(()=>{class n extends pz{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const yz=["alt","control","meta","shift"],zpe={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},qpe={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let Gpe=(()=>{class n extends pz{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const o=n.parseEventName(i),s=n.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Yf().onAndCancel(e,o.domEventName,s))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const o=n._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),yz.forEach(c=>{const d=i.indexOf(c);d>-1&&(i.splice(d,1),s+=c+".")}),s+=o,0!=i.length||0===o.length)return null;const l={};return l.domEventName=r,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let r=zpe[e.key]||e.key,o="";return i.indexOf("code.")>-1&&(r=e.code,o="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),yz.forEach(s=>{s!==r&&(0,qpe[s])(e)&&(o+=s+".")}),o+=r,o===i)}static eventCallback(e,i,r){return o=>{n.matchEventFullKeyCode(o,e)&&r.runGuarded(()=>i(o))}}static _normalizeKey(e){return"esc"===e?"escape":e}static{this.\u0275fac=function(i){return new(i||n)(ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const Xpe=JV(efe,"browser",[{provide:Qf,useValue:iz},{provide:r6,useValue:function Wpe(){AB.makeCurrent()},multi:!0},{provide:Li,useFactory:function jpe(){return function Jre(n){qD=n}(document),document},deps:[]}]),Kpe=new dt(""),Cz=[{provide:XM,useClass:class kpe{addToWindow(t){Ti.getAngularTestability=(i,r=!0)=>{const o=t.findTestabilityInTree(i,r);if(null==o)throw new ct(5103,!1);return o},Ti.getAllAngularTestabilities=()=>t.getAllTestabilities(),Ti.getAllAngularRootElements=()=>t.getAllRootElements(),Ti.frameworkStabilizers||(Ti.frameworkStabilizers=[]),Ti.frameworkStabilizers.push(i=>{const r=Ti.getAllAngularTestabilities();let o=r.length;const s=function(){o--,0==o&&i()};r.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?Yf().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:VV,useClass:Lk,deps:[In,Nk,XM]},{provide:Lk,useClass:Lk,deps:[In,Nk,XM]}],Mz=[{provide:Av,useValue:"root"},{provide:Oa,useFactory:function $pe(){return new Oa},deps:[]},{provide:gB,useClass:Qpe,multi:!0,deps:[Li,In,Qf]},{provide:gB,useClass:Gpe,multi:!0,deps:[Li]},yB,Az,mz,{provide:U3,useExisting:yB},{provide:oz,useClass:Bpe,deps:[]},[]];let Ez=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:Zv,useValue:e.appId}]}}static{this.\u0275fac=function(i){return new(i||n)(ve(Kpe,12))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[...Mz,...Cz],imports:[mn,tfe]})}}return n})();function Fz(n){return n&&Yt(n.schedule)}function MB(n){return n[n.length-1]}function EB(n){return Yt(MB(n))?n.pop():void 0}function Xy(n){return Fz(MB(n))?n.pop():void 0}function Zf(n){return this instanceof Zf?(this.v=n,this):new Zf(n)}function Pz(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function FB(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(o){e[o]=n[o]&&function(s){return new Promise(function(a,l){!function r(o,s,a,l){Promise.resolve(l).then(function(c){o({value:c,done:a})},s)}(a,l,(s=n[o](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const DB=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function Rz(n){return Yt(n?.then)}function Oz(n){return Yt(n[Nu])}function Lz(n){return Symbol.asyncIterator&&Yt(n?.[Symbol.asyncIterator])}function Nz(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Uz=function xAe(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Hz(n){return Yt(n?.[Uz])}function Vz(n){return function Bz(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(n,t||[]),o=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(h){i[h]&&(r[h]=function(f){return new Promise(function(A,y){o.push([h,f,A,y])>1||a(h,f)})})}function a(h,f){try{!function l(h){h.value instanceof Zf?Promise.resolve(h.value.v).then(c,d):u(o[0][2],h)}(i[h](f))}catch(A){u(o[0][3],A)}}function c(h){a("next",h)}function d(h){a("throw",h)}function u(h,f){h(f),o.shift(),o.length&&a(o[0][0],o[0][1])}}(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Zf(e.read());if(r)return yield Zf(void 0);yield yield Zf(i)}}finally{e.releaseLock()}})}function Qz(n){return Yt(n?.getReader)}function ls(n){if(n instanceof Ji)return n;if(null!=n){if(Oz(n))return function CAe(n){return new Ji(t=>{const e=n[Nu]();if(Yt(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(DB(n))return function MAe(n){return new Ji(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,_o)})}(n);if(Lz(n))return zz(n);if(Hz(n))return function SAe(n){return new Ji(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(Qz(n))return function TAe(n){return zz(Vz(n))}(n)}throw Nz(n)}function zz(n){return new Ji(t=>{(function IAe(n,t){var e,i,r,o;return function Dz(n,t,e,i){return new(e||(e=Promise))(function(o,s){function a(d){try{c(i.next(d))}catch(u){s(u)}}function l(d){try{c(i.throw(d))}catch(u){s(u)}}function c(d){d.done?o(d.value):function r(o){return o instanceof e?o:new e(function(s){s(o)})}(d.value).then(a,l)}c((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=Pz(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(s){r={error:s}}finally{try{i&&!i.done&&(o=e.return)&&(yield o.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function Ah(n,t,e,i=0,r=!1){const o=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(o),!r)return o}function kB(n,t=0){return fe((e,i)=>{e.subscribe(De(i,r=>Ah(i,n,()=>i.next(r),t),()=>Ah(i,n,()=>i.complete(),t),r=>Ah(i,n,()=>i.error(r),t)))})}function qz(n,t=0){return fe((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function Gz(n,t){if(!n)throw new Error("Iterable cannot be null");return new Ji(e=>{Ah(e,t,()=>{const i=n[Symbol.asyncIterator]();Ah(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function tA(n,t){return t?function RAe(n,t){if(null!=n){if(Oz(n))return function FAe(n,t){return ls(n).pipe(qz(t),kB(t))}(n,t);if(DB(n))return function kAe(n,t){return new Ji(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(Rz(n))return function DAe(n,t){return ls(n).pipe(qz(t),kB(t))}(n,t);if(Lz(n))return Gz(n,t);if(Hz(n))return function BAe(n,t){return new Ji(e=>{let i;return Ah(e,t,()=>{i=n[Uz](),Ah(e,t,()=>{let r,o;try{({value:r,done:o}=i.next())}catch(s){return void e.error(s)}o?e.complete():e.next(r)},0,!0)}),()=>Yt(i?.return)&&i.return()})}(n,t);if(Qz(n))return function PAe(n,t){return Gz(Vz(n),t)}(n,t)}throw Nz(n)}(n,t):ls(n)}function hl(...n){return tA(n,Xy(n))}function Jf(n,t,e=1/0){return Yt(t)?Jf((i,r)=>Qe((o,s)=>t(i,o,r,s))(ls(n(i,r))),e):("number"==typeof t&&(e=t),fe((i,r)=>function OAe(n,t,e,i,r,o,s,a){const l=[];let c=0,d=0,u=!1;const h=()=>{u&&!l.length&&!c&&t.complete()},f=y=>c{o&&t.next(y),c++;let _=!1;ls(e(y,d++)).subscribe(De(t,b=>{r?.(b),o?f(b):t.next(b)},()=>{_=!0},void 0,()=>{if(_)try{for(c--;l.length&&cA(b)):A(b)}h()}catch(b){t.error(b)}}))};return n.subscribe(De(t,f,()=>{u=!0,h()})),()=>{a?.()}}(i,r,n,e)))}function qi(n,t){return fe((e,i)=>{let r=0;e.subscribe(De(i,o=>n.call(t,o,r++)&&i.next(o)))})}function BB(n){return fe((t,e)=>{try{t.subscribe(e)}finally{e.add(n)}})}function gh(n,t){return fe((e,i)=>{let r=null,o=0,s=!1;const a=()=>s&&!r&&i.complete();e.subscribe(De(i,l=>{r?.unsubscribe();let c=0;const d=o++;ls(n(l,d)).subscribe(r=De(i,u=>i.next(t?t(l,u,d,c++):u),()=>{r=null,a()}))},()=>{s=!0,a()}))})}class wE{}class xE{}class Ic{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),o=r.toLowerCase(),s=e.slice(i+1).trim();this.maybeSetNormalizedName(r,o),this.headers.has(o)?this.headers.get(o).push(s):this.headers.set(o,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof Ic?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new Ic;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Ic?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const o=t.value;if(o){let s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===o.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(t,e){const i=(Array.isArray(e)?e:[e]).map(o=>o.toString()),r=t.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(t,r)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class NAe{encodeKey(t){return Wz(t)}encodeValue(t){return Wz(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const HAe=/%(\d[a-f0-9])/gi,VAe={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Wz(n){return encodeURIComponent(n).replace(HAe,(t,e)=>VAe[e]??t)}function CE(n){return`${n}`}class em{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new NAe,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function UAe(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const o=r.indexOf("="),[s,a]=-1==o?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,o)),t.decodeValue(r.slice(o+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],r=Array.isArray(i)?i.map(CE):[CE(i)];this.map.set(e,r)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(o=>{e.push({param:i,value:o,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new em({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(CE(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf(CE(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class QAe{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function $z(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function jz(n){return typeof Blob<"u"&&n instanceof Blob}function Xz(n){return typeof FormData<"u"&&n instanceof FormData}class Ky{constructor(t,e,i,r){let o;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function zAe(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,o=r):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new Ic,this.context??=new QAe,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":ah.set(f,t.setHeaders[f]),c)),t.setParams&&(d=Object.keys(t.setParams).reduce((h,f)=>h.set(f,t.setParams[f]),d)),new Ky(e,i,s,{params:d,headers:c,context:u,reportProgress:l,responseType:r,withCredentials:a,transferCache:o})}}var tm=function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n}(tm||{});class PB{constructor(t,e=Yy.Ok,i="OK"){this.headers=t.headers||new Ic,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class ME extends PB{constructor(t={}){super(t),this.type=tm.ResponseHeader}clone(t={}){return new ME({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class nA extends PB{constructor(t={}){super(t),this.type=tm.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new nA({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class W0 extends PB{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}var Yy=function(n){return n[n.Continue=100]="Continue",n[n.SwitchingProtocols=101]="SwitchingProtocols",n[n.Processing=102]="Processing",n[n.EarlyHints=103]="EarlyHints",n[n.Ok=200]="Ok",n[n.Created=201]="Created",n[n.Accepted=202]="Accepted",n[n.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",n[n.NoContent=204]="NoContent",n[n.ResetContent=205]="ResetContent",n[n.PartialContent=206]="PartialContent",n[n.MultiStatus=207]="MultiStatus",n[n.AlreadyReported=208]="AlreadyReported",n[n.ImUsed=226]="ImUsed",n[n.MultipleChoices=300]="MultipleChoices",n[n.MovedPermanently=301]="MovedPermanently",n[n.Found=302]="Found",n[n.SeeOther=303]="SeeOther",n[n.NotModified=304]="NotModified",n[n.UseProxy=305]="UseProxy",n[n.Unused=306]="Unused",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n[n.BadRequest=400]="BadRequest",n[n.Unauthorized=401]="Unauthorized",n[n.PaymentRequired=402]="PaymentRequired",n[n.Forbidden=403]="Forbidden",n[n.NotFound=404]="NotFound",n[n.MethodNotAllowed=405]="MethodNotAllowed",n[n.NotAcceptable=406]="NotAcceptable",n[n.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",n[n.RequestTimeout=408]="RequestTimeout",n[n.Conflict=409]="Conflict",n[n.Gone=410]="Gone",n[n.LengthRequired=411]="LengthRequired",n[n.PreconditionFailed=412]="PreconditionFailed",n[n.PayloadTooLarge=413]="PayloadTooLarge",n[n.UriTooLong=414]="UriTooLong",n[n.UnsupportedMediaType=415]="UnsupportedMediaType",n[n.RangeNotSatisfiable=416]="RangeNotSatisfiable",n[n.ExpectationFailed=417]="ExpectationFailed",n[n.ImATeapot=418]="ImATeapot",n[n.MisdirectedRequest=421]="MisdirectedRequest",n[n.UnprocessableEntity=422]="UnprocessableEntity",n[n.Locked=423]="Locked",n[n.FailedDependency=424]="FailedDependency",n[n.TooEarly=425]="TooEarly",n[n.UpgradeRequired=426]="UpgradeRequired",n[n.PreconditionRequired=428]="PreconditionRequired",n[n.TooManyRequests=429]="TooManyRequests",n[n.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",n[n.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",n[n.InternalServerError=500]="InternalServerError",n[n.NotImplemented=501]="NotImplemented",n[n.BadGateway=502]="BadGateway",n[n.ServiceUnavailable=503]="ServiceUnavailable",n[n.GatewayTimeout=504]="GatewayTimeout",n[n.HttpVersionNotSupported=505]="HttpVersionNotSupported",n[n.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",n[n.InsufficientStorage=507]="InsufficientStorage",n[n.LoopDetected=508]="LoopDetected",n[n.NotExtended=510]="NotExtended",n[n.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",n}(Yy||{});function RB(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,transferCache:n.transferCache}}let Zy=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let o;if(e instanceof Ky)o=e;else{let l,c;l=r.headers instanceof Ic?r.headers:new Ic(r.headers),r.params&&(c=r.params instanceof em?r.params:new em({fromObject:r.params})),o=new Ky(e,i,void 0!==r.body?r.body:null,{headers:l,context:r.context,params:c,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const s=hl(o).pipe(function LAe(n,t){return Yt(t)?Jf(n,t,1):Jf(n,1)}(l=>this.handler.handle(l)));if(e instanceof Ky||"events"===r.observe)return s;const a=s.pipe(qi(l=>l instanceof nA));switch(r.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(Qe(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(Qe(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(Qe(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(Qe(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new em).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,RB(r,i))}post(e,i,r={}){return this.request("POST",e,RB(r,i))}put(e,i,r={}){return this.request("PUT",e,RB(r,i))}static{this.\u0275fac=function(i){return new(i||n)(ve(wE))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Yz(n,t){return t(n)}function XAe(n,t){return(e,i)=>t.intercept(e,{handle:r=>n(r,i)})}const YAe=new dt(""),Jy=new dt(""),Zz=new dt(""),Jz=new dt("");function ZAe(){let n=null;return(t,e)=>{null===n&&(n=(Qt(YAe,{optional:!0})??[]).reduceRight(XAe,Yz));const i=Qt($p),r=i.add();return n(t,e).pipe(BB(()=>i.remove(r)))}}let eq=(()=>{class n extends wE{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=Qt($p);const r=Qt(Jz,{optional:!0});this.backend=r??e}handle(e){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(Jy),...this.injector.get(Zz,[])]));this.chain=r.reduceRight((o,s)=>function KAe(n,t,e){return(i,r)=>function vv(n,t){n instanceof If&&n.assertNotDestroyed();const i=jc(n),r=Aa(void 0);try{return t()}finally{jc(i),Aa(r)}}(e,()=>t(i,o=>n(o,r)))}(o,s,this.injector),Yz)}const i=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(BB(()=>this.pendingTasks.remove(i)))}static{this.\u0275fac=function(i){return new(i||n)(ve(xE),ve(Ba))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const ige=/^\)\]\}',?\n/;let nq=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ct(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?tA(i.\u0275loadImpl()):hl(null)).pipe(gh(()=>new Ji(o=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((y,_)=>s.setRequestHeader(y,_.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const y=e.detectContentTypeHeader();null!==y&&s.setRequestHeader("Content-Type",y)}if(e.responseType){const y=e.responseType.toLowerCase();s.responseType="json"!==y?y:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const y=s.statusText||"OK",_=new Ic(s.getAllResponseHeaders()),b=function rge(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(s)||e.url;return l=new ME({headers:_,status:s.status,statusText:y,url:b}),l},d=()=>{let{headers:y,status:_,statusText:b,url:M}=c(),C=null;_!==Yy.NoContent&&(C=typeof s.response>"u"?s.responseText:s.response),0===_&&(_=C?Yy.Ok:0);let E=_>=200&&_<300;if("json"===e.responseType&&"string"==typeof C){const L=C;C=C.replace(ige,"");try{C=""!==C?JSON.parse(C):null}catch(N){C=L,E&&(E=!1,C={error:N,text:C})}}E?(o.next(new nA({body:C,headers:y,status:_,statusText:b,url:M||void 0})),o.complete()):o.error(new W0({error:C,headers:y,status:_,statusText:b,url:M||void 0}))},u=y=>{const{url:_}=c(),b=new W0({error:y,status:s.status||0,statusText:s.statusText||"Unknown Error",url:_||void 0});o.error(b)};let h=!1;const f=y=>{h||(o.next(c()),h=!0);let _={type:tm.DownloadProgress,loaded:y.loaded};y.lengthComputable&&(_.total=y.total),"text"===e.responseType&&s.responseText&&(_.partialText=s.responseText),o.next(_)},A=y=>{let _={type:tm.UploadProgress,loaded:y.loaded};y.lengthComputable&&(_.total=y.total),o.next(_)};return s.addEventListener("load",d),s.addEventListener("error",u),s.addEventListener("timeout",u),s.addEventListener("abort",u),e.reportProgress&&(s.addEventListener("progress",f),null!==a&&s.upload&&s.upload.addEventListener("progress",A)),s.send(a),o.next({type:tm.Sent}),()=>{s.removeEventListener("error",u),s.removeEventListener("abort",u),s.removeEventListener("load",d),s.removeEventListener("timeout",u),e.reportProgress&&(s.removeEventListener("progress",f),null!==a&&s.upload&&s.upload.removeEventListener("progress",A)),s.readyState!==s.DONE&&s.abort()}})))}static{this.\u0275fac=function(i){return new(i||n)(ve(oz))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const NB=new dt(""),iq=new dt("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),rq=new dt("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class oq{}let age=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=XQ(e,this.cookieName),this.lastCookieString=e),this.lastToken}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(Qf),ve(iq))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function lge(n,t){const e=n.url.toLowerCase();if(!Qt(NB)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=Qt(oq).getToken(),r=Qt(rq);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),t(n)}var nm=function(n){return n[n.Interceptors=0]="Interceptors",n[n.LegacyInterceptors=1]="LegacyInterceptors",n[n.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",n[n.NoXsrfProtection=3]="NoXsrfProtection",n[n.JsonpSupport=4]="JsonpSupport",n[n.RequestsMadeViaParent=5]="RequestsMadeViaParent",n[n.Fetch=6]="Fetch",n}(nm||{});function iA(n,t){return{\u0275kind:n,\u0275providers:t}}function cge(...n){const t=[Zy,nq,eq,{provide:wE,useExisting:eq},{provide:xE,useExisting:nq},{provide:Jy,useValue:lge,multi:!0},{provide:NB,useValue:!0},{provide:oq,useClass:age}];for(const e of n)t.push(...e.\u0275providers);return function _p(n){return{\u0275providers:n}}(t)}const sq=new dt("");let aq=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[cge(iA(nm.LegacyInterceptors,[{provide:sq,useFactory:ZAe},{provide:Jy,useExisting:sq,multi:!0}]))]})}}return n})();const{isArray:Age}=Array,{getPrototypeOf:gge,prototype:_ge,keys:bge}=Object;function pq(n){if(1===n.length){const t=n[0];if(Age(t))return{args:t,keys:null};if(function vge(n){return n&&"object"==typeof n&&gge(n)===_ge}(t)){const e=bge(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}const{isArray:yge}=Array;function UB(n){return Qe(t=>function wge(n,t){return yge(t)?n(...t):n(t)}(n,t))}function Aq(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}let _q=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static{this.\u0275fac=function(i){return new(i||n)($(zp),$(Nn))}}static{this.\u0275dir=Wt({type:n})}}return n})(),rA=(()=>{class n extends _q{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,features:[yi]})}}return n})();const js=new dt(""),Cge={provide:js,useExisting:ei(()=>im),multi:!0},Ege=new dt("");let im=(()=>{class n extends _q{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function Mge(){const n=Yf()?Yf().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static{this.\u0275fac=function(i){return new(i||n)($(zp),$(Nn),$(Ege,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){1&i&&ze("input",function(s){return r._handleInput(s.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(s){return r._compositionEnd(s.target.value)})},features:[ui([Cge]),yi]})}}return n})();function rm(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function vq(n){return null!=n&&"number"==typeof n.length}const ys=new dt(""),om=new dt(""),Sge=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class HB{static min(t){return function yq(n){return t=>{if(rm(t.value)||rm(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(rm(t.value)||rm(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}(t)}static required(t){return xq(t)}static requiredTrue(t){return function Cq(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function Mq(n){return rm(n.value)||Sge.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function Eq(n){return t=>rm(t.value)||!vq(t.value)?null:t.value.lengthvq(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}(t)}static pattern(t){return function Tq(n){if(!n)return SE;let t,e;return"string"==typeof n?(e="","^"!==n.charAt(0)&&(e+="^"),e+=n,"$"!==n.charAt(n.length-1)&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(rm(i.value))return null;const r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}(t)}static nullValidator(t){return null}static compose(t){return Pq(t)}static composeAsync(t){return Rq(t)}}function xq(n){return rm(n.value)?{required:!0}:null}function SE(n){return null}function Iq(n){return null!=n}function Fq(n){return KM(n)?tA(n):n}function Dq(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function kq(n,t){return t.map(e=>e(n))}function Bq(n){return n.map(t=>function Tge(n){return!n.validate}(t)?t:e=>t.validate(e))}function Pq(n){if(!n)return null;const t=n.filter(Iq);return 0==t.length?null:function(e){return Dq(kq(e,t))}}function VB(n){return null!=n?Pq(Bq(n)):null}function Rq(n){if(!n)return null;const t=n.filter(Iq);return 0==t.length?null:function(e){return function gq(...n){const t=EB(n),{args:e,keys:i}=pq(n),r=new Ji(o=>{const{length:s}=e;if(!s)return void o.complete();const a=new Array(s);let l=s,c=s;for(let d=0;d{u||(u=!0,c--),a[d]=h},()=>l--,void 0,()=>{(!l||!u)&&(c||o.next(i?Aq(i,a):a),o.complete())}))}});return t?r.pipe(UB(t)):r}(kq(e,t).map(Fq)).pipe(Qe(Dq))}}function QB(n){return null!=n?Rq(Bq(n)):null}function Oq(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function Lq(n){return n._rawValidators}function Nq(n){return n._rawAsyncValidators}function zB(n){return n?Array.isArray(n)?n:[n]:[]}function TE(n,t){return Array.isArray(n)?n.includes(t):n===t}function Uq(n,t){const e=zB(t);return zB(n).forEach(r=>{TE(e,r)||e.push(r)}),e}function Hq(n,t){return zB(t).filter(e=>!TE(n,e))}class Vq{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=VB(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=QB(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class Qa extends Vq{get formDirective(){return null}get path(){return null}}class iu extends Vq{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Qq{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let $0=(()=>{class n extends Qq{constructor(e){super(e)}static{this.\u0275fac=function(i){return new(i||n)($(iu,2))}}static{this.\u0275dir=Wt({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&Un("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[yi]})}}return n})();const e1="VALID",FE="INVALID",j0="PENDING",t1="DISABLED";function WB(n){return(DE(n)?n.validators:n)||null}function $B(n,t){return(DE(t)?t.asyncValidators:n)||null}function DE(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class jB{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===e1}get invalid(){return this.status===FE}get pending(){return this.status==j0}get disabled(){return this.status===t1}get enabled(){return this.status!==t1}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Uq(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Uq(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Hq(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Hq(t,this._rawAsyncValidators))}hasValidator(t){return TE(this._rawValidators,t)}hasAsyncValidator(t){return TE(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=j0,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=t1,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=e1,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===e1||this.status===j0)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?t1:e1}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=j0,this._hasOwnPendingAsyncValidator=!0;const e=Fq(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){let e=t;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Fn,this.statusChanges=new Fn}_calculateStatus(){return this._allControlsDisabled()?t1:this.errors?FE:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(j0)?j0:this._anyControlsHaveStatus(FE)?FE:e1}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){DE(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function Bge(n){return Array.isArray(n)?VB(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function Pge(n){return Array.isArray(n)?QB(n):n||null}(this._rawAsyncValidators)}}class XB extends jB{constructor(t,e,i){super(WB(e),$B(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){(function Gq(n,t,e){n._forEachChild((i,r)=>{if(void 0===e[r])throw new ct(1002,"")})})(this,0,t),Object.keys(t).forEach(i=>{(function qq(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new ct(1e3,"");if(!i[e])throw new ct(1001,"")})(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{const r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,o)=>{i=e(i,r,o)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const oA=new dt("CallSetDisabledState",{providedIn:"root",factory:()=>n1}),n1="always";function r1(n,t,e=n1){KB(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function Lge(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&Wq(n,t)})}(n,t),function Uge(n,t){const e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function Nge(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&Wq(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function Oge(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function BE(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),RE(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function PE(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function KB(n,t){const e=Lq(n);null!==t.validator?n.setValidators(Oq(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=Nq(n);null!==t.asyncValidator?n.setAsyncValidators(Oq(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();PE(t._rawValidators,r),PE(t._rawAsyncValidators,r)}function RE(n,t){let e=!1;if(null!==n){if(null!==t.validator){const r=Lq(n);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==t.validator);o.length!==r.length&&(e=!0,n.setValidators(o))}}if(null!==t.asyncValidator){const r=Nq(n);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==t.asyncValidator);o.length!==r.length&&(e=!0,n.setAsyncValidators(o))}}}const i=()=>{};return PE(t._rawValidators,i),PE(t._rawAsyncValidators,i),e}function Wq(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function $q(n,t){KB(n,t)}function ZB(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}function jq(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function JB(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(o=>{o.constructor===im?e=o:function Qge(n){return Object.getPrototypeOf(n.constructor)===rA}(o)?i=o:r=o}),r||i||e||null}const qge={provide:Qa,useExisting:ei(()=>s1)},o1=Promise.resolve();let s1=(()=>{class n extends Qa{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Fn,this.form=new XB({},VB(e),QB(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){o1.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),r1(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){o1.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){o1.then(()=>{const i=this._findContainer(e.path),r=new XB({});$q(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){o1.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){o1.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,jq(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static{this.\u0275fac=function(i){return new(i||n)($(ys,10),$(om,10),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&ze("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{options:[Ct.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ui([qge]),yi]})}}return n})();function Xq(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function Kq(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const eP=class extends jB{constructor(t=null,e,i){super(WB(e),$B(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),DE(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=Kq(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Xq(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Xq(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){Kq(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Yq=eP,$ge={provide:iu,useExisting:ei(()=>X0)},eG=Promise.resolve();let X0=(()=>{class n extends iu{constructor(e,i,r,o,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new eP,this._registered=!1,this.name="",this.update=new Fn,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=JB(0,o)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),ZB(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){r1(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){eG.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=0!==i&&Jn(i);eG.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function kE(n,t){return[...t.path,n]}(e,this._parent):[e]}static{this.\u0275fac=function(i){return new(i||n)($(Qa,9),$(ys,10),$(om,10),$(js,10),$(vo,8),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[Ct.None,"disabled","isDisabled"],model:[Ct.None,"ngModel","model"],options:[Ct.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[ui([$ge]),yi,xr]})}}return n})();const tP=new dt(""),Jge={provide:iu,useExisting:ei(()=>OE)};let OE=(()=>{class n extends iu{set isDisabled(e){}static{this._ngModelWarningSentOnce=!1}constructor(e,i,r,o,s){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=s,this.update=new Fn,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=JB(0,r)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&BE(i,this,!1),r1(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}ZB(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&BE(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static{this.\u0275fac=function(i){return new(i||n)($(ys,10),$(om,10),$(js,10),$(tP,8),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","formControl",""]],inputs:{form:[Ct.None,"formControl","form"],isDisabled:[Ct.None,"disabled","isDisabled"],model:[Ct.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[ui([Jge]),yi,xr]})}}return n})();const e0e={provide:Qa,useExisting:ei(()=>a1)};let a1=(()=>{class n extends Qa{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Fn,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(RE(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return r1(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){BE(e.control||null,e,!1),function zge(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,jq(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,r=this.form.get(e.path);i!==r&&(BE(i||null,e),(n=>n instanceof eP)(r)&&(r1(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);$q(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function Hge(n,t){return RE(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){KB(this.form,this),this._oldForm&&RE(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||n)($(ys,10),$(om,10),$(oA,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&ze("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{form:[Ct.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ui([e0e]),yi,xr]})}}return n})(),sA=(()=>{class n{constructor(){this._validator=SE}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):SE,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,features:[xr]})}}return n})();const h0e={provide:ys,useExisting:ei(()=>LE),multi:!0};let LE=(()=>{class n extends sA{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Jn,this.createValidator=e=>xq}enabled(e){return e}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){2&i&&pi("required",r._enabled?"":null)},inputs:{required:"required"},features:[ui([h0e]),yi]})}}return n})(),AG=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),ud=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:oA,useValue:e.callSetDisabledState??n1}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[AG]})}}return n})(),l1=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:tP,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:oA,useValue:e.callSetDisabledState??n1}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[AG]})}}return n})();function gG(n=1/0){return Jf(ma,n)}const K0=new Ji(n=>n.complete());function Yl(...n){const t=Xy(n),e=function tAe(n,t){return"number"==typeof MB(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?ls(i[0]):gG(e)(tA(i,t)):K0}function _G(){return fe((n,t)=>{n.subscribe(De(t,tl))})}class _h{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){return vG(this,t)}do(t,e,i){const{kind:r,value:o,error:s}=this;return"N"===r?t?.(o):"E"===r?e?.(s):i?.()}accept(t,e,i){var r;return Yt(null===(r=t)||void 0===r?void 0:r.next)?this.observe(t):this.do(t,e,i)}toObservable(){const{kind:t,value:e,error:i}=this,r="N"===t?hl(e):"E"===t?function bG(n,t){const e=Yt(n)?n:()=>n,i=r=>r.error(e());return new Ji(t?r=>t.schedule(i,0,r):i)}(()=>i):"C"===t?K0:0;if(!r)throw new TypeError(`Unexpected notification kind ${t}`);return r}static createNext(t){return new _h("N",t)}static createError(t){return new _h("E",void 0,t)}static createComplete(){return _h.completeNotification}}function vG(n,t){var e,i,r;const{kind:o,value:s,error:a}=n;if("string"!=typeof o)throw new TypeError('Invalid notification, missing "kind"');"N"===o?null===(e=t.next)||void 0===e||e.call(t,s):"E"===o?null===(i=t.error)||void 0===i||i.call(t,a):null===(r=t.complete)||void 0===r||r.call(t)}function sP(n){return fe((t,e)=>{let o,i=null,r=!1;i=t.subscribe(De(e,void 0,void 0,s=>{o=ls(n(s,sP(n)(t))),i?(i.unsubscribe(),i=null,o.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,o.subscribe(e))})}function yG(n,t,e,i){return fe((r,o)=>{let s;t&&"function"!=typeof t?({duration:e,element:s,connector:i}=t):s=t;const a=new Map,l=A=>{a.forEach(A),A(o)},c=A=>l(y=>y.error(A));let d=0,u=!1;const h=new yt(o,A=>{try{const y=n(A);let _=a.get(y);if(!_){a.set(y,_=i?i():new Ln);const b=function f(A,y){const _=new Ji(b=>{d++;const M=y.subscribe(b);return()=>{M.unsubscribe(),0==--d&&u&&h.unsubscribe()}});return _.key=A,_}(y,_);if(o.next(b),e){const M=De(_,()=>{_.complete(),M?.unsubscribe()},void 0,void 0,()=>a.delete(y));h.add(ls(e(b)).subscribe(M))}}_.next(s?s(A):A)}catch(y){c(y)}},()=>l(A=>A.complete()),c,()=>a.clear(),()=>(u=!0,0===d));r.subscribe(h)})}function wG(n,t){return t?e=>e.pipe(wG((i,r)=>ls(n(i,r)).pipe(Qe((o,s)=>t(i,o,r,s))))):fe((e,i)=>{let r=0,o=null,s=!1;e.subscribe(De(i,a=>{o||(o=De(i,void 0,()=>{o=null,s&&i.complete()}),ls(n(a,r++)).subscribe(o))},()=>{s=!0,!o&&i.complete()}))})}function $o(n){return n<=0?()=>K0:fe((t,e)=>{let i=0;t.subscribe(De(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}_h.completeNotification=new _h("C");class x0e extends Xn{constructor(t,e){super()}schedule(t,e=0){return this}}const UE={setInterval(n,t,...e){const{delegate:i}=UE;return i?.setInterval?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=UE;return(t?.clearInterval||clearInterval)(n)},delegate:void 0};class HE extends x0e{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){var i;if(this.closed)return this;this.state=t;const r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,i=0){return UE.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&UE.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(o){i=!0,r=o||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,yr(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}const aP={now:()=>(aP.delegate||Date).now(),delegate:void 0};class c1{constructor(t,e=c1.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}c1.now=aP.now;class VE extends c1{constructor(t,e=c1.now){super(t,e),this.actions=[],this._active=!1}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const E0e=new class M0e extends VE{}(class C0e extends HE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,i=0){return null!=i&&i>0||null==i&&this.delay>0?super.requestAsyncId(t,e,i):(t.flush(this),0)}});function hd(...n){const t=EB(n);return fe((e,i)=>{const r=n.length,o=new Array(r);let s=n.map(()=>!1),a=!1;for(let l=0;l{o[l]=c,!a&&!s[l]&&(s[l]=!0,(a=s.every(ma))&&(s=null))},tl));e.subscribe(De(i,l=>{if(a){const c=[l,...o];i.next(t?t(...c):c)}}))})}function d1(n,t=ma){return n=n??F0e,fe((e,i)=>{let r,o=!0;e.subscribe(De(i,s=>{const a=t(s);(o||!n(r,a))&&(o=!1,r=a,i.next(s))}))})}function F0e(n,t){return n===t}const u1={};function hn(n,t){if(u1[n]=(u1[n]||0)+1,"function"==typeof t)return lP(n,(...i)=>({...t(...i),type:n}));switch(t?t._as:"empty"){case"empty":return lP(n,()=>({type:n}));case"props":return lP(n,i=>({...i,type:n}));default:throw new Error("Unexpected config.")}}function lP(n,t){return Object.defineProperty(t,"type",{value:n,writable:!1})}const MG="@ngrx/store/init";let aA=(()=>{class n extends Ia{constructor(){super({type:MG})}next(e){if("function"==typeof e)throw new TypeError("\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().");if(typeof e>"u")throw new TypeError("Actions must be objects");if(typeof e.type>"u")throw new TypeError("Actions must have a type property");super.next(e)}complete(){}ngOnDestroy(){super.complete()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const O0e=[aA],dP=new dt("@ngrx/store Internal Root Guard"),EG=new dt("@ngrx/store Internal Initial State"),uP=new dt("@ngrx/store Initial State"),SG=new dt("@ngrx/store Reducer Factory"),TG=new dt("@ngrx/store Internal Reducer Factory Provider"),IG=new dt("@ngrx/store Initial Reducers"),hP=new dt("@ngrx/store Internal Initial Reducers"),FG=new dt("@ngrx/store Store Features"),DG=new dt("@ngrx/store Internal Store Reducers"),fP=new dt("@ngrx/store Internal Feature Reducers"),kG=new dt("@ngrx/store Internal Feature Configs"),mP=new dt("@ngrx/store Internal Store Features"),BG=new dt("@ngrx/store Internal Feature Reducers Token"),pP=new dt("@ngrx/store Feature Reducers"),PG=new dt("@ngrx/store User Provided Meta Reducers"),QE=new dt("@ngrx/store Meta Reducers"),RG=new dt("@ngrx/store Internal Resolved Meta Reducers"),OG=new dt("@ngrx/store User Runtime Checks Config"),LG=new dt("@ngrx/store Internal User Runtime Checks Config"),h1=new dt("@ngrx/store Internal Runtime Checks"),f1=new dt("@ngrx/store Check if Action types are unique");function lA(n,t={}){const e=Object.keys(n),i={};for(let o=0;oo(r),e(t))}}function HG(n,t){return Array.isArray(t)&&t.length>0&&(n=UG.apply(null,[...t,n])),(e,i)=>{const r=n(e);return(o,s)=>r(o=void 0===o?i:o,s)}}new dt("@ngrx/store Root Store Provider"),new dt("@ngrx/store Feature State Provider");class zE extends Ji{}class VG extends aA{}let m1=(()=>{class n extends Ia{get currentReducers(){return this.reducers}constructor(e,i,r,o){super(o(r,i)),this.dispatcher=e,this.initialState=i,this.reducers=r,this.reducerFactory=o}addFeature(e){this.addFeatures([e])}addFeatures(e){const i=e.reduce((r,{reducers:o,reducerFactory:s,metaReducers:a,initialState:l,key:c})=>{const d="function"==typeof o?function N0e(n){const t=Array.isArray(n)&&n.length>0?UG(...n):e=>e;return(e,i)=>(e=t(e),(r,o)=>e(r=void 0===r?i:r,o))}(a)(o,l):HG(s,a)(o,l);return r[c]=d,r},{});this.addReducers(i)}removeFeature(e){this.removeFeatures([e])}removeFeatures(e){this.removeReducers(e.map(i=>i.key))}addReducer(e,i){this.addReducers({[e]:i})}addReducers(e){this.reducers={...this.reducers,...e},this.updateReducers(Object.keys(e))}removeReducer(e){this.removeReducers([e])}removeReducers(e){e.forEach(i=>{this.reducers=function L0e(n,t){return Object.keys(n).filter(e=>e!==t).reduce((e,i)=>Object.assign(e,{[i]:n[i]}),{})}(this.reducers,i)}),this.updateReducers(e)}updateReducers(e){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:"@ngrx/store/update-reducers",features:e})}ngOnDestroy(){this.complete()}static{this.\u0275fac=function(i){return new(i||n)(ve(VG),ve(uP),ve(IG),ve(SG))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const H0e=[m1,{provide:zE,useExisting:m1},{provide:VG,useExisting:aA}];let p1=(()=>{class n extends Ln{ngOnDestroy(){this.complete()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const V0e=[p1];class QG extends Ji{}let Zr=(()=>{class n extends Ia{static{this.INIT=MG}constructor(e,i,r,o){super(o);const c=e.pipe(kB(E0e)).pipe(hd(i)).pipe(function T0e(n,t){return fe(function S0e(n,t,e,i,r){return(o,s)=>{let a=e,l=t,c=0;o.subscribe(De(s,d=>{const u=c++;l=a?n(l,d,u):(a=!0,d),i&&s.next(l)},r&&(()=>{a&&s.next(l),s.complete()})))}}(n,t,arguments.length>=2,!0))}(Q0e,{state:o}));this.stateSubscription=c.subscribe(({state:d,action:u})=>{this.next(d),r.next(u)}),this.state=function CG(n,t){const e=!t?.manualCleanup;e&&!t?.injector&&bp();const i=e?t?.injector?.get(qd)??Qt(qd):null;let r;r=tk(t?.requireSync?{kind:0}:{kind:1,value:t?.initialValue});const o=n.subscribe({next:s=>r.set({kind:1,value:s}),error:s=>{if(t?.rejectErrors)throw s;r.set({kind:2,error:s})}});return i?.onDestroy(o.unsubscribe.bind(o)),BQ(()=>{const s=r();switch(s.kind){case 1:return s.value;case 2:throw s.error;case 0:throw new ct(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}(this,{manualCleanup:!0,requireSync:!0})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}static{this.\u0275fac=function(i){return new(i||n)(ve(aA),ve(zE),ve(p1),ve(uP))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Q0e(n={state:void 0},[t,e]){const{state:i}=n;return{state:e(i,t),action:t}}const z0e=[Zr,{provide:QG,useExisting:Zr}];let $t=(()=>{class n extends Ji{constructor(e,i,r){super(),this.actionsObserver=i,this.reducerManager=r,this.source=e,this.state=e.state}select(e,...i){return G0e.call(null,e,...i)(this)}selectSignal(e,i){return BQ(()=>e(this.state()),i)}lift(e){const i=new n(this,this.actionsObserver,this.reducerManager);return i.operator=e,i}dispatch(e){this.actionsObserver.next(e)}next(e){this.actionsObserver.next(e)}error(e){this.actionsObserver.error(e)}complete(){this.actionsObserver.complete()}addReducer(e,i){this.reducerManager.addReducer(e,i)}removeReducer(e){this.reducerManager.removeReducer(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(QG),ve(aA),ve(m1))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const q0e=[$t];function G0e(n,t,...e){return function(r){let o;if("string"==typeof n){const s=[t,...e].filter(Boolean);o=r.pipe(function I0e(...n){const t=n.length;if(0===t)throw new Error("list of properties cannot be empty.");return Qe(e=>{let i=e;for(let r=0;rn(s,t)))}return o.pipe(d1())}}const gP="https://ngrx.io/guide/store/configuration/runtime-checks";function zG(n){return void 0===n}function qG(n){return null===n}function GG(n){return Array.isArray(n)}function WG(n){return"object"==typeof n&&null!==n}function _P(n){return"function"==typeof n}function bP(n,t){return n===t}function vP(n,t=bP,e=bP){let o,i=null,r=null;return{memoized:function c(){if(void 0!==o)return o.result;if(!i)return r=n.apply(null,arguments),i=arguments,r;if(!function J0e(n,t,e){for(let i=0;i"function"==typeof t)}(i[0])&&(i=function r_e(n){const t=Object.values(n),e=Object.keys(n);return[...t,(...r)=>e.reduce((o,s,a)=>({...o,[s]:r[a]}),{})]}(i[0]));const r=i.slice(0,i.length-1),o=i[i.length-1],s=r.filter(d=>d.release&&"function"==typeof d.release),a=n(function(...d){return o.apply(null,d)}),l=vP(function(d,u){return t.stateFn.apply(null,[d,r,u,a])});return Object.assign(l.memoized,{release:function c(){l.reset(),a.reset(),s.forEach(d=>d.release())},projector:a.memoized,setResult:l.setResult,clearResult:l.clearResult})}}(vP)(...n)}function e_e(n,t,e,i){if(void 0===e){const o=t.map(s=>s(n));return i.memoized.apply(null,o)}const r=t.map(o=>o(n,e));return i.memoized.apply(null,[...r,e])}function a_e(n){return n instanceof dt?Qt(n):n}function l_e(n,t){return t.map((e,i)=>{if(n[i]instanceof dt){const r=Qt(n[i]);return{key:e.key,reducerFactory:r.reducerFactory?r.reducerFactory:lA,metaReducers:r.metaReducers?r.metaReducers:[],initialState:r.initialState}}return e})}function c_e(n){return n.map(t=>t instanceof dt?Qt(t):t)}function yP(n){return"function"==typeof n?n():n}function d_e(n,t){return n.concat(t)}function u_e(){if(Qt($t,{optional:!0,skipSelf:!0}))throw new TypeError("The root Store has been provided more than once. Feature modules should provide feature states instead.");return"guarded"}function wP(n){Object.freeze(n);const t=_P(n);return Object.getOwnPropertyNames(n).forEach(e=>{if(!e.startsWith("\u0275")&&function Y0e(n,t){return Object.prototype.hasOwnProperty.call(n,t)}(n,e)&&(!t||"caller"!==e&&"callee"!==e&&"arguments"!==e)){const i=n[e];(WG(i)||_P(i))&&!Object.isFrozen(i)&&wP(i)}}),n}function xP(n,t=[]){return(zG(n)||qG(n))&&0===t.length?{path:["root"],value:n}:Object.keys(n).reduce((i,r)=>{if(i)return i;const o=n[r];return function K0e(n){return _P(n)&&n.hasOwnProperty("\u0275cmp")}(o)?i:!(zG(o)||qG(o)||function j0e(n){return"number"==typeof n}(o)||function $0e(n){return"boolean"==typeof n}(o)||function W0e(n){return"string"==typeof n}(o)||GG(o))&&(function $G(n){if(!function X0e(n){return WG(n)&&!GG(n)}(n))return!1;const t=Object.getPrototypeOf(n);return t===Object.prototype||null===t}(o)?xP(o,[...t,r]):{path:[...t,r],value:o})},!1)}function XG(n,t){if(!1===n)return;const e=n.path.join("."),i=new Error(`Detected unserializable ${t} at "${e}". ${gP}#strict${t}serializability`);throw i.value=n.value,i.unserializablePath=e,i}function p_e(n){return{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function A_e({strictActionSerializability:n,strictStateSerializability:t}){return e=>n||t?function f_e(n,t){return function(e,i){t.action(i)&&XG(xP(i),"action");const r=n(e,i);return t.state()&&XG(xP(r),"state"),r}}(e,{action:i=>n&&!CP(i),state:()=>t}):e}function g_e({strictActionImmutability:n,strictStateImmutability:t}){return e=>n||t?function h_e(n,t){return function(e,i){const r=t.action(i)?wP(i):i,o=n(e,r);return t.state()?wP(o):o}}(e,{action:i=>n&&!CP(i),state:()=>t}):e}function CP(n){return n.type.startsWith("@ngrx")}function __e({strictActionWithinNgZone:n}){return t=>n?function m_e(n,t){return function(e,i){if(t.action(i)&&!In.isInAngularZone())throw new Error(`Action '${i.type}' running outside NgZone. ${gP}#strictactionwithinngzone`);return n(e,i)}}(t,{action:e=>n&&!CP(e)}):t}function b_e(n){return[{provide:LG,useValue:n},{provide:OG,useFactory:v_e,deps:[LG]},{provide:h1,deps:[OG],useFactory:p_e},{provide:QE,multi:!0,deps:[h1],useFactory:g_e},{provide:QE,multi:!0,deps:[h1],useFactory:A_e},{provide:QE,multi:!0,deps:[h1],useFactory:__e}]}function KG(){return[{provide:f1,multi:!0,deps:[h1],useFactory:y_e}]}function v_e(n){return n}function y_e(n){if(!n.strictActionTypeUniqueness)return;const t=Object.entries(u1).filter(([,e])=>e>1).map(([e])=>e);if(t.length)throw new Error(`Action types are registered more than once, ${t.map(e=>`"${e}"`).join(", ")}. ${gP}#strictactiontypeuniqueness`)}function YG(n={},t={}){return[{provide:dP,useFactory:u_e},{provide:EG,useValue:t.initialState},{provide:uP,useFactory:yP,deps:[EG]},{provide:hP,useValue:n},{provide:DG,useExisting:n instanceof dt?n:hP},{provide:IG,deps:[hP,[new To(DG)]],useFactory:a_e},{provide:PG,useValue:t.metaReducers?t.metaReducers:[]},{provide:RG,deps:[QE,PG],useFactory:d_e},{provide:TG,useValue:t.reducerFactory?t.reducerFactory:lA},{provide:SG,deps:[TG,RG],useFactory:HG},O0e,H0e,V0e,z0e,q0e,b_e(t.runtimeChecks),KG()]}function ZG(n,t,e={}){return[{provide:kG,multi:!0,useValue:n instanceof Object?{}:e},{provide:FG,multi:!0,useValue:{key:n instanceof Object?n.name:n,reducerFactory:e instanceof dt||!e.reducerFactory?lA:e.reducerFactory,metaReducers:e instanceof dt||!e.metaReducers?[]:e.metaReducers,initialState:e instanceof dt||!e.initialState?void 0:e.initialState}},{provide:mP,deps:[kG,FG],useFactory:l_e},{provide:fP,multi:!0,useValue:n instanceof Object?n.reducer:t},{provide:BG,multi:!0,useExisting:t instanceof dt?t:fP},{provide:pP,multi:!0,deps:[fP,[new To(BG)]],useFactory:c_e},KG()]}let qE=(()=>{class n{constructor(e,i,r,o,s,a){}static{this.\u0275fac=function(i){return new(i||n)(ve(aA),ve(zE),ve(p1),ve($t),ve(dP,8),ve(f1,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),MP=(()=>{class n{constructor(e,i,r,o,s){this.features=e,this.featureReducers=i,this.reducerManager=r;const a=e.map((l,c)=>{const u=i.shift()[c];return{...l,reducers:u,initialState:yP(l.initialState)}});r.addFeatures(a)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}static{this.\u0275fac=function(i){return new(i||n)(ve(mP),ve(pP),ve(m1),ve(qE),ve(f1,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),E_e=(()=>{class n{static forRoot(e,i){return{ngModule:qE,providers:[...YG(e,i)]}}static forFeature(e,i,r={}){return{ngModule:MP,providers:[...ZG(e,i,r)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function An(...n){return{reducer:n.pop(),types:n.map(i=>i.type)}}function wi(n,...t){const e=new Map;for(const i of t)for(const r of i.types){const o=e.get(r);e.set(r,o?(a,l)=>i.reducer(o(a,l),l):i.reducer)}return function(i=n,r){const o=e.get(r.type);return o?o(i,r):i}}const S_e={dispatch:!0,functional:!1,useEffectsErrorHandler:!0},GE="__@ngrx/effects_create__";function Ao(n,t={}){const e=t.functional?n:n(),i={...S_e,...t};return Object.defineProperty(e,GE,{value:i}),e}function eW(n){return Object.getPrototypeOf(n)}function EP(n){return"function"==typeof n}function SP(n){return n.filter(EP)}function D_e(n,t,e){const i=eW(n),o=i&&"Object"!==i.constructor.name?i.constructor.name:null,s=function JG(n){return function T_e(n){return Object.getOwnPropertyNames(n).filter(i=>!(!n[i]||!n[i].hasOwnProperty(GE))&&n[i][GE].hasOwnProperty("dispatch")).map(i=>({propertyName:i,...n[i][GE]}))}(n)}(n).map(({propertyName:a,dispatch:l,useEffectsErrorHandler:c})=>{const d="function"==typeof n[a]?n[a]():n[a],u=c?e(d,t):d;return!1===l?u.pipe(_G()):u.pipe(function y0e(){return fe((n,t)=>{n.subscribe(De(t,e=>{t.next(_h.createNext(e))},()=>{t.next(_h.createComplete()),t.complete()},e=>{t.next(_h.createError(e)),t.complete()}))})}()).pipe(Qe(f=>({effect:n[a],notification:f,propertyName:a,sourceName:o,sourceInstance:n})))});return Yl(...s)}function tW(n,t,e=10){return n.pipe(sP(i=>(t&&t.handleError(i),e<=1?n:tW(n,t,e-1))))}let fd=(()=>{class n extends Ji{constructor(e){super(),e&&(this.source=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}static{this.\u0275fac=function(i){return new(i||n)(ve(p1))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function za(...n){return qi(t=>n.some(e=>"string"==typeof e?e===t.type:e.type===t.type))}const nW=new dt("@ngrx/effects Internal Root Guard"),WE=new dt("@ngrx/effects User Provided Effects"),TP=new dt("@ngrx/effects Internal Root Effects"),iW=new dt("@ngrx/effects Internal Root Effects Instances"),rW=new dt("@ngrx/effects Internal Feature Effects"),oW=new dt("@ngrx/effects Internal Feature Effects Instance Groups"),B_e=new dt("@ngrx/effects Effects Error Handler",{providedIn:"root",factory:()=>tW}),sW="@ngrx/effects/init";hn(sW);function q_e(n){return IP(n,"ngrxOnInitEffects")}function IP(n,t){return n&&t in n&&"function"==typeof n[t]}let FP=(()=>{class n extends Ln{constructor(e,i){super(),this.errorHandler=e,this.effectsErrorHandler=i}addEffects(e){this.next(e)}toActions(){return this.pipe(yG(e=>function I_e(n){return!!n.constructor&&"Object"!==n.constructor.name&&"Function"!==n.constructor.name}(e)?eW(e):e),Jf(e=>e.pipe(yG(G_e))),Jf(e=>{const i=e.pipe(wG(o=>function W_e(n,t){return e=>{const i=D_e(e,n,t);return function Q_e(n){return IP(n,"ngrxOnRunEffects")}(e)?e.ngrxOnRunEffects(i):i}}(this.errorHandler,this.effectsErrorHandler)(o)),Qe(o=>(function R_e(n,t){if("N"===n.notification.kind){const e=n.notification.value;!function O_e(n){return"function"!=typeof n&&n&&n.type&&"string"==typeof n.type}(e)&&t.handleError(new Error(`Effect ${function L_e({propertyName:n,sourceInstance:t,sourceName:e}){const i="function"==typeof t[n];return e?`"${e}.${String(n)}${i?"()":""}"`:`"${String(n)}()"`}(n)} dispatched an invalid action: ${function N_e(n){try{return JSON.stringify(n)}catch{return n}}(e)}`))}}(o,this.errorHandler),o.notification)),qi(o=>"N"===o.kind&&null!=o.value),function w0e(){return fe((n,t)=>{n.subscribe(De(t,e=>vG(e,t)))})}());return Yl(i,e.pipe($o(1),qi(q_e),Qe(o=>o.ngrxOnInitEffects())))}))}static{this.\u0275fac=function(i){return new(i||n)(ve(Oa),ve(B_e))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function G_e(n){return function H_e(n){return IP(n,"ngrxOnIdentifyEffects")}(n)?n.ngrxOnIdentifyEffects():""}let DP=(()=>{class n{get isStarted(){return!!this.effectsSubscription}constructor(e,i){this.effectSources=e,this.store=i,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}static{this.\u0275fac=function(i){return new(i||n)(ve(FP),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),aW=(()=>{class n{constructor(e,i,r,o,s,a,l){this.sources=e,i.start();for(const c of o)e.addEffects(c);r.dispatch({type:sW})}addEffects(e){this.sources.addEffects(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(FP),ve(DP),ve($t),ve(iW),ve(qE,8),ve(MP,8),ve(nW,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),$_e=(()=>{class n{constructor(e,i,r,o){const s=i.flat();for(const a of s)e.addEffects(a)}static{this.\u0275fac=function(i){return new(i||n)(ve(aW),ve(oW),ve(qE,8),ve(MP,8))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),j_e=(()=>{class n{static forFeature(...e){const i=e.flat(),r=SP(i);return{ngModule:$_e,providers:[r,{provide:rW,multi:!0,useValue:i},{provide:WE,multi:!0,useValue:[]},{provide:oW,multi:!0,useFactory:lW,deps:[rW,WE]}]}}static forRoot(...e){const i=e.flat(),r=SP(i);return{ngModule:aW,providers:[r,{provide:TP,useValue:[i]},{provide:nW,useFactory:X_e},{provide:WE,multi:!0,useValue:[]},{provide:iW,useFactory:lW,deps:[TP,WE]}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function lW(n,t){const e=[];for(const i of n)e.push(...i);for(const i of t)e.push(...i);return e.map(i=>function F_e(n){return n instanceof dt||EP(n)}(i)?Qt(i):i)}function X_e(){const n=Qt(DP,{optional:!0,skipSelf:!0}),t=Qt(TP,{self:!0});if((1!==t.length||0!==t[0].length)&&n)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}const cA=hn("SET_IS_LOADING_FILE",{_as:"props",_p:void 0});const md=p(4999),sm=hn("SET_AMOUNT_OF_TOP_LABELS",{_as:"props",_p:void 0}),A1=hn("SET_COLOR_LABELS",{_as:"props",_p:void 0}),Y0=hn("SET_EDGE_HEIGHT",{_as:"props",_p:void 0}),$E=hn("SET_SCREENSHOT_TO_CLIPBOARD_ENABLED",{_as:"props",_p:void 0}),jE=hn("SET_EXPERIMENTAL_FEATURES_ENABLED",{_as:"props",_p:void 0}),g1=hn("SET_ENABLE_FLOOR_LABELS",{_as:"props",_p:void 0}),_1=hn("SET_HIDE_FLAT_BUILDINGS",{_as:"props",_p:void 0}),b1=hn("SET_INVERT_AREA",{_as:"props",_p:void 0}),v1=hn("SET_INVERT_HEIGHT",{_as:"props",_p:void 0}),kP=hn("SET_IS_EDGE_METRIC_VISIBLE",{_as:"props",_p:void 0}),XE=hn("TOGGLE_IS_EDGE_METRIC_VISIBLE"),BP=hn("SET_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC",{_as:"props",_p:void 0}),PP=hn("TOGGLE_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC"),KE=hn("SET_PRESENTATION_MODE",{_as:"props",_p:void 0}),y1=hn("SET_IS_WHITE_BACKGROUND",{_as:"props",_p:void 0}),w1=hn("SET_LAYOUT_ALGORITHM",{_as:"props",_p:void 0}),bh=hn("SET_MAP_COLORS",{_as:"props",_p:void 0}),YE=hn("INVERT_COLOR_RANGE"),ZE=hn("INVERT_DELTA_COLORS"),x1=hn("SET_MAX_TREE_MAP_FILES",{_as:"props",_p:void 0}),JE=hn("SET_RESET_CAMERA_IF_NEW_FILE_IS_LOADED",{_as:"props",_p:void 0}),Z0=hn("SET_SCALING",{_as:"props",_p:void 0}),C1=hn("SET_SHARPNESS_MODE",{_as:"props",_p:void 0}),M1=hn("SET_SHOW_METRIC_LABEL_NAME_VALUE",{_as:"props",_p:void 0}),E1=hn("SET_SHOW_METRIC_LABEL_NODE_NAME",{_as:"props",_p:void 0}),S1=hn("SET_SHOW_ONLY_BUILDINGS_WITH_EDGES",{_as:"props",_p:void 0}),vh=hn("SET_AREA_METRIC",{_as:"props",_p:void 0}),pd=hn("SET_COLOR_METRIC",{_as:"props",_p:void 0}),J0=hn("SET_COLOR_MODE",{_as:"props",_p:void 0}),ru=hn("SET_COLOR_RANGE",{_as:"props",_p:void 0}),T1=hn("SET_DISTRIBUTION_METRIC",{_as:"props",_p:void 0}),yh=hn("SET_EDGE_METRIC",{_as:"props",_p:void 0}),wh=hn("SET_HEIGHT_METRIC",{_as:"props",_p:void 0}),e_=hn("SET_MARGIN",{_as:"props",_p:void 0}),am=hn("SET_SEARCH_PATTERN",{_as:"props",_p:void 0}),e2=hn("SET_SORTING_OPTION",{_as:"props",_p:void 0}),RP=hn("SET_ATTRIBUTE_DESCRIPTORS",{_as:"props",_p:void 0}),OP=hn("SET_ATTRIBUTE_TYPES",{_as:"props",_p:void 0}),LP=hn("UPDATE_ATTRIBUTE_TYPE",{_as:"props",_p:void 0}),NP=hn("SET_BLACKLIST",{_as:"props",_p:void 0}),UP=hn("ADD_BLACKLIST_ITEM",{_as:"props",_p:void 0}),t2=hn("ADD_BLACKLIST_ITEMS",{_as:"props",_p:void 0}),n2=hn("REMOVE_BLACKLIST_ITEM",{_as:"props",_p:void 0}),HP=hn("ADD_BLACKLIST_ITEMS_IF_NOT_RESULTS_IN_EMPTY_MAP",{_as:"props",_p:void 0}),VP=hn("SET_EDGES",{_as:"props",_p:void 0}),dW=hn("ADD_EDGE",{_as:"props",_p:void 0}),uW=hn("REMOVE_EDGE",{_as:"props",_p:void 0}),r2=hn("SET_MARKED_PACKAGES",{_as:"props",_p:void 0}),I1=hn("MARK_PACKAGES",{_as:"props",_p:void 0}),o2=hn("UNMARK_PACKAGE",{_as:"props",_p:void 0});function hW(n,t){this.v=n,this.k=t}function fW(n){return new hW(n,0)}function F1(n){var t,e;function i(o,s){try{var a=n[o](s),l=a.value,c=l instanceof hW;Promise.resolve(c?l.v:l).then(function(d){if(c){var u="return"===o?"return":"next";if(!l.k||d.done)return i(u,d);d=n[u](d).value}r(a.done?"return":"normal",d)},function(d){i("throw",d)})}catch(d){r("throw",d)}}function r(o,s){switch(o){case"return":t.resolve({value:s,done:!0});break;case"throw":t.reject(s);break;default:t.resolve({value:s,done:!1})}(t=t.next)?i(t.key,t.arg):e=null}this._invoke=function(o,s){return new Promise(function(a,l){var c={key:o,arg:s,resolve:a,reject:l,next:null};e?e=e.next=c:(t=e=c,i(o,s))})},"function"!=typeof n.return&&(this.return=void 0)}F1.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},F1.prototype.next=function(n){return this._invoke("next",n)},F1.prototype.throw=function(n){return this._invoke("throw",n)},F1.prototype.return=function(n){return this._invoke("return",n)};const QP=(n,t)=>t.some(e=>n instanceof e);let mW,pW;const zP=new WeakMap,qP=new WeakMap,s2=new WeakMap;let GP={get(n,t,e){if(n instanceof IDBTransaction){if("done"===t)return zP.get(n);if("store"===t)return e.objectStoreNames[1]?void 0:e.objectStore(e.objectStoreNames[0])}return lm(n[t])},set:(n,t,e)=>(n[t]=e,!0),has:(n,t)=>n instanceof IDBTransaction&&("done"===t||"store"===t)||t in n};function AW(n){GP=n(GP)}function nbe(n){return"function"==typeof n?function tbe(n){return function Z_e(){return pW||(pW=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(n)?function(...t){return n.apply(WP(this),t),lm(this.request)}:function(...t){return lm(n.apply(WP(this),t))}}(n):(n instanceof IDBTransaction&&function ebe(n){if(zP.has(n))return;const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("complete",o),n.removeEventListener("error",s),n.removeEventListener("abort",s)},o=()=>{e(),r()},s=()=>{i(n.error||new DOMException("AbortError","AbortError")),r()};n.addEventListener("complete",o),n.addEventListener("error",s),n.addEventListener("abort",s)});zP.set(n,t)}(n),QP(n,function Y_e(){return mW||(mW=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(n,GP):n)}function lm(n){if(n instanceof IDBRequest)return function J_e(n){const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("success",o),n.removeEventListener("error",s)},o=()=>{e(lm(n.result)),r()},s=()=>{i(n.error),r()};n.addEventListener("success",o),n.addEventListener("error",s)});return s2.set(t,n),t}(n);if(qP.has(n))return qP.get(n);const t=nbe(n);return t!==n&&(qP.set(n,t),s2.set(t,n)),t}const WP=n=>s2.get(n),rbe=["get","getKey","getAll","getAllKeys","count"],obe=["put","add","delete","clear"],$P=new Map;function gW(n,t){if(!(n instanceof IDBDatabase)||t in n||"string"!=typeof t)return;if($P.get(t))return $P.get(t);const e=t.replace(/FromIndex$/,""),i=t!==e,r=obe.includes(e);if(!(e in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!rbe.includes(e))return;const o=function(){var s=k(function*(a,...l){const c=this.transaction(a,r?"readwrite":"readonly");let d=c.store;return i&&(d=d.index(l.shift())),(yield Promise.all([d[e](...l),r&&c.done]))[0]});return function(l){return s.apply(this,arguments)}}();return $P.set(t,o),o}AW(n=>({...n,get:(t,e,i)=>gW(t,e)||n.get(t,e,i),has:(t,e)=>!!gW(t,e)||n.has(t,e)}));const sbe=["continue","continuePrimaryKey","advance"],_W={},jP=new WeakMap,bW=new WeakMap,abe={get(n,t){if(!sbe.includes(t))return n[t];let e=_W[t];return e||(e=_W[t]=function(...i){jP.set(this,bW.get(this)[t](...i))}),e}};function lbe(){return XP.apply(this,arguments)}function XP(){return XP=function K_e(n){return function(){return new F1(n.apply(this,arguments))}}(function*(...n){let t=this;if(t instanceof IDBCursor||(t=yield fW(t.openCursor(...n))),!t)return;const e=new Proxy(t,abe);for(bW.set(e,t),s2.set(e,WP(t));t;)yield e,t=yield fW(jP.get(e)||t.continue()),jP.delete(e)}),XP.apply(this,arguments)}function vW(n,t){return t===Symbol.asyncIterator&&QP(n,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&QP(n,[IDBIndex,IDBObjectStore])}AW(n=>({...n,get:(t,e,i)=>vW(t,e)?lbe:n.get(t,e,i),has:(t,e)=>vW(t,e)||n.has(t,e)}));const cbe="CodeCharta",dbe=1,D1="ccstate",yW="id",KP=1001;function YP(){return(YP=k(function*(n){const e=(yield tR()).transaction(D1,"readwrite");yield e.store.put({[yW]:KP,state:n}),yield e.done})).apply(this,arguments)}function ZP(){return JP.apply(this,arguments)}function JP(){return(JP=k(function*(){return(yield(yield tR()).get(D1,KP))?.state||null})).apply(this,arguments)}function eR(){return(eR=k(function*(){const t=(yield tR()).transaction(D1,"readwrite");yield t.store.delete(KP),yield t.done})).apply(this,arguments)}function tR(){return nR.apply(this,arguments)}function nR(){return(nR=k(function*(){return function ibe(n,t,{blocked:e,upgrade:i,blocking:r,terminated:o}={}){const s=indexedDB.open(n,t),a=lm(s);return i&&s.addEventListener("upgradeneeded",l=>{i(lm(s.result),l.oldVersion,l.newVersion,lm(s.transaction),l)}),e&&s.addEventListener("blocked",l=>e(l.oldVersion,l.newVersion,l)),a.then(l=>{o&&l.addEventListener("close",()=>o()),r&&l.addEventListener("versionchange",c=>r(c.oldVersion,c.newVersion,c))}).catch(()=>{}),a}(cbe,dbe,{upgrade(n){n.objectStoreNames.contains(D1)||n.createObjectStore(D1,{keyPath:yW})}})})).apply(this,arguments)}const fbe=JSON.parse('{"projectName":"Sample Project with Edges","apiVersion":"1.2","fileChecksum":"valid-md5-sample1","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"sample1OnlyLeaf.scss","type":"File","attributes":{"rloc":400,"functions":10,"sonar_complexity":100,"pairingRate":32,"avgCommits":17},"link":"http://www.google.de"},{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":100,"functions":10,"sonar_complexity":1,"pairingRate":77,"avgCommits":56},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":100,"sonar_complexity":100,"pairingRate":60,"avgCommits":51}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":1000,"sonar_complexity":10,"pairingRate":65,"avgCommits":22}}]}]}],"edges":[{"fromNodeName":"/root/bigLeaf.ts","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":89,"avgCommits":34}},{"fromNodeName":"/root/sample1OnlyLeaf.scss","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":32,"avgCommits":17}},{"fromNodeName":"/root/ParentLeaf/otherSmallLeaf.ts","toNodeName":"/root/bigLeaf.ts","attributes":{"pairingRate":65,"avgCommits":22}}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","sonar_complexity":"absolute","pairingRate":"relative"},"edges":{"pairingRate":"relative","avgCommits":"absolute"}}}'),mbe=JSON.parse('{"projectName":"Sample Project","apiVersion":"1.2","fileChecksum":"valid-md5-sample2","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":120,"functions":10,"sonar_complexity":1},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":101,"sonar_complexity":80}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":10,"sonar_complexity":100}},{"name":"sample2LeafMergedIn.kt","type":"File","attributes":{"rloc":600,"functions":10,"sonar_complexity":1},"link":"http://www.google.de"}]}]}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","sonar_complexity":"absolute"}}}');var er=function(n){return n.Reference="Reference",n.Comparison="Comparison",n.Partial="Partial",n.None="None",n}(er||{});const iR=".png",wW="~",a2="_";function xW(n){return n.some(t=>t.selectedAs!==er.None)}function l2(n){return n.filter(t=>t.selectedAs!==er.None)}function ou(n){return n.some(t=>t.selectedAs===er.Reference)}function CW(n){return n.some(t=>t.selectedAs===er.Partial)}function c2(n,t){return n.fileMeta.fileChecksum===t.fileMeta.fileChecksum}const t_=new VE(HE),wbe=t_;function n_(n,t=t_){return fe((e,i)=>{let r=null,o=null,s=null;const a=()=>{if(r){r.unsubscribe(),r=null;const c=o;o=null,i.next(c)}};function l(){const c=s+n,d=t.now();if(d{o=c,s=t.now(),r||(r=t.schedule(l,n),i.add(r))},()=>{a(),i.complete()},void 0,()=>{o=r=null}))})}function Dr(n,t,e){const i=Yt(n)||t||e?{next:n,error:t,complete:e}:n;return i?fe((r,o)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;r.subscribe(De(o,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),o.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),o.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),o.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):ma}const k1=n=>n.fileSettings,su=Kt(k1,n=>n.blacklist),xh=n=>n.files,au=Kt(xh,l2);function xbe(n){var t=0,e=n.children,i=e&&e.length;if(i)for(;--i>=0;)t+=e[i].value;else t=1;n.value=t}function yo(n,t){n instanceof Map?(n=[void 0,n],void 0===t&&(t=Hbe)):void 0===t&&(t=Ube);for(var i,o,s,a,l,e=new d2(n),r=[e];i=r.pop();)if((s=t(i.data))&&(l=(s=Array.from(s)).length))for(i.children=s,a=l-1;a>=0;--a)r.push(o=s[a]=new d2(s[a])),o.parent=i,o.depth=i.depth+1;return e.eachBefore(Qbe)}function Ube(n){return n.children}function Hbe(n){return Array.isArray(n)?n[1]:null}function Vbe(n){void 0!==n.data.value&&(n.value=n.data.value),n.data=n.data.data}function Qbe(n){var t=0;do{n.height=t}while((n=n.parent)&&n.height<++t)}function d2(n){this.data=n,this.depth=this.height=0,this.parent=null}d2.prototype=yo.prototype={constructor:d2,count:function Cbe(){return this.eachAfter(xbe)},each:function Mbe(n,t){let e=-1;for(const i of this)n.call(t,i,++e,this);return this},eachAfter:function Sbe(n,t){for(var o,s,a,e=this,i=[e],r=[],l=-1;e=i.pop();)if(r.push(e),o=e.children)for(s=0,a=o.length;s=0;--o)i.push(r[o]);return this},find:function Tbe(n,t){let e=-1;for(const i of this)if(n.call(t,i,++e,this))return i},sum:function Ibe(n){return this.eachAfter(function(t){for(var e=+n(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)e+=i[r].value;t.value=e})},sort:function Fbe(n){return this.eachBefore(function(t){t.children&&t.children.sort(n)})},path:function Dbe(n){for(var t=this,e=function kbe(n,t){if(n===t)return n;var e=n.ancestors(),i=t.ancestors(),r=null;for(n=e.pop(),t=i.pop();n===t;)r=n,n=e.pop(),t=i.pop();return r}(t,n),i=[t];t!==e;)i.push(t=t.parent);for(var r=i.length;n!==e;)i.splice(r,0,n),n=n.parent;return i},ancestors:function Bbe(){for(var n=this,t=[n];n=n.parent;)t.push(n);return t},descendants:function Pbe(){return Array.from(this)},leaves:function Rbe(){var n=[];return this.eachBefore(function(t){t.children||n.push(t)}),n},links:function Obe(){var n=this,t=[];return n.each(function(e){e!==n&&t.push({source:e.parent,target:e})}),t},copy:function Nbe(){return yo(this).eachBefore(Vbe)},[Symbol.iterator]:function*Lbe(){var t,i,r,o,n=this,e=[n];do{for(t=e.reverse(),e=[];n=t.pop();)if(yield n,i=n.children)for(r=0,o=i.length;r=7340032:return m2.BIG_MAP;case e>=2097152:return m2.MEDIUM_MAP;default:return m2.SMALL_MAP}}const IW=n=>{n.sort((t,e)=>{const i=t.name.toLowerCase(),r=e.name.toLowerCase();return i>r?1:r>i?-1:0})};function Jbe(n,t){const e=new Map,i=new Set;for(const{file:o}of n)for(const{data:s}of yo(o.map))i.add(s.path);for(const o of n)for(const s of o.file.settings.fileSettings.edges)if(eve(s,i,t))for(const a of Object.keys(s.attributes))nve(tve(e,a),FW(n.length,o,s.fromNodeName),FW(n.length,o,s.toNodeName));const r=function ive(n){const t=[];for(const[e,i]of n){const r=[];let o=0,s=Number.MAX_SAFE_INTEGER;for(const a of i.values()){const l=a.incoming+a.outgoing;r.push(l),l>o&&(o=l),l<=s&&(s=l)}t.push({name:e,values:r,maxValue:o,minValue:s})}return t}(e);return IW(r),{edgeMetricData:r,nodeEdgeMetricsMap:e}}function FW(n,t,e){return n>1?`/root/${t.file.fileMeta.fileName}${e.replace("/root","")}`:e}function eve(n,t,e){return!(!t.has(n.fromNodeName)||!t.has(n.toNodeName)||Ch(n.fromNodeName,e,"exclude")||Ch(n.toNodeName,e,"exclude"))}function tve(n,t){let e=n.get(t);return e||(e=new Map,n.set(t,e)),e}function nve(n,t,e){const i=n.get(t);void 0===i?n.set(t,{incoming:0,outgoing:1}):i.outgoing+=1;const r=n.get(e);void 0===r?n.set(e,{incoming:1,outgoing:0}):r.incoming+=1}const A2="unary",DW=(n,t)=>{if(0===n.length)return[];const e=new Map,i=new Map,r=new Map;for(const{file:s}of n)for(const a of yo(s.map))if(No(a)&&a.data.path&&!Ch(a.data.path,t,"exclude"))for(const l of Object.keys(a.data.attributes)){const c=i.get(l),d=r.get(l);e.get(l)||e.set(l,[]),e.get(l).push(a.data.attributes[l]),(void 0===d||d>=a.data.attributes[l])&&r.set(l,a.data.attributes[l]),(void 0===c||c<=a.data.attributes[l])&&i.set(l,a.data.attributes[l])}const o=[];i.set(A2,1),r.set(A2,1);for(const[s,a]of i)o.push({name:s,values:e.get(s),maxValue:a,minValue:r.get(s)});return IW(o),o},Xs=Kt(au,su,(n,t)=>({nodeMetricData:DW(n,t),...Jbe(n,t)})),rve=[yh,wh,pd,vh];var cu=function(n){return n.areaMetric="area",n.heightMetric="height",n.colorMetric="color",n.edgeMetric="edge",n}(cu||{});let ove=(()=>{class n{constructor(e,i,r,o){this.loadInitialFileService=e,this.actions$=i,this.state=r,this.store=o,this.saveMetricsInQueryParameters$=Ao(()=>this.actions$.pipe(za(...rve),hd(this.store.select(Xs)),Qe(s=>s[1].edgeMetricData&&s[1].edgeMetricData.length>0),n_(100),Dr(s=>{this.updateMetricQueryParameters(s)})),{dispatch:!1})}updateMetricQueryParameters(e){const i=this.state.getValue(),{edgeMetric:r,heightMetric:o,colorMetric:s,areaMetric:a}=i.dynamicSettings;this.loadInitialFileService.checkFileQueryParameterPresent()&&(this.addOrUpdateQueryParameter(cu.areaMetric,a),this.addOrUpdateQueryParameter(cu.heightMetric,o),this.addOrUpdateQueryParameter(cu.colorMetric,s),e?this.addOrUpdateQueryParameter(cu.edgeMetric,r):this.deleteQueryParameterIfExists(cu.edgeMetric))}addOrUpdateQueryParameter(e,i){const r=new URL(window.location.href),o=r.search.slice(1),s=o.length>0?o.split("&"):[],a=[];let l=!1;for(const c of s)c.split("=")[0]===e?(a.push(`${e}=${encodeURIComponent(i)}`),l=!0):a.push(c);l||a.push(`${e}=${encodeURIComponent(i)}`),r.search=a.join("&"),window.history.replaceState(null,"",r.toString())}deleteQueryParameterIfExists(e){const i=new URL(window.location.href),r=i.search.slice(1),o=r.length>0?r.split("&"):[],s=[];for(const a of o){const[l,c]=a.split("=");l!==e&&s.push(`${l}=${c}`)}i.search=s.join("&"),window.history.replaceState(null,"",i.toString())}static{this.\u0275fac=function(i){return new(i||n)(ve(D4),ve(fd),ve(Zr),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const r_=hn("SET_IS_LOADING_MAP",{_as:"props",_p:void 0}),B1=hn("SET_FILES",{_as:"props",_p:void 0}),kW=hn("ADD_FILE",{_as:"props",_p:void 0}),oR=hn("REMOVE_FILE",{_as:"props",_p:void 0}),P1=hn("SET_STANDARD",{_as:"props",_p:void 0}),sR=hn("SET_STANDARD_BY_NAMES",{_as:"props",_p:void 0}),aR=hn("SET_ALL"),lR=hn("INVERT_STANDARD"),cR=hn("SWITCH_REFERENCE_AND_COMPARISON"),dR=hn("SET_DELTA_COMPARISON",{_as:"props",_p:void 0}),uR=hn("SET_DELTA_REFERENCE",{_as:"props",_p:void 0}),g2=hn("SET_DELTA",{_as:"props",_p:void 0}),_2=[B1,kW,oR,P1,sR,aR,lR,cR,dR,uR,g2];function sa(n){return null!=n&&"false"!=`${n}`}function cm(n,t=0){return function sve(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function b2(n){return Array.isArray(n)?n:[n]}function ws(n){return null==n?"":"string"==typeof n?n:`${n}px`}function Mh(n){return n instanceof Nn?n.nativeElement:n}const ave=["addListener","removeListener"],lve=["addEventListener","removeEventListener"],cve=["on","off"];function o_(n,t,e,i){if(Yt(e)&&(i=e,e=void 0),i)return o_(n,t,e).pipe(UB(i));const[r,o]=function hve(n){return Yt(n.addEventListener)&&Yt(n.removeEventListener)}(n)?lve.map(s=>a=>n[s](t,a,e)):function dve(n){return Yt(n.addListener)&&Yt(n.removeListener)}(n)?ave.map(BW(n,t)):function uve(n){return Yt(n.on)&&Yt(n.off)}(n)?cve.map(BW(n,t)):[];if(!r&&DB(n))return Jf(s=>o_(s,t,e))(ls(n));if(!r)throw new TypeError("Invalid event target");return new Ji(s=>{const a=(...l)=>s.next(1o(a)})}function BW(n,t){return e=>i=>n[e](t,i)}const R1={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=R1;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(o=>{e=void 0,n(o)});return new Xn(()=>e?.(r))},requestAnimationFrame(...n){const{delegate:t}=R1;return(t?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=R1;return(t?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0};new class mve extends VE{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class fve extends HE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=R1.requestAnimationFrame(()=>t.flush(void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:o}=t;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(R1.cancelAnimationFrame(e),t._scheduled=void 0)}});let hR,Ave=1;const v2={};function PW(n){return n in v2&&(delete v2[n],!0)}const gve={setImmediate(n){const t=Ave++;return v2[t]=!0,hR||(hR=Promise.resolve()),hR.then(()=>PW(t)&&n()),t},clearImmediate(n){PW(n)}},{setImmediate:_ve,clearImmediate:bve}=gve,y2={setImmediate(...n){const{delegate:t}=y2;return(t?.setImmediate||_ve)(...n)},clearImmediate(n){const{delegate:t}=y2;return(t?.clearImmediate||bve)(n)},delegate:void 0},fR=new class yve extends VE{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class vve extends HE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=y2.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:o}=t;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(y2.clearImmediate(e),t._scheduled===e&&(t._scheduled=void 0))}});function mR(n=0,t,e=wbe){let i=-1;return null!=t&&(Fz(t)?e=t:i=t),new Ji(r=>{let o=function xve(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;o<0&&(o=0);let s=0;return e.schedule(function(){r.closed||(r.next(s++),0<=i?this.schedule(void 0,i):r.complete())},o)})}function pR(n,t=t_){return function wve(n){return fe((t,e)=>{let i=!1,r=null,o=null,s=!1;const a=()=>{if(o?.unsubscribe(),o=null,i){i=!1;const c=r;r=null,e.next(c)}s&&e.complete()},l=()=>{o=null,s&&e.complete()};t.subscribe(De(e,c=>{i=!0,r=c,o||ls(n(c)).subscribe(o=De(e,a,l))},()=>{s=!0,(!i||!o||o.closed)&&e.complete()}))})}(()=>mR(n,t))}let AR;try{AR=typeof Intl<"u"&&Intl.v8BreakIterator}catch{AR=!1}let s_,ro=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function epe(n){return n===iz}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!AR)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static{this.\u0275fac=function(i){return new(i||n)(ve(Qf))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const RW=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function OW(){if(s_)return s_;if("object"!=typeof document||!document)return s_=new Set(RW),s_;let n=document.createElement("input");return s_=new Set(RW.filter(t=>(n.setAttribute("type",t),n.type===t))),s_}let O1,uA,gR;function dA(n){return function Cve(){if(null==O1&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>O1=!0}))}finally{O1=O1||!1}return O1}()?n:!!n.capture}function Mve(){if(null==uA){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return uA=!1,uA;if("scrollBehavior"in document.documentElement.style)uA=!0;else{const n=Element.prototype.scrollTo;uA=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return uA}function x2(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function dm(n){return n.composedPath?n.composedPath()[0]:n.target}function _R(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const Tve=new dt("cdk-dir-doc",{providedIn:"root",factory:function Ive(){return Qt(Li)}}),Fve=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Eh=(()=>{class n{constructor(e){this.value="ltr",this.change=new Fn,e&&(this.value=function Dve(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?Fve.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||n)(ve(Tve,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),N1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),LW=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Ln,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new Ji(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(pR(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):hl()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(qi(o=>!o||r.indexOf(o)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,o)=>{this._scrollableContainsElement(o,e)&&i.push(o)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=Mh(i),o=e.getElementRef().nativeElement;do{if(r==o)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>o_(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static{this.\u0275fac=function(i){return new(i||n)(ve(In),ve(ro),ve(Li,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),bR=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new Ln,this._changeListener=o=>{this._change.next(o)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,o=r.getBoundingClientRect();return{top:-o.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-o.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(pR(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(In),ve(Li,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),U1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),NW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[N1,U1,N1,U1]})}}return n})();function oo(n){return fe((t,e)=>{ls(n).subscribe(De(e,()=>e.complete(),tl)),!e.closed&&t.subscribe(e)})}class vR{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class H1 extends vR{constructor(t,e,i,r,o){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=o}}class V1 extends vR{constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class Rve extends vR{constructor(t){super(),this.element=t instanceof Nn?t.nativeElement:t}}class yR{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof H1?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof V1?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof Rve?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Ove extends yR{constructor(t,e,i,r,o){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");a.parentNode.insertBefore(l,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let r;return t.viewContainerRef?(r=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector,t.projectableNodes||void 0),this.setDisposeFn(()=>r.destroy())):(r=i.create(t.injector||this._defaultInjector||is.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=t,r}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);-1!==r&&e.remove(r)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let C2=(()=>{class n extends yR{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Fn,this.attachDomPortal=o=>{const s=o.element,a=this._document.createComment("dom-portal");o.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=o,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=r}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,o=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),s=i.createComponent(o,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=e,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static{this.\u0275fac=function(i){return new(i||n)($(b0),$(oa),$(Li))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[Ct.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[yi]})}}return n})(),Q1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();function Ad(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const UW=Mve();class Kve{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=ws(-this._previousScrollPosition.left),t.style.top=ws(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,r=this._document.body.style,o=i.scrollBehavior||"",s=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),UW&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),UW&&(i.scrollBehavior=o,r.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class Yve{constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0).pipe(qi(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class HW{enable(){}disable(){}attach(){}}function xR(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function VW(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class Zve{constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();xR(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Jve=(()=>{class n{constructor(e,i,r,o){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new HW,this.close=s=>new Yve(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new Kve(this._viewportRuler,this._document),this.reposition=s=>new Zve(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}static{this.\u0275fac=function(i){return new(i||n)(ve(LW),ve(bR),ve(In),ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class I2{constructor(t){if(this.scrollStrategy=new HW,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class eye{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let QW=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static{this.\u0275fac=function(i){return new(i||n)(ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),tye=(()=>{class n extends QW{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const a=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(r)):a.next(r);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(In,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),nye=(()=>{class n extends QW{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=dm(o)},this._clickListener=o=>{const s=dm(o),a="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const l=this._attachedOverlays.slice();for(let c=l.length-1;c>-1;c--){const d=l[c];if(d._outsidePointerEvents.observers.length<1||!d.hasAttached())continue;if(d.overlayElement.contains(s)||d.overlayElement.contains(a))break;const u=d._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>u.next(o)):u.next(o)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(ro),ve(In,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),F2=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||_R()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let o=0;othis._backdropClick.next(u),this._backdropTransitionendHandler=u=>{this._disposeBackdrop(u.target)},this._keydownEvents=new Ln,this._outsidePointerEvents=new Ln,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe($o(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=ws(this._config.width),t.height=ws(this._config.height),t.minWidth=ws(this._config.minWidth),t.minHeight=ws(this._config.minHeight),t.maxWidth=ws(this._config.maxWidth),t.maxHeight=ws(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;if(t){if(this._animationsDisabled)return void this._disposeBackdrop(t);t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){const r=b2(e||[]).filter(o=>!!o);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(oo(Yl(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const zW="cdk-overlay-connected-position-bounding-box",iye=/([A-Za-z%]+)$/;class rye{get positions(){return this._preferredPositions}constructor(t,e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new Ln,this._resizeSubscription=Xn.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}attach(t){this._validatePositions(),t.hostElement.classList.add(zW),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,o=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(t,r,a),c=this._getOverlayPoint(l,e,a),d=this._getOverlayFit(c,e,i,a);if(d.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(d,c,i)?o.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=d,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&hA(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(zW),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r,o;if("center"==i.originX)r=t.left+t.width/2;else{const s=this._isRtl()?t.right:t.left,a=this._isRtl()?t.left:t.right;r="start"==i.originX?s:a}return e.left<0&&(r-=e.left),o="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(o-=e.top),{x:r,y:o}}_getOverlayPoint(t,e,i){let r,o;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,o="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+o}}_getOverlayFit(t,e,i,r){const o=GW(e);let{x:s,y:a}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(s+=l),c&&(a+=c);let h=0-a,f=a+o.height-i.height,A=this._subtractOverflows(o.width,0-s,s+o.width-i.width),y=this._subtractOverflows(o.height,h,f),_=A*y;return{visibleArea:_,isCompletelyWithinViewport:o.width*o.height===_,fitsInViewportVertically:y===o.height,fitsInViewportHorizontally:A==o.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,o=i.right-e.x,s=qW(this._overlayRef.getConfig().minHeight),a=qW(this._overlayRef.getConfig().minWidth);return(t.fitsInViewportVertically||null!=s&&s<=r)&&(t.fitsInViewportHorizontally||null!=a&&a<=o)}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const r=GW(e),o=this._viewportRect,s=Math.max(t.x+r.width-o.width,0),a=Math.max(t.y+r.height-o.height,0),l=Math.max(o.top-i.top-t.y,0),c=Math.max(o.left-i.left-t.x,0);let d=0,u=0;return d=r.width<=o.width?c||-s:t.xA&&!this._isInitialRender&&!this._growAfterOpen&&(s=t.y-A/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)h=i.width-t.x+2*this._viewportMargin,d=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)u=t.x,d=i.right-t.x;else{const f=Math.min(i.right-t.x+i.left,t.x),A=this._lastBoundingBoxSize.width;d=2*f,u=t.x-f,d>A&&!this._isInitialRender&&!this._growAfterOpen&&(u=t.x-A/2)}return{top:s,left:u,bottom:a,right:h,width:d,height:o}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;r.height=ws(i.height),r.top=ws(i.top),r.bottom=ws(i.bottom),r.width=ws(i.width),r.left=ws(i.left),r.right=ws(i.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",o&&(r.maxHeight=ws(o)),s&&(r.maxWidth=ws(s))}this._lastBoundingBoxSize=i,hA(this._boundingBox.style,r)}_resetBoundingBoxStyles(){hA(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){hA(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(r){const d=this._viewportRuler.getViewportScrollPosition();hA(i,this._getExactOverlayY(e,t,d)),hA(i,this._getExactOverlayX(e,t,d))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(r?i.maxHeight=ws(s.maxHeight):o&&(i.maxHeight="")),s.maxWidth&&(r?i.maxWidth=ws(s.maxWidth):o&&(i.maxWidth="")),hA(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},o=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":r.top=ws(o.y),r}_getExactOverlayX(t,e,i){let s,r={left:"",right:""},o=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),s=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===s?r.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":r.left=ws(o.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:VW(t,i),isOriginOutsideView:xR(t,i),isOverlayClipped:VW(e,i),isOverlayOutsideView:xR(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&b2(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof Nn)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function hA(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function qW(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(iye);return e&&"px"!==e?null:parseFloat(t)}return n||null}function GW(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const WW="cdk-global-overlay-wrapper";class sye{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(WW),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:o,maxWidth:s,maxHeight:a}=i,l=!("100%"!==r&&"100vw"!==r||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==o&&"100vh"!==o||a&&"100%"!==a&&"100vh"!==a),d=this._xPosition,u=this._xOffset,h="rtl"===this._overlayRef.getConfig().direction;let f="",A="",y="";l?y="flex-start":"center"===d?(y="center",h?A=u:f=u):h?"left"===d||"end"===d?(y="flex-end",f=u):("right"===d||"start"===d)&&(y="flex-start",A=u):"left"===d||"start"===d?(y="flex-start",f=u):("right"===d||"end"===d)&&(y="flex-end",A=u),t.position=this._cssPosition,t.marginLeft=l?"0":f,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":A,e.justifyContent=y,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(WW),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let aye=(()=>{class n{constructor(e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o}global(){return new sye}flexibleConnectedTo(e){return new rye(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||n)(ve(bR),ve(Li),ve(ro),ve(F2))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),lye=0,Ls=(()=>{class n{constructor(e,i,r,o,s,a,l,c,d,u,h,f){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=a,this._ngZone=l,this._document=c,this._directionality=d,this._location=u,this._outsideClickDispatcher=h,this._animationsModuleType=f}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),o=this._createPortalOutlet(r),s=new I2(e);return s.direction=s.direction||this._directionality.value,new D2(o,i,r,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+lye++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Xf)),new Ove(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||n)(ve(Jve),ve(F2),ve(b0),ve(aye),ve(tye),ve(is),ve(In),ve(Li),ve(Eh),ve(Jk),ve(nye),ve(_s,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const cye=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],$W=new dt("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition()}});let CR=(()=>{class n{constructor(e){this.elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return n})(),jW=(()=>{class n{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}constructor(e,i,r,o,s){this._overlay=e,this._dir=s,this._backdropSubscription=Xn.EMPTY,this._attachSubscription=Xn.EMPTY,this._detachSubscription=Xn.EMPTY,this._positionSubscription=Xn.EMPTY,this._disposeOnNavigation=!1,this._ngZone=Qt(In),this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.hasBackdrop=!1,this.lockPosition=!1,this.flexibleDimensions=!1,this.growAfterOpen=!1,this.push=!1,this.backdropClick=new Fn,this.positionChange=new Fn,this.attach=new Fn,this.detach=new Fn,this.overlayKeydown=new Fn,this.overlayOutsideClick=new Fn,this._templatePortal=new V1(i,r),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=cye);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Ad(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new I2({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof CR?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Pve(n,t=!1){return fe((e,i)=>{let r=0;e.subscribe(De(i,o=>{const s=n(o,r++);(s||t)&&i.next(o),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(Ls),$(jl),$(oa),$($W),$(Eh,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[Ct.None,"cdkConnectedOverlayOrigin","origin"],positions:[Ct.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[Ct.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[Ct.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[Ct.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[Ct.None,"cdkConnectedOverlayWidth","width"],height:[Ct.None,"cdkConnectedOverlayHeight","height"],minWidth:[Ct.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[Ct.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[Ct.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[Ct.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[Ct.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[Ct.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[Ct.None,"cdkConnectedOverlayOpen","open"],disableClose:[Ct.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[Ct.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayHasBackdrop","hasBackdrop",Jn],lockPosition:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayLockPosition","lockPosition",Jn],flexibleDimensions:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",Jn],growAfterOpen:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",Jn],push:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayPush","push",Jn],disposeOnNavigation:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",Jn]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[rs,xr]})}}return n})();const uye={provide:$W,deps:[Ls],useFactory:function dye(n){return()=>n.scrollStrategies.reposition()}};let q1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Ls,uye],imports:[N1,Q1,NW,NW]})}}return n})();function G1(n){return qi((t,e)=>n<=e)}let XW=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),hye=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Mh(e);return new Ji(r=>{const s=this._observeElement(i).subscribe(r);return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new Ln,r=this._mutationObserverFactory.create(o=>i.next(o));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static{this.\u0275fac=function(i){return new(i||n)(ve(XW))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),KW=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=cm(e),this._subscribe()}constructor(e,i,r){this._contentObserver=e,this._elementRef=i,this._ngZone=r,this.event=new Fn,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(n_(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(hye),$(Nn),$(In))}}static{this.\u0275dir=Wt({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[Ct.HasDecoratorInputTransform,"cdkObserveContentDisabled","disabled",Jn],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],standalone:!0,features:[rs]})}}return n})(),MR=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[XW]})}}return n})();function Sh(...n){const t=Xy(n),e=EB(n),{args:i,keys:r}=pq(n);if(0===i.length)return tA([],t);const o=new Ji(function fye(n,t,e=ma){return i=>{YW(t,()=>{const{length:r}=n,o=new Array(r);let s=r,a=r;for(let l=0;l{const c=tA(n[l],t);let d=!1;c.subscribe(De(i,u=>{o[l]=u,d||(d=!0,a--),a||i.next(e(o.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,t,r?s=>Aq(r,s):ma));return e?o.pipe(UB(e)):o}function YW(n,t,e){n?Ah(e,n,t):t()}function k2(...n){return function mye(){return gG(1)}()(tA(n,Xy(n)))}function gd(...n){const t=Xy(n);return fe((e,i)=>{(t?k2(n,e,t):k2(n,e)).subscribe(i)})}const ZW=new Set;let fA,pye=(()=>{class n{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):gye}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Aye(n,t){if(!ZW.has(n))try{fA||(fA=document.createElement("style"),t&&fA.setAttribute("nonce",t),fA.setAttribute("type","text/css"),document.head.appendChild(fA)),fA.sheet&&(fA.sheet.insertRule(`@media ${n} {body{ }}`,0),ZW.add(n))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(GD,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function gye(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let _ye=(()=>{class n{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new Ln}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return JW(b2(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let o=Sh(JW(b2(e)).map(s=>this._registerQuery(s).observable));return o=k2(o.pipe($o(1)),o.pipe(G1(1),n_(0))),o.pipe(Qe(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),o={observable:new Ji(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(gd(i),Qe(({matches:s})=>({query:e,matches:s})),oo(this._destroySubject)),mql:i};return this._queries.set(e,o),o}static{this.\u0275fac=function(i){return new(i||n)(ve(pye),ve(In))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function JW(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function t$(n,t,e){const i=B2(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(" ")))}function ER(n,t,e){const i=B2(n,t);e=e.trim();const r=i.filter(o=>o!==e);r.length?n.setAttribute(t,r.join(" ")):n.removeAttribute(t)}function B2(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}const n$="cdk-describedby-message",P2="cdk-describedby-host";let SR=0,bye=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+SR++,this._document=e,this._id=Qt(Zv)+"-"+SR++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;const o=TR(i,r);"string"!=typeof i?(i$(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,o)||this._addMessageReference(e,o)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;const o=TR(i,r);if(this._isElementDescribedByMessage(e,o)&&this._removeMessageReference(e,o),"string"==typeof i){const s=this._messageRegistry.get(o);s&&0===s.referenceCount&&this._deleteMessageElement(o)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${P2}="${this._id}"]`);for(let i=0;i0!=r.indexOf(n$));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const r=this._messageRegistry.get(i);t$(e,"aria-describedby",r.messageElement.id),e.setAttribute(P2,this._id),r.referenceCount++}_removeMessageReference(e,i){const r=this._messageRegistry.get(i);r.referenceCount--,ER(e,"aria-describedby",r.messageElement.id),e.removeAttribute(P2)}_isElementDescribedByMessage(e,i){const r=B2(e,"aria-describedby"),o=this._messageRegistry.get(i),s=o&&o.messageElement.id;return!!s&&-1!=r.indexOf(s)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),o=e.getAttribute("aria-label");return!(!r||o&&o.trim()===r)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(ro))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function TR(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function i$(n,t){n.id||(n.id=`${n$}-${t}-${SR++}`)}class r${constructor(t,e){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new Ln,this._typeaheadSubscription=Xn.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=i=>i.disabled,this._pressedLetters=[],this.tabOut=new Ln,this.change=new Ln,t instanceof sh?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):EM(t)&&(this._effectRef=function RQ(n,t){Xd("NgSignals"),!t?.injector&&bp();const e=t?.injector??Qt(is),i=!0!==t?.manualCleanup?e.get(qd):null,r=new Pfe(e.get(Dfe),n,typeof Zone>"u"?null:Zone.current,i,e,t?.allowSignalWrites??!1),o=e.get(vo,null,{optional:!0});return o&&8&o._lView[Hn]?(o._lView[Pg]??=[]).push(r.watcher.notify):r.watcher.notify(),r}(()=>this._itemsChanged(t()),{injector:e}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Dr(e=>this._pressedLetters.push(e)),n_(t),qi(()=>this._pressedLetters.length>0),Qe(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let r=1;r!t[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(o=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const r=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return EM(this._items)?this._items():this._items instanceof sh?this._items.toArray():this._items}_itemsChanged(t){if(this._activeItem){const e=t.indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}}class vye extends r${setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class IR extends r${constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let FR=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function wye(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function yye(n){try{return n.frameElement}catch{return null}}(function Fye(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===s$(i)||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),o=s$(e);return e.hasAttribute("contenteditable")?-1!==o:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function Tye(n){let t=n.nodeName.toLowerCase(),e="input"===t&&n.type;return"text"===e||"password"===e||"select"===t||"textarea"===t}(e))&&("audio"===r?!!e.hasAttribute("controls")&&-1!==o:"video"===r?-1!==o&&(null!==o||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Iye(n){return!function Cye(n){return function Eye(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function xye(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function Mye(n){return function Sye(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||o$(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static{this.\u0275fac=function(i){return new(i||n)(ve(ro))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function o$(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function s$(n){if(!o$(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class a${get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}constructor(t,e,i,r,o=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,o||this.attachAnchors()}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){const e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){const e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){const e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;const e=t.children;for(let i=0;i=0;i--){const r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe($o(1)).subscribe(t)}}let l$=(()=>{class n{constructor(e,i,r){this._checker=e,this._ngZone=i,this._document=r}create(e,i=!1){return new a$(e,this._checker,this._ngZone,this._document,i)}static{this.\u0275fac=function(i){return new(i||n)(ve(FR),ve(In),ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function DR(n){return 0===n.buttons||0===n.detail}function kR(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const Dye=new dt("cdk-input-modality-detector-options"),kye={ignoreKeys:[18,17,224,91,16]},c_=dA({passive:!0,capture:!0});let Bye=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(e,i,r,o){this._platform=e,this._mostRecentTarget=null,this._modality=new Ia(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=dm(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(DR(s)?"keyboard":"mouse"),this._mostRecentTarget=dm(s))},this._onTouchstart=s=>{kR(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=dm(s))},this._options={...kye,...o},this.modalityDetected=this._modality.pipe(G1(1)),this.modalityChanged=this.modalityDetected.pipe(d1()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,c_),r.addEventListener("mousedown",this._onMousedown,c_),r.addEventListener("touchstart",this._onTouchstart,c_)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,c_),document.removeEventListener("mousedown",this._onMousedown,c_),document.removeEventListener("touchstart",this._onTouchstart,c_))}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(In),ve(Li),ve(Dye,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Pye=new dt("liveAnnouncerElement",{providedIn:"root",factory:function Rye(){return null}}),Oye=new dt("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Lye=0,Nye=(()=>{class n{constructor(e,i,r,o){this._ngZone=i,this._defaultOptions=o,this._document=r,this._liveElement=e||this._createLiveElement()}announce(e,...i){const r=this._defaultOptions;let o,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[o,s]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=r&&r.politeness?r.politeness:"polite"),null==s&&r&&(s=r.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{constructor(e,i,r,o,s){this._ngZone=e,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new Ln,this._rootNodeFocusAndBlurListener=a=>{for(let c=dm(a);c;c=c.parentElement)"focus"===a.type?this._onFocus(a,c):this._onBlur(a,c)},this._document=o,this._detectionMode=s?.detectionMode||R2.IMMEDIATE}monitor(e,i=!1){const r=Mh(e);if(!this._platform.isBrowser||1!==r.nodeType)return hl();const o=function Sve(n){if(function Eve(){if(null==gR){const n=typeof document<"u"?document.head:null;gR=!(!n||!n.createShadowRoot&&!n.attachShadow)}return gR}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(r)||this._getDocument(),s=this._elementInfo.get(r);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new Ln,rootNode:o};return this._elementInfo.set(r,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Mh(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){const o=Mh(e);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof o.focus&&o.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===R2.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,this._detectionMode===R2.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),o=dm(e);!r||!r.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),r)}_onBlur(e,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,O2),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,O2)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(oo(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,O2),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,O2),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((r,o)=>{(o===e||r.checkChildren&&o.contains(e))&&i.push([o,r])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const o=e.labels;if(o)for(let s=0;s{class n{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Qt(_ye).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return mA.NONE;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,o=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return mA.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return mA.BLACK_ON_WHITE}return mA.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(BR,d$,u$),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===mA.BLACK_ON_WHITE?e.add(BR,d$):i===mA.WHITE_ON_BLACK&&e.add(BR,u$)}}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(Li))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),PR=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}static{this.\u0275fac=function(i){return new(i||n)(ve(h$))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[MR]})}}return n})();function RR(n){return new Ji(t=>{ls(n()).subscribe(t)})}function Hye(n,t){}class L2{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let f$=(()=>{class n extends yR{constructor(e,i,r,o,s,a,l,c){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=o,this._interactivityChecker=s,this._ngZone=a,this._overlayRef=l,this._focusMonitor=c,this._platform=Qt(ro),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=Qt(vo),this.attachDomPortal=d=>{this._portalOutlet.hasAttached();const u=this._portalOutlet.attachDomPortal(d);return this._contentAttached(),u},this._document=r,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const r=()=>{e.removeEventListener("blur",r),e.removeEventListener("mousedown",r),e.removeAttribute("tabindex")};e.addEventListener("blur",r),e.addEventListener("mousedown",r)})),e.focus(i)}_focusByCssSelector(e,i){let r=this._elementRef.nativeElement.querySelector(e);r&&this._forceFocus(r,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const r=x2(),o=this._elementRef.nativeElement;(!r||r===this._document.body||r===o||o.contains(r))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=x2();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=x2()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(l$),$(Li,8),$(L2),$(FR),$(In),$(D2),$(Th))}}static{this.\u0275cmp=bt({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&ti(C2,7),2&i){let o;an(o=ln())&&(r._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&pi("id",r._config.id||null)("role",r._config.role)("aria-modal",r._config.ariaModal)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null)},standalone:!0,features:[yi,Nr],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&pt(0,Hye,0,0,"ng-template",0)},dependencies:[C2],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return n})();class OR{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new Ln,this.disableClose=e.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Ad(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=t.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(t,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",e=""){return this.overlayRef.updateSize({width:t,height:e}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}}const m$=new dt("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.block()}}),Vye=new dt("DialogData"),Qye=new dt("DefaultDialogConfig");let qye=0,p$=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,r,o,s,a){this._overlay=e,this._injector=i,this._defaultOptions=r,this._parentDialog=o,this._overlayContainer=s,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ln,this._afterOpenedAtThisLevel=new Ln,this._ariaHiddenElements=new Map,this.afterAllClosed=RR(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(gd(void 0))),this._scrollStrategy=a}open(e,i){(i={...this._defaultOptions||new L2,...i}).id=i.id||"cdk-dialog-"+qye++,i.id&&this.getDialogById(i.id);const o=this._getOverlayConfig(i),s=this._overlay.create(o),a=new OR(s,i),l=this._attachContainer(s,a,i);return a.containerInstance=l,this._attachDialogContent(e,a,l,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){LR(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){LR(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),LR(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new I2({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,r){const o=r.injector||r.viewContainerRef?.injector,s=[{provide:L2,useValue:r},{provide:OR,useValue:i},{provide:D2,useValue:e}];let a;r.container?"function"==typeof r.container?a=r.container:(a=r.container.type,s.push(...r.container.providers(r))):a=f$;const l=new H1(a,r.viewContainerRef,is.create({parent:o||this._injector,providers:s}),r.componentFactoryResolver);return e.attach(l).instance}_attachDialogContent(e,i,r,o){if(e instanceof jl){const s=this._createInjector(o,i,r,void 0);let a={$implicit:o.data,dialogRef:i};o.templateContext&&(a={...a,..."function"==typeof o.templateContext?o.templateContext():o.templateContext}),r.attachTemplatePortal(new V1(e,null,a,s))}else{const s=this._createInjector(o,i,r,this._injector),a=r.attachComponentPortal(new H1(e,o.viewContainerRef,s,o.componentFactoryResolver));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,r,o){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Vye,useValue:e.data},{provide:OR,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,r)):a.push(...e.providers)),e.direction&&(!s||!s.get(Eh,null,{optional:!0}))&&a.push({provide:Eh,useValue:{value:e.direction,change:hl()}}),is.create({parent:s||o,providers:a})}_removeOpenDialog(e,i){const r=this.openDialogs.indexOf(e);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,s)=>{o?s.setAttribute("aria-hidden",o):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let r=i.length-1;r>-1;r--){const o=i[r];o!==e&&"SCRIPT"!==o.nodeName&&"STYLE"!==o.nodeName&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||n)(ve(Ls),ve(is),ve(Qye,8),ve(n,12),ve(F2),ve(m$))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function LR(n,t){let e=n.length;for(;e--;)t(n[e])}let Gye=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[p$],imports:[q1,Q1,PR,Q1]})}}return n})();const Wye=["text"],$ye=[[["mat-icon"]],"*"],jye=["mat-icon","*"];function Xye(n,t){if(1&n&&xe(0,"mat-pseudo-checkbox",1),2&n){const e=Le();_e("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function Kye(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&_e("disabled",Le().disabled)}function Yye(n,t){if(1&n&&(D(0,"span",4),ye(1),U()),2&n){const e=Le();Q(),sn("(",e.group.label,")")}}const Zye=["mat-internal-form-field",""],Jye=["*"],t1e=new dt("mat-sanity-checks",{providedIn:"root",factory:function e1e(){return!0}});let fr=(()=>{class n{constructor(e,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!_R()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static{this.\u0275fac=function(i){return new(i||n)(ve(h$),ve(t1e,8),ve(Li))}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[N1,N1]})}}return n})();class NR{constructor(t,e,i,r,o){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=o,this.errorState=!1}updateErrorState(){const t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(r,e)??!1;o!==t&&(this.errorState=o,this._stateChanges.next())}}let _$=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var fl=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(fl||{});class a1e{constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=fl.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const b$=dA({passive:!0,capture:!0});class l1e{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=dm(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(o=>o.handleEvent(t))})}}addHandler(t,e,i,r){const o=this._events.get(e);if(o){const s=o.get(i);s?s.add(r):o.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,b$)})}removeHandler(t,e,i){const r=this._events.get(t);if(!r)return;const o=r.get(e);o&&(o.delete(i),0===o.size&&r.delete(e),0===r.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,b$)))}}const v$={enterDuration:225,exitDuration:150},y$=dA({passive:!0,capture:!0}),w$=["mousedown","touchstart"],x$=["mouseup","mouseleave","touchend","touchcancel"];class $1{static{this._eventManager=new l1e}constructor(t,e,i,r){this._target=t,this._ngZone=e,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=Mh(i))}fadeInRipple(t,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...v$,...i.animation};i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);const s=i.radius||function d1e(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}(t,e,r),a=t-r.left,l=e-r.top,c=o.enterDuration,d=document.createElement("div");d.classList.add("mat-ripple-element"),d.style.left=a-s+"px",d.style.top=l-s+"px",d.style.height=2*s+"px",d.style.width=2*s+"px",null!=i.color&&(d.style.backgroundColor=i.color),d.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(d);const u=window.getComputedStyle(d),f=u.transitionDuration,A="none"===u.transitionProperty||"0s"===f||"0s, 0s"===f||0===r.width&&0===r.height,y=new a1e(this,d,i,A);d.style.transform="scale3d(1, 1, 1)",y.state=fl.FADING_IN,i.persistent||(this._mostRecentTransientRipple=y);let _=null;return!A&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const b=()=>this._finishRippleTransition(y),M=()=>this._destroyRipple(y);d.addEventListener("transitionend",b),d.addEventListener("transitioncancel",M),_={onTransitionEnd:b,onTransitionCancel:M}}),this._activeRipples.set(y,_),(A||!c)&&this._finishRippleTransition(y),y}fadeOutRipple(t){if(t.state===fl.FADING_OUT||t.state===fl.HIDDEN)return;const e=t.element,i={...v$,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=fl.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=Mh(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,w$.forEach(i=>{$1._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{x$.forEach(e=>{this._triggerElement.addEventListener(e,this,y$)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===fl.FADING_IN?this._startFadeOutTransition(t):t.state===fl.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=fl.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){const e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=fl.HIDDEN,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel)),t.element.remove()}_onMousedown(t){const e=DR(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(t.state===fl.VISIBLE||t.config.terminateOnPointerUp&&t.state===fl.FADING_IN)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(w$.forEach(e=>$1._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&x$.forEach(e=>t.removeEventListener(e,this,y$)))}}const d_=new dt("mat-ripple-global-options");let Ih=(()=>{class n{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,r,o,s){this._elementRef=e,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new $1(this,i,e,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(ro),$(d_,8),$(_s,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mat-ripple-unbounded",r.unbounded)},inputs:{color:[Ct.None,"matRippleColor","color"],unbounded:[Ct.None,"matRippleUnbounded","unbounded"],centered:[Ct.None,"matRippleCentered","centered"],radius:[Ct.None,"matRippleRadius","radius"],animation:[Ct.None,"matRippleAnimation","animation"],disabled:[Ct.None,"matRippleDisabled","disabled"],trigger:[Ct.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return n})(),u_=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})(),C$=(()=>{class n{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static{this.\u0275fac=function(i){return new(i||n)($(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){2&i&&Un("mat-pseudo-checkbox-indeterminate","indeterminate"===r.state)("mat-pseudo-checkbox-checked","checked"===r.state)("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal","minimal"===r.appearance)("mat-pseudo-checkbox-full","full"===r.appearance)("_mat-animation-noopable","NoopAnimations"===r._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},standalone:!0,features:[Nr],decls:0,vars:0,template:function(i,r){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color);border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color);border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}}return n})(),M$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr]})}}return n})();const E$=new dt("MAT_OPTION_PARENT_COMPONENT"),S$=new dt("MatOptgroup");let u1e=0;class h1e{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let du=(()=>{class n{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,r,o){this._element=e,this._changeDetectorRef=i,this._parent=r,this.group=o,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+u1e++,this.onSelectionChange=new Fn,this._stateChanges=new Ln}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const r=this._getHostElement();"function"==typeof r.focus&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Ad(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new h1e(this,e))}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(vo),$(E$,8),$(S$,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(1&i&&ti(Wye,7),2&i){let o;an(o=ln())&&(r._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){1&i&&ze("click",function(){return r._selectViaInteraction()})("keydown",function(s){return r._handleKeydown(s)}),2&i&&(Zd("id",r.id),pi("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),Un("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],standalone:!0,features:[rs,Nr],ngContentSelectors:jye,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){1&i&&(Yr($ye),pt(0,Xye,1,2,"mat-pseudo-checkbox",1),Vn(1),D(2,"span",2,0),Vn(4,1),U(),pt(5,Kye,1,1,"mat-pseudo-checkbox",3)(6,Yye,2,1,"span",4),xe(7,"div",5)),2&i&&(Tt(0,r.multiple?0:-1),Q(5),Tt(5,r.multiple||!r.selected||r.hideSingleSelectionIndicator?-1:5),Q(),Tt(6,r.group&&r.group._inert?6:-1),Q(),_e("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[C$,Ih],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return n})(),T$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[u_,fr,M$]})}}return n})();const I$={capture:!0},F$=["focus","click","mouseenter","touchstart"],UR="mat-ripple-loader-uninitialized",HR="mat-ripple-loader-class-name",D$="mat-ripple-loader-centered",N2="mat-ripple-loader-disabled";let p1e=(()=>{class n{constructor(){this._document=Qt(Li,{optional:!0}),this._animationMode=Qt(_s,{optional:!0}),this._globalRippleOptions=Qt(d_,{optional:!0}),this._platform=Qt(ro),this._ngZone=Qt(In),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const r=e.target.closest(`[${UR}]`);r&&this._createRipple(r)},this._ngZone.runOutsideAngular(()=>{for(const e of F$)this._document?.addEventListener(e,this._onInteraction,I$)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of F$)this._document?.removeEventListener(i,this._onInteraction,I$)}configureRipple(e,i){e.setAttribute(UR,""),(i.className||!e.hasAttribute(HR))&&e.setAttribute(HR,i.className||""),i.centered&&e.setAttribute(D$,""),i.disabled&&e.setAttribute(N2,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const r=this._hosts.get(e);r?r.disabled=i:i?e.setAttribute(N2,""):e.removeAttribute(N2)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const r=this._document.createElement("span");r.classList.add("mat-ripple",e.getAttribute(HR)),e.append(r);const o=new Ih(new Nn(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=e,o.centered=e.hasAttribute(D$),o.disabled=e.hasAttribute(N2),this.attachRipple(e,o),o}attachRipple(e,i){e.removeAttribute(UR),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),k$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[Nr],attrs:Zye,ngContentSelectors:Jye,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:[".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-form-field{font-family:var(--mdc-form-field-label-text-font);line-height:var(--mdc-form-field-label-text-line-height);font-size:var(--mdc-form-field-label-text-size);font-weight:var(--mdc-form-field-label-text-weight);letter-spacing:var(--mdc-form-field-label-text-tracking);color:var(--mdc-form-field-label-text-color)}.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}"],encapsulation:2,changeDetection:0})}}return n})();var Ai=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(Ai||{});const Fh="*";function Dh(n,t){return{type:Ai.Trigger,name:n,definitions:t,options:{}}}function Fc(n,t=null){return{type:Ai.Animate,styles:t,timings:n}}function jo(n){return{type:Ai.Style,styles:n,offset:null}}function Dc(n,t,e){return{type:Ai.State,name:n,styles:t,options:e}}function Zl(n,t,e=null){return{type:Ai.Transition,expr:n,animation:t,options:e}}function VR(n=null){return{type:Ai.AnimateChild,options:n}}function QR(n,t,e=null){return{type:Ai.Query,selector:n,animation:t,options:e}}class j1{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class P${constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const o=this.players.length;0==o?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==o&&this._onFinish()}),s.onDestroy(()=>{++i==o&&this._onDestroy()}),s.onStart(()=>{++r==o&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function y1e(n,t){}class qR{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const GR="mdc-dialog--open",R$="mdc-dialog--opening",O$="mdc-dialog--closing";let L$=(()=>{class n extends f${constructor(e,i,r,o,s,a,l,c,d){super(e,i,r,o,s,a,l,d),this._animationMode=c,this._animationStateChanged=new Fn,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?U$(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?U$(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(N$,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(R$,GR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(GR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(GR),this._animationsEnabled?(this._hostElement.style.setProperty(N$,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(O$)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(R$,O$)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(l$),$(Li,8),$(qR),$(FR),$(In),$(D2),$(_s,8),$(Th))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(Zd("id",r._config.id),pi("aria-modal",r._config.ariaModal)("role",r._config.role)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null),Un("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[yi,Nr],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(D(0,"div",0)(1,"div",1),pt(2,y1e,0,0,"ng-template",2),U()())},dependencies:[C2],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0;transform:scale(0.8)}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--closing .mdc-dialog__surface{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{opacity:1}.mdc-dialog--open .mdc-dialog__surface{transform:none}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{width:100%;height:100%}.mat-mdc-dialog-component-host{display:contents}.mat-mdc-dialog-container{--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition:opacity linear var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container .mdc-dialog__surface{transition:transform var(--mat-dialog-transition-duration, 0ms) 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container,.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__surface{transition:none}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-title{padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}}return n})();const N$="--mat-dialog-transition-duration";function U$(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?cm(n.substring(0,n.length-2)):n.endsWith("s")?1e3*cm(n.substring(0,n.length-1)):"0"===n?0:null}var U2=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(U2||{});class WR{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new Ln,this._beforeClosed=new Ln,this._state=U2.OPEN,this.disableClose=e.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(qi(r=>"opened"===r.state),$o(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(qi(r=>"closed"===r.state),$o(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Yl(this.backdropClick(),this.keydownEvents().pipe(qi(r=>27===r.keyCode&&!this.disableClose&&!Ad(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),H$(this,"keydown"===r.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(qi(e=>"closing"===e.state),$o(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=U2.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let e=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",e=""){return this._ref.updateSize(t,e),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=U2.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function H$(n,t,e){return n._closeInteractionType=t,n.close(e)}const h_=new dt("MatMdcDialogData"),C1e=new dt("mat-mdc-dialog-default-options"),V$=new dt("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.block()}});let E1e=0,Ns=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,r,o,s,a,l,c){this._overlay=e,this._defaultOptions=o,this._scrollStrategy=s,this._parentDialog=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ln,this._afterOpenedAtThisLevel=new Ln,this.dialogConfigClass=qR,this.afterAllClosed=RR(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(gd(void 0))),this._dialog=i.get(p$),this._dialogRefConstructor=WR,this._dialogContainerType=L$,this._dialogDataToken=h_}open(e,i){let r;(i={...this._defaultOptions||new qR,...i}).id=i.id||"mat-mdc-dialog-"+E1e++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const o=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:L2,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(s,a,l)=>(r=new this._dialogRefConstructor(s,i,l),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=o.componentRef,r.componentInstance=o.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const s=this.openDialogs.indexOf(r);s>-1&&(this.openDialogs.splice(s,1),this.openDialogs.length||this._getAfterAllClosed().next())}),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static{this.\u0275fac=function(i){return new(i||n)(ve(Ls),ve(is),ve(Jk,8),ve(C1e,8),ve(V$),ve(n,12),ve(F2),ve(_s,8))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),S1e=0,Jl=(()=>{class n{constructor(e,i,r){this.dialogRef=e,this._elementRef=i,this._dialog=r,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=z$(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){H$(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||n)($(WR,8),$(Nn),$(Ns))}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,r){1&i&&ze("click",function(s){return r._onButtonClick(s)}),2&i&&pi("aria-label",r.ariaLabel||null)("type",r.type)},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],type:"type",dialogResult:[Ct.None,"mat-dialog-close","dialogResult"],_matDialogClose:[Ct.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],standalone:!0,features:[xr]})}}return n})(),Q$=(()=>{class n{constructor(e,i,r){this._dialogRef=e,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=z$(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static{this.\u0275fac=function(i){return new(i||n)($(WR,8),$(Nn),$(Ns))}}static{this.\u0275dir=Wt({type:n,standalone:!0})}}return n})(),H2=(()=>{class n extends Q${constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+S1e++}_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&Zd("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[yi]})}}return n})(),ec=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0})}}return n})(),kc=(()=>{class n extends Q${_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,r){2&i&&Un("mat-mdc-dialog-actions-align-start","start"===r.align)("mat-mdc-dialog-actions-align-center","center"===r.align)("mat-mdc-dialog-actions-align-end","end"===r.align)},inputs:{align:"align"},standalone:!0,features:[yi]})}}return n})();function z$(n,t){let e=n.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?t.find(i=>i.id===e.id):null}let pA=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Ns],imports:[Gye,q1,Q1,fr,fr]})}}return n})();const T1e=["mat-button",""],I1e=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],F1e=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],D1e=new dt("MAT_BUTTON_CONFIG"),k1e=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let B1e=(()=>{class n{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._animationMode=o,this._focusMonitor=Qt(Th),this._rippleLoader=Qt(p1e),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const s=Qt(D1e,{optional:!0}),a=e.nativeElement,l=a.classList;this.disabledInteractive=s?.disabledInteractive??!1,this._rippleLoader?.configureRipple(a,{className:"mat-mdc-button-ripple"});for(const{attribute:c,mdcClasses:d}of k1e)a.hasAttribute(c)&&l.add(...d)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static{this.\u0275fac=function(i){!function X6(){throw new Error("invalid")}()}}static{this.\u0275dir=Wt({type:n,inputs:{color:"color",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],ariaDisabled:[Ct.HasDecoratorInputTransform,"aria-disabled","ariaDisabled",Jn],disabledInteractive:[Ct.HasDecoratorInputTransform,"disabledInteractive","disabledInteractive",Jn]},features:[rs]})}}return n})(),cs=(()=>{class n extends B1e{constructor(e,i,r,o){super(e,i,r,o)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(In),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){2&i&&(pi("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),cl(r.color?"mat-"+r.color:""),Un("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[yi,Nr],attrs:T1e,ngContentSelectors:F1e,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){1&i&&(Yr(I1e),xe(0,"span",0),Vn(1),D(2,"span",1),Vn(3,1),U(),Vn(4,2),xe(5,"span",2)(6,"span",3)),2&i&&Un("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px);display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{font-family:var(--mdc-text-button-label-text-font);font-size:var(--mdc-text-button-label-text-size);letter-spacing:var(--mdc-text-button-label-text-tracking);font-weight:var(--mdc-text-button-label-text-weight);text-transform:var(--mdc-text-button-label-text-transform);height:var(--mdc-text-button-container-height);border-radius:var(--mdc-text-button-container-shape);padding:0 var(--mat-text-button-horizontal-padding, 8px)}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape)}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color)}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color)}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity)}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity)}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity)}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{font-family:var(--mdc-filled-button-label-text-font);font-size:var(--mdc-filled-button-label-text-size);letter-spacing:var(--mdc-filled-button-label-text-tracking);font-weight:var(--mdc-filled-button-label-text-weight);text-transform:var(--mdc-filled-button-label-text-transform);height:var(--mdc-filled-button-container-height);border-radius:var(--mdc-filled-button-container-shape);padding:0 var(--mat-filled-button-horizontal-padding, 16px)}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color)}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color)}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity)}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity)}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity)}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{font-family:var(--mdc-protected-button-label-text-font);font-size:var(--mdc-protected-button-label-text-size);letter-spacing:var(--mdc-protected-button-label-text-tracking);font-weight:var(--mdc-protected-button-label-text-weight);text-transform:var(--mdc-protected-button-label-text-transform);height:var(--mdc-protected-button-container-height);border-radius:var(--mdc-protected-button-container-shape);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow)}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color)}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color)}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color)}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity)}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity)}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity)}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow)}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow)}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow)}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow)}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{font-family:var(--mdc-outlined-button-label-text-font);font-size:var(--mdc-outlined-button-label-text-size);letter-spacing:var(--mdc-outlined-button-label-text-tracking);font-weight:var(--mdc-outlined-button-label-text-weight);text-transform:var(--mdc-outlined-button-label-text-transform);height:var(--mdc-outlined-button-container-height);border-radius:var(--mdc-outlined-button-container-shape);padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width);padding:0 var(--mat-outlined-button-horizontal-padding, 15px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color)}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape)}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color)}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width))}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color)}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity)}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity)}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity)}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button-base{text-decoration:none}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return n})(),$R=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,u_,fr]})}}return n})();function R1e(n,t){if(1&n){const e=Dn();D(0,"button",5),ze("click",function(){return Ot(e),Rt(Le().data.resolveErrorData.onResolveErrorClick())}),ye(1),U()}if(2&n){const e=Le();Q(),sn(" ",e.data.resolveErrorData.buttonText," ")}}let AA=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-error-dialog"]],decls:7,vars:3,consts:[["mat-dialog-title",""],["mat-dialog-content","",3,"innerHTML"],["mat-dialog-actions","","align","end"],["mat-button","","mat-dialog-close","",3,"click",4,"ngIf"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","",3,"click"]],template:function(i,r){1&i&&(D(0,"h1",0),ye(1),U(),xe(2,"div",1),D(3,"div",2),pt(4,R1e,2,1,"button",3),D(5,"button",4),ye(6,"OK"),U()()),2&i&&(Q(),br(r.data.title),Q(),_e("innerHTML",r.data.message,l3),Q(2),_e("ngIf",r.data.resolveErrorData))},dependencies:[eA,cs,Jl,H2,kc,ec],encapsulation:2})}}return n})();function O1e(n){return{title:"Something is wrong with the loaded file(s)",message:[...L1e(n),...N1e(n)].join("")}}function L1e(n){const t=n.filter(e=>e.errors.length>0);return t.length>0?["

    Errors

    ",...t.map(e=>function U1e(n){return`

    ${n.fileName}: ${jR(' ',n.errors)}

    `}(e))]:[]}function N1e(n){const t=n.filter(e=>e.warnings.length>0);return t.length>0?["

    Warnings

    ",...t.map(e=>function H1e(n){return`

    ${n.fileName}: ${jR(' ',n.warnings)}

    `}(e))]:[]}function jR(n,t){return`

    ${t.map(e=>n+e).join("
    ")}

    `}var V1e=p(7172),G$=p.n(V1e);const X1=JSON.parse('{"rE":"1.129.1","f4":{"X":"1.3"}}'),Q1e=JSON.parse('{"$ref":"#/definitions/ExportCCFile","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"AttributeTypes":{"properties":{"edges":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"},"nodes":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}},"type":"object"},"CodeMapNode":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"children":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"deltas":{"additionalProperties":{"type":"number"},"type":"object"},"edgeAttributes":{"additionalProperties":{"$ref":"#/definitions/EdgeMetricCount"},"type":"object"},"fixedPosition":{"$ref":"#/definitions/FixedPosition"},"id":{"type":"number"},"isExcluded":{"type":"boolean"},"isFlattened":{"type":"boolean"},"link":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"type":{"$ref":"#/definitions/NodeType"}},"required":["name","type"],"type":"object"},"Edge":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"fromNodeName":{"type":"string"},"toNodeName":{"type":"string"},"visible":{"$ref":"#/definitions/EdgeVisibility"}},"required":["attributes","fromNodeName","toNodeName"],"type":"object"},"EdgeMetricCount":{"properties":{"incoming":{"type":"number"},"outgoing":{"type":"number"}},"required":["incoming","outgoing"],"type":"object"},"EdgeVisibility":{"enum":["both","from","none","to"],"type":"string"},"ExportBlacklistItem":{"properties":{"path":{"type":"string"},"type":{"$ref":"#/definitions/ExportBlacklistType"}},"required":["path","type"],"type":"object"},"ExportBlacklistType":{"enum":["exclude","hide"],"type":"string"},"ExportCCFile":{"properties":{"apiVersion":{"type":"string"},"attributeTypes":{"anyOf":[{"$ref":"#/definitions/OldAttributeTypes"},{"$ref":"#/definitions/AttributeTypes"}]},"blacklist":{"items":{"$ref":"#/definitions/ExportBlacklistItem"},"type":"array"},"edges":{"items":{"$ref":"#/definitions/Edge"},"type":"array"},"markedPackages":{"items":{"$ref":"#/definitions/MarkedPackage"},"type":"array"},"nodes":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"projectName":{"type":"string"}},"required":["apiVersion","nodes","projectName"],"type":"object"},"FixedPosition":{"properties":{"height":{"type":"number"},"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number"}},"required":["height","left","top","width"],"type":"object"},"KeyValuePair":{"additionalProperties":{"type":"number"},"type":"object"},"MarkedPackage":{"properties":{"color":{"type":"string"},"path":{"type":"string"}},"required":["color","path"],"type":"object"},"NodeType":{"enum":["File","Folder"],"type":"string"},"OldAttributeTypes":{"properties":{"edges":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"},"nodes":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"}},"type":"object"}}}'),W$=X1.f4.X,uu={fileIsInvalid:"File is empty or invalid.",apiVersionIsInvalid:"API Version is empty or invalid.",majorApiVersionIsOutdated:"API Version Outdated: Update CodeCharta API Version to match cc.json.",minorApiVersionOutdated:"Minor API Version Outdated.",nodesNotUnique:"Node names in combination with node types are not unique.",nodesEmpty:"The nodes array is empty. At least one node is required.",notAllFoldersAreFixed:"If at least one direct sub-folder of root is marked as fixed, all direct sub-folders of root must be fixed.",fixedFoldersOutOfBounds:"Coordinates of fixed folders must be within a range of 0 and 100.",fixedFoldersOverlapped:"Folders may not overlap.",fixedFoldersNotAllowed:"Fixated folders may not be defined in API-Version < 1.2.",fileAlreadyExists:"File already exists.",blacklistError:"Excluding all buildings is not possible."};function z1e(n){const t=[];return n&&function j1e(n){return K1(n.apiVersion).minor>K1(W$).minor}(n)&&t.push(`${uu.minorApiVersionOutdated} Found: ${n.apiVersion}`),t}function q1e(n){const t=[];switch(!0){case!n:t.push(uu.fileIsInvalid);break;case!function W1e(n){const{apiVersion:t}=n,e=void 0!==t,r=/\d+\.\d+/.test(t);return e&&r}(n):t.push(uu.apiVersionIsInvalid);break;case function $1e(n){return K1(n.apiVersion).major>K1(W$).major}(n):t.push(uu.majorApiVersionIsOutdated)}return 0===t.length&&t.push(...function G1e(n){const t=[];if(0===t.length){const i=new(G$())({allErrors:!0}).compile(Q1e);i(n)?0===n.nodes.length?t.push(uu.nodesEmpty):t.push(...function K1e(n){const t=[],e=new Set;return e.add(`${n.name}|${n.type}`),$$(n,t,e,`/${n.name}`),t}(n.nodes[0]),...j$(n)):t.push(...i.errors.map(o=>function X1e(n){return`${n.keyword.charAt(0).toUpperCase()+n.keyword.slice(1)} error: ${n.dataPath.slice(1)} ${n.message}`}(o)))}return t}(n)),t}function K1(n){return{major:Number(n.split(".")[0]),minor:Number(n.split(".")[1])}}function $$(n,t,e,i){if(!No(n))for(const r of n.children){const o=`${i}/${r.name}`;e.has(`${o}|${r.type}`)?t.push(`${uu.nodesNotUnique} Found duplicate of ${r.type} with path: ${o}`):(e.add(`${o}|${r.type}`),$$(r,t,e,o))}}function j$(n,t=n.nodes[0].children){const e=[],i=[],r=[],o=new Set;(function Y1e(n,t,e,i,r,o){for(const s of n)if(void 0===s.fixedPosition)t.push(`${s.name}`);else{const a=K1(e.apiVersion);if(a.major<1||1===a.major&&a.minor<2)return void i.push(`${uu.fixedFoldersNotAllowed} Found: ${e.apiVersion}`);J1e(s)&&r.push(Y1(s));for(const l of n)void 0!==l.fixedPosition&&s!==l&&Z1e(s.fixedPosition,l.fixedPosition)&&!o.has(`${Y1(l)} and ${Y1(s)}`)&&o.add(`${Y1(s)} and ${Y1(l)}`)}})(t,i,n,e,r,o),i.length>0&&i.length!==t.length&&e.push(`${uu.notAllFoldersAreFixed} Found: ${i.join(", ")}`),r.length>0&&e.push(`${uu.fixedFoldersOutOfBounds} Found: ${r.join(", ")}`),o.size>0&&e.push(`${uu.fixedFoldersOverlapped} Found: ${[...o].join(", ")}`);for(const s of t)s.children&&e.push(...j$(n,s.children));return e}function Y1(n){return`${n.name} ${JSON.stringify(n.fixedPosition)}`}function Z1e(n,t){return V2(n.left,n.top,t)||V2(n.left,n.top+n.height,t)||V2(n.left+n.width,n.top,t)||V2(n.left+n.width,n.top+n.height,t)}function V2(n,t,e){return n>=e.left&&n<=e.left+e.width&&t>=e.top&&t<=e.top+e.height}function J1e({fixedPosition:{left:n,top:t,width:e,height:i}}){return n<0||t<0||n+e>100||t+i>100||e<0||i<0}var hu=function(n){return n.SquarifiedTreeMap="Squarified TreeMap",n.StreetMap="StreetMap",n.TreeMapStreet="TreeMapStreet",n}(hu||{}),gA=function(n){return n.Standard="High",n.PixelRatioNoAA="Low",n.PixelRatioFXAA="Medium",n.PixelRatioAA="Best",n}(gA||{}),qa=function(n){return n.FILE="File",n.FOLDER="Folder",n}(qa||{}),Q2=function(n){return n.NAME="Name",n.NUMBER_OF_FILES="Number of Files",n}(Q2||{}),um=function(n){return n.absolute="absolute",n.relative="relative",n}(um||{}),hm=function(n){return n.trueGradient="trueGradient",n.weightedGradient="weightedGradient",n.focusedGradient="focusedGradient",n.absolute="absolute",n}(hm||{}),fu=function(n){return n.none="none",n.from="from",n.to="to",n.both="both",n}(fu||{});function z2(n,t){return t instanceof Map?{dataType:"Map",value:[...t.entries()]}:t instanceof Set?{dataType:"Set",value:[...t]}:t}function X$(n,t){return"Map"===t?.dataType?new Map(t.value):"Set"===t?.dataType?new Set(t.value):t}const XR={decorateMap(n,t,e){for(const{data:i}of yo(n)){i.isFlattened=!1,i.isExcluded=!1;for(const r of e)"flatten"===r.type?i.isFlattened=i.isFlattened||SW(i,r.path):i.isExcluded=i.isExcluded||SW(i,r.path)&&No(i)}n.isExcluded=!1,this.decorateMapWithMetricData(n,t)},decorateMapWithMetricData(n,t){const{nodeMetricData:e,edgeMetricData:i}=t;let r=0;for(const{data:o}of yo(n)){o.id=r,r++,void 0===o.attributes&&(o.attributes={}),No(o)&&(o.attributes[A2]=1);for(const s of e)void 0===o.attributes[s.name]&&(o.attributes[s.name]=0),void 0!==o.deltas&&void 0===o.deltas[s.name]&&(o.deltas[s.name]=0);void 0===o.edgeAttributes&&(o.edgeAttributes={});for(const s of i)void 0===o.edgeAttributes[s.name]&&(o.edgeAttributes[s.name]={incoming:0,outgoing:0});ewe(o)}},decorateMapWithPathAttribute(n){for(const t of yo(n.map))t.data.path=t.parent?`${t.parent.data.path}/${t.data.name}`:`/${t.data.name}`;return n},decorateParentNodesWithAggregatedAttributes(n,t,e){const i=new Map,r=Object.keys(n.attributes),o=Object.keys(n.edgeAttributes);yo(n).eachAfter(function({data:a,parent:l}){if(!a.isExcluded&&l){for(const c of r){const u=`${c}${l.data.path}`;e.nodes[c]===um.relative?(nwe(i,`${c}${a.path}`,u,a,c,t),twe(i,u,a,c,t)):(l.data.attributes[c]+=a.attributes[c],t&&l.data.deltas&&(l.data.deltas[c]=l.data.deltas[c]??0,l.data.deltas[c]+=a.deltas[c]??0))}t&&l.data.fileCount&&(l.data.fileCount.added+=a.fileCount.added,l.data.fileCount.changed+=a.fileCount.changed,l.data.fileCount.removed+=a.fileCount.removed);for(const c of o){const d=a.edgeAttributes[c];if(!d)continue;const u=`${c}${a.path}`,h=`${c}${l.data.path}`;e.edges[c]===um.relative?(Y$(i,`INCOMING${u}`,`INCOMING${h}`,a,c,"incoming"),Y$(i,`OUTGOING${u}`,`OUTGOING${h}`,a,c,"outgoing"),K$(i,`INCOMING${h}`,a,c,"incoming"),K$(i,`OUTGOING${h}`,a,c,"outgoing")):(l.data.edgeAttributes[c].incoming+=d.incoming,l.data.edgeAttributes[c].outgoing+=d.outgoing)}}});for(const s of o)e.edges[s]===um.relative&&(n.edgeAttributes[s].incoming=_A(i.get(`INCOMING${s}${n.path}`)),n.edgeAttributes[s].outgoing=_A(i.get(`OUTGOING${s}${n.path}`)));for(const s of r)e.nodes[s]===um.relative&&(n.attributes[s]=_A(i.get(`MEDIAN${s}${n.path}`)),t&&n.deltas&&(n.deltas[s]=_A(i.get(`DELTA${s}${n.path}`))))}};function ewe(n){if((1!==n.children?.length||!n.children[0]?.fixedPosition)&&1===n.children?.length&&n.children[0].children?.length>0){const[t]=n.children;n.children=t.children,n.name+=`/${t.name}`,n.path+=`/${t.name}`,t.link&&(n.link=t.link)}}function K$(n,t,e,i,r){0!==e.edgeAttributes[i][r]&&YR(n,t,e,e.edgeAttributes[i][r])}function twe(n,t,e,i,r){0!==e.attributes[i]&&YR(n,`MEDIAN${t}`,e,e.attributes[i]),r&&e.deltas&&0!==e.deltas[i]&&YR(n,`DELTA${t}`,e,e.deltas[i])}function nwe(n,t,e,i,r,o){if(No(i))return;const s=n.get(`MEDIAN${t}`);if(void 0!==s&&(i.attributes[r]=_A(s),KR(n,`MEDIAN${e}`,s)),o&&i.deltas){const a=n.get(`DELTA${t}`);void 0!==a&&(i.deltas[r]=_A(a),KR(n,`DELTA${e}`,a))}}function Y$(n,t,e,i,r,o){if(No(i))return;const s=n.get(t);void 0!==s&&(i.edgeAttributes[r][o]=_A(s),KR(n,e,s))}function KR(n,t,e){const i=n.get(t);void 0===i?n.set(t,e):function rwe(n,t){let e=0;for(let i=0;it[e]&&(r++,e++,e!==t.length););if(r>0&&(n.splice(i,0,...t.slice(e-r,e)),e===t.length))return}n.push(...t.slice(e))}(i,e)}function YR(n,t,e,i){const r=n.get(t);void 0===r?n.set(t,[i]):No(e)&&function iwe(n,t){let e=0,i=n.length-1,r=0;if(i<0||n[i]<=t)n.push(t);else if(n[0]>=t)n.unshift(t);else for(;e<=i;)if(r=Math.floor((e+i)/2),n[r]{switch(t.type){case"flatten":return{path:t.path,type:"hide"};case"exclude":return{path:t.path,type:t.type}}})}}function awe(n,t,e){const i=function Wbe(n){const t=n.content;return{fileMeta:{fileName:n.fileName,fileChecksum:t.fileChecksum,projectName:t.projectName,apiVersion:t.apiVersion,exportedFileSize:n.fileSize,repoCreationDate:t.repoCreationDate||""},settings:{fileSettings:{edges:t.edges||[],attributeTypes:$be(t.attributeTypes),attributeDescriptors:jbe(t.attributeDescriptors),blacklist:Xbe(t.blacklist||[]),markedPackages:t.markedPackages||[]}},map:lu(t.nodes[0])}}(e);XR.decorateMapWithPathAttribute(i);const r=i.fileMeta.fileChecksum;let o=i.fileMeta.fileName;const s=new Map(n.map(c=>[c.file.fileMeta.fileName,c.file.fileMeta.fileChecksum])),a=new Map(n.map((c,d)=>[c.file.fileMeta.fileChecksum,d])),l=a.has(r);if(s.has(o)&&(o=function lwe(n,t,e){if(t.get(n)===e)return n;let i=!1,r=1,o=n;for(;!i;){const s=n.indexOf(".");o=s>=0?[n.slice(0,s),"_",r,n.slice(s)].join(""):`${n}_${r}`,(t.get(o)===e||!t.has(o))&&(i=!0),r++}return o}(o,s,r),i.fileMeta.fileName=o),l)return n[a.get(r)].file.fileMeta.fileName=o,t[0]=o,void t.push(o);n.push({file:i,selectedAs:er.None}),t.push(o)}const J$=Kt(xh,n=>n.find(t=>t.selectedAs===er.Reference)?.file),mu={rootName:"root",rootPath:"/root",updateRoot(n){this.rootName=n,this.rootPath=`/${n}`}},ZR="File(s) could not be loaded";let f_=(()=>{class n{static{this.CC_FILE_EXTENSION=".cc.json"}constructor(e,i,r){this.store=e,this.state=i,this.dialog=r,this.referenceFileSubscription=this.store.select(J$).pipe(Dr(o=>{o&&mu.updateRoot(o.map.name)})).subscribe()}ngOnDestroy(){this.referenceFileSubscription.unsubscribe()}loadFiles(e){const i=lu(this.state.getValue().files),r=[],o=[];if(function swe(n,t,e,i){for(const r of e){const o={fileName:r?.fileName,errors:[],warnings:[]};o.errors.push(...q1e(r?.content)),0===o.errors.length&&(o.warnings.push(...z1e(r?.content)),awe(n,t,r)),(o.errors.length>0||o.warnings.length>0)&&i.push(o)}}(i,r,e,o),o.length>0&&this.dialog.open(AA,{data:O1e(o)}),0===r.length)throw new Error(ZR);this.store.dispatch(B1({value:i}));const s=r[0],a=this.state.getValue().files.find(l=>l.file.fileMeta.fileName===s).file.map.name;this.store.dispatch(sR({fileNames:r})),mu.updateRoot(a)}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Ns))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const JR=Ri(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function ej(n,t){const e="object"==typeof t;return new Promise((i,r)=>{const o=new Ss({next:s=>{i(s),o.unsubscribe()},error:r,complete:()=>{e?i(t.defaultValue):r(new JR)}});n.subscribe(o)})}function m_(n){let t=n.length;for(;--t>=0;)n[t]=0}const r4=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),q2=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Awe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),lj=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kh=new Array(576);m_(kh);const ew=new Array(60);m_(ew);const tw=new Array(512);m_(tw);const nw=new Array(256);m_(nw);const o4=new Array(29);m_(o4);const G2=new Array(30);function s4(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}let cj,dj,uj;function a4(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}m_(G2);const hj=n=>n<256?tw[n]:tw[256+(n>>>7)],iw=(n,t)=>{n.pending_buf[n.pending++]=255&t,n.pending_buf[n.pending++]=t>>>8&255},ml=(n,t,e)=>{n.bi_valid>16-e?(n.bi_buf|=t<>16-n.bi_valid,n.bi_valid+=e-16):(n.bi_buf|=t<{ml(n,e[2*t],e[2*t+1])},fj=(n,t)=>{let e=0;do{e|=1&n,n>>>=1,e<<=1}while(--t>0);return e>>>1},mj=(n,t,e)=>{const i=new Array(16);let o,s,r=0;for(o=1;o<=15;o++)r=r+e[o-1]<<1,i[o]=r;for(s=0;s<=t;s++){let a=n[2*s+1];0!==a&&(n[2*s]=fj(i[a]++,a))}},pj=n=>{let t;for(t=0;t<286;t++)n.dyn_ltree[2*t]=0;for(t=0;t<30;t++)n.dyn_dtree[2*t]=0;for(t=0;t<19;t++)n.bl_tree[2*t]=0;n.dyn_ltree[512]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},Aj=n=>{n.bi_valid>8?iw(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},gj=(n,t,e,i)=>{const r=2*t,o=2*e;return n[r]{const i=n.heap[e];let r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s,a,o=0;if(0!==n.sym_next)do{i=255&n.pending_buf[n.sym_buf+o++],i+=(255&n.pending_buf[n.sym_buf+o++])<<8,r=n.pending_buf[n.sym_buf+o++],0===i?pu(n,r,t):(s=nw[r],pu(n,s+256+1,t),a=r4[s],0!==a&&(r-=o4[s],ml(n,r,a)),i--,s=hj(i),pu(n,s,e),a=q2[s],0!==a&&(i-=G2[s],ml(n,i,a)))}while(o{const e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let s,a,c,l=-1;for(n.heap_len=0,n.heap_max=573,s=0;s>1;s>=1;s--)l4(n,e,s);c=o;do{s=n.heap[1],n.heap[1]=n.heap[n.heap_len--],l4(n,e,1),a=n.heap[1],n.heap[--n.heap_max]=s,n.heap[--n.heap_max]=a,e[2*c]=e[2*s]+e[2*a],n.depth[c]=(n.depth[s]>=n.depth[a]?n.depth[s]:n.depth[a])+1,e[2*s+1]=e[2*a+1]=c,n.heap[1]=c++,l4(n,e,1)}while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],((n,t)=>{const e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,d,u,h,f,A,y=0;for(h=0;h<=15;h++)n.bl_count[h]=0;for(e[2*n.heap[n.heap_max]+1]=0,c=n.heap_max+1;c<573;c++)d=n.heap[c],h=e[2*e[2*d+1]+1]+1,h>l&&(h=l,y++),e[2*d+1]=h,!(d>i)&&(n.bl_count[h]++,f=0,d>=a&&(f=s[d-a]),A=e[2*d],n.opt_len+=A*(h+f),o&&(n.static_len+=A*(r[2*d+1]+f)));if(0!==y){do{for(h=l-1;0===n.bl_count[h];)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,y-=2}while(y>0);for(h=l;0!==h;h--)for(d=n.bl_count[h];0!==d;)u=n.heap[--c],!(u>i)&&(e[2*u+1]!==h&&(n.opt_len+=(h-e[2*u+1])*e[2*u],e[2*u+1]=h),d--)}})(n,t),mj(e,l,n.bl_count)},bj=(n,t,e)=>{let i,o,r=-1,s=t[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),t[2*(e+1)+1]=65535,i=0;i<=e;i++)o=s,s=t[2*(i+1)+1],!(++a{let i,o,r=-1,s=t[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),i=0;i<=e;i++)if(o=s,s=t[2*(i+1)+1],!(++a{ml(n,0+(i?1:0),3),Aj(n),iw(n,e),iw(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e};var Bwe={_tr_init:n=>{yj||((()=>{let n,t,e,i,r;const o=new Array(16);for(e=0,i=0;i<28;i++)for(o4[i]=e,n=0;n<1<>=7;i<30;i++)for(G2[i]=r<<7,n=0;n<1<{let r,o,s=0;n.level>0?(2===n.strm.data_type&&(n.strm.data_type=(n=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==n.dyn_ltree[2*e])return 0;if(0!==n.dyn_ltree[18]||0!==n.dyn_ltree[20]||0!==n.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==n.dyn_ltree[2*e])return 1;return 0})(n)),c4(n,n.l_desc),c4(n,n.d_desc),s=(n=>{let t;for(bj(n,n.dyn_ltree,n.l_desc.max_code),bj(n,n.dyn_dtree,n.d_desc.max_code),c4(n,n.bl_desc),t=18;t>=3&&0===n.bl_tree[2*lj[t]+1];t--);return n.opt_len+=3*(t+1)+5+5+4,t})(n),r=n.opt_len+3+7>>>3,o=n.static_len+3+7>>>3,o<=r&&(r=o)):r=o=e+5,e+4<=r&&-1!==t?wj(n,t,e,i):4===n.strategy||o===r?(ml(n,2+(i?1:0),3),_j(n,kh,ew)):(ml(n,4+(i?1:0),3),((n,t,e,i)=>{let r;for(ml(n,t-257,5),ml(n,e-1,5),ml(n,i-4,4),r=0;r(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,0===t?n.dyn_ltree[2*e]++:(n.matches++,t--,n.dyn_ltree[2*(nw[e]+256+1)]++,n.dyn_dtree[2*hj(t)]++),n.sym_next===n.sym_end),_tr_align:n=>{ml(n,2,3),pu(n,256,kh),(n=>{16===n.bi_valid?(iw(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=255&n.bi_buf,n.bi_buf>>=8,n.bi_valid-=8)})(n)}},rw=(n,t,e,i)=>{let r=65535&n,o=n>>>16&65535,s=0;for(;0!==e;){s=e>2e3?2e3:e,e-=s;do{r=r+t[i++]|0,o=o+r|0}while(--s);r%=65521,o%=65521}return r|o<<16};const Rwe=new Uint32Array((()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=1&n?3988292384^n>>>1:n>>>1;t[e]=n}return t})());var Ks=(n,t,e,i)=>{const r=Rwe,o=i+e;n^=-1;for(let s=i;s>>8^r[255&(n^t[s])];return~n},vA={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},yA={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Owe,_tr_stored_block:d4,_tr_flush_block:Lwe,_tr_tally:fm,_tr_align:Nwe}=Bwe,{Z_NO_FLUSH:mm,Z_PARTIAL_FLUSH:Uwe,Z_FULL_FLUSH:Hwe,Z_FINISH:Bc,Z_BLOCK:xj,Z_OK:aa,Z_STREAM_END:Cj,Z_STREAM_ERROR:Au,Z_DATA_ERROR:Vwe,Z_BUF_ERROR:u4,Z_DEFAULT_COMPRESSION:Qwe,Z_FILTERED:zwe,Z_HUFFMAN_ONLY:W2,Z_RLE:qwe,Z_FIXED:Gwe,Z_DEFAULT_STRATEGY:Wwe,Z_UNKNOWN:$we,Z_DEFLATED:$2}=yA,gu=262,CA=(n,t)=>(n.msg=vA[t],t),Mj=n=>2*n-(n>4?9:0),Am=n=>{let t=n.length;for(;--t>=0;)n[t]=0},ixe=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do{e=n.head[--i],n.head[i]=e>=r?e-r:0}while(--t);t=r,i=t;do{e=n.prev[--i],n.prev[i]=e>=r?e-r:0}while(--t)};let gm=(n,t,e)=>(t<{const t=n.state;let e=t.pending;e>n.avail_out&&(e=n.avail_out),0!==e&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,0===t.pending&&(t.pending_out=0))},nc=(n,t)=>{Lwe(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,tc(n.strm)},kr=(n,t)=>{n.pending_buf[n.pending++]=t},sw=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=255&t},_4=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),0===r?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),1===n.state.wrap?n.adler=rw(n.adler,t,r,e):2===n.state.wrap&&(n.adler=Ks(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},Ej=(n,t)=>{let r,o,e=n.max_chain_length,i=n.strstart,s=n.prev_length,a=n.nice_match;const l=n.strstart>n.w_size-gu?n.strstart-(n.w_size-gu):0,c=n.window,d=n.w_mask,u=n.prev,h=n.strstart+258;let f=c[i+s-1],A=c[i+s];n.prev_length>=n.good_match&&(e>>=2),a>n.lookahead&&(a=n.lookahead);do{if(r=t,c[r+s]===A&&c[r+s-1]===f&&c[r]===c[i]&&c[++r]===c[i+1]){i+=2,r++;do{}while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&is){if(n.match_start=t,s=o,o>=a)break;f=c[i+s-1],A=c[i+s]}}}while((t=u[t&d])>l&&0!=--e);return s<=n.lookahead?s:n.lookahead},b_=n=>{const t=n.w_size;let e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-gu)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),ixe(n),i+=t),0===n.strm.avail_in)break;if(e=_4(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=3)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=gm(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=gm(n,n.ins_h,n.window[r+3-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert<3)););}while(n.lookahead{let i,r,o,e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,s=0,a=n.strm.avail_in;do{if(i=65535,o=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>o&&(i=o),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,tc(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(_4(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(0===s);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_watero&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,o+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),o>n.strm.avail_in&&(o=n.strm.avail_in),o&&(_4(n.strm,n.window,n.strstart,o),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.high_water>3,o=n.pending_buf_size-o>65535?65535:n.pending_buf_size-o,e=o>n.w_size?n.w_size:o,r=n.strstart-n.block_start,(r>=e||(r||t===Bc)&&t!==mm&&0===n.strm.avail_in&&r<=o)&&(i=r>o?o:r,s=t===Bc&&0===n.strm.avail_in&&i===r?1:0,d4(n,n.block_start,i,s),n.block_start+=i,tc(n.strm)),s?3:1)},b4=(n,t)=>{let e,i;for(;;){if(n.lookahead=3&&(n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),0!==e&&n.strstart-e<=n.w_size-gu&&(n.match_length=Ej(n,e)),n.match_length>=3)if(i=fm(n,n.strstart-n.match_start,n.match_length-3),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=3){n.match_length--;do{n.strstart++,n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart}while(0!=--n.match_length);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=gm(n,n.ins_h,n.window[n.strstart+1]);else i=fm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(nc(n,!1),0===n.strm.avail_out))return 1}return n.insert=n.strstart<2?n.strstart:2,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2},v_=(n,t)=>{let e,i,r;for(;;){if(n.lookahead=3&&(n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=2,0!==e&&n.prev_length4096)&&(n.match_length=2)),n.prev_length>=3&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-3,i=fm(n,n.strstart-1-n.prev_match,n.prev_length-3),n.lookahead-=n.prev_length-1,n.prev_length-=2;do{++n.strstart<=r&&(n.ins_h=gm(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart)}while(0!=--n.prev_length);if(n.match_available=0,n.match_length=2,n.strstart++,i&&(nc(n,!1),0===n.strm.avail_out))return 1}else if(n.match_available){if(i=fm(n,0,n.window[n.strstart-1]),i&&nc(n,!1),n.strstart++,n.lookahead--,0===n.strm.avail_out)return 1}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=fm(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<2?n.strstart:2,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2};function _u(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}const aw=[new _u(0,0,0,0,Sj),new _u(4,4,8,4,b4),new _u(4,5,16,8,b4),new _u(4,6,32,32,b4),new _u(4,4,16,16,v_),new _u(8,16,32,32,v_),new _u(8,16,128,128,v_),new _u(8,32,128,256,v_),new _u(32,128,258,1024,v_),new _u(32,258,258,4096,v_)];function axe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Am(this.dyn_ltree),Am(this.dyn_dtree),Am(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Am(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Am(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const lw=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||42!==t.status&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&113!==t.status&&666!==t.status?1:0},Tj=n=>{if(lw(n))return CA(n,Au);n.total_in=n.total_out=0,n.data_type=$we;const t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?42:113,n.adler=2===t.wrap?0:1,t.last_flush=-2,Owe(t),aa},Ij=n=>{const t=Tj(n);return t===aa&&(n=>{n.window_size=2*n.w_size,Am(n.head),n.max_lazy_match=aw[n.level].max_lazy,n.good_match=aw[n.level].good_length,n.nice_match=aw[n.level].nice_length,n.max_chain_length=aw[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0})(n.state),t},Fj=(n,t,e,i,r,o)=>{if(!n)return Au;let s=1;if(t===Qwe&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>9||e!==$2||i<8||i>15||t<0||t>9||o<0||o>Gwe||8===i&&1!==s)return CA(n,Au);8===i&&(i=9);const a=new axe;return n.state=a,a.strm=n,a.status=42,a.wrap=s,a.gzhead=null,a.w_bits=i,a.w_size=1<Fj(n,t,$2,15,8,Wwe),deflateInit2:Fj,deflateReset:Ij,deflateResetKeep:Tj,deflateSetHeader:(n,t)=>lw(n)||2!==n.state.wrap?Au:(n.state.gzhead=t,aa),deflate:(n,t)=>{if(lw(n)||t>xj||t<0)return n?CA(n,Au):Au;const e=n.state;if(!n.output||0!==n.avail_in&&!n.input||666===e.status&&t!==Bc)return CA(n,0===n.avail_out?u4:Au);const i=e.last_flush;if(e.last_flush=t,0!==e.pending){if(tc(n),0===n.avail_out)return e.last_flush=-1,aa}else if(0===n.avail_in&&Mj(t)<=Mj(i)&&t!==Bc)return CA(n,u4);if(666===e.status&&0!==n.avail_in)return CA(n,u4);if(42===e.status&&0===e.wrap&&(e.status=113),42===e.status){let r=$2+(e.w_bits-8<<4)<<8,o=-1;if(o=e.strategy>=W2||e.level<2?0:e.level<6?1:6===e.level?2:3,r|=o<<6,0!==e.strstart&&(r|=32),r+=31-r%31,sw(e,r),0!==e.strstart&&(sw(e,n.adler>>>16),sw(e,65535&n.adler)),n.adler=1,e.status=113,tc(n),0!==e.pending)return e.last_flush=-1,aa}if(57===e.status)if(n.adler=0,kr(e,31),kr(e,139),kr(e,8),e.gzhead)kr(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),kr(e,255&e.gzhead.time),kr(e,e.gzhead.time>>8&255),kr(e,e.gzhead.time>>16&255),kr(e,e.gzhead.time>>24&255),kr(e,9===e.level?2:e.strategy>=W2||e.level<2?4:0),kr(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(kr(e,255&e.gzhead.extra.length),kr(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=Ks(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(kr(e,0),kr(e,0),kr(e,0),kr(e,0),kr(e,0),kr(e,9===e.level?2:e.strategy>=W2||e.level<2?4:0),kr(e,3),e.status=113,tc(n),0!==e.pending)return e.last_flush=-1,aa;if(69===e.status){if(e.gzhead.extra){let r=e.pending,o=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+o>e.pending_buf_size;){let a=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+a),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=a,tc(n),0!==e.pending)return e.last_flush=-1,aa;r=0,o-=a}let s=new Uint8Array(e.gzhead.extra);e.pending_buf.set(s.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending+=o,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),tc(n),0!==e.pending)return e.last_flush=-1,aa;r=0}o=e.gzindexr&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r)),tc(n),0!==e.pending)return e.last_flush=-1,aa;r=0}o=e.gzindexr&&(n.adler=Ks(n.adler,e.pending_buf,e.pending-r,r))}e.status=103}if(103===e.status){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(tc(n),0!==e.pending))return e.last_flush=-1,aa;kr(e,255&n.adler),kr(e,n.adler>>8&255),n.adler=0}if(e.status=113,tc(n),0!==e.pending)return e.last_flush=-1,aa}if(0!==n.avail_in||0!==e.lookahead||t!==mm&&666!==e.status){let r=0===e.level?Sj(e,t):e.strategy===W2?((n,t)=>{let e;for(;;){if(0===n.lookahead&&(b_(n),0===n.lookahead)){if(t===mm)return 1;break}if(n.match_length=0,e=fm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(nc(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2})(e,t):e.strategy===qwe?((n,t)=>{let e,i,r,o;const s=n.window;for(;;){if(n.lookahead<=258){if(b_(n),n.lookahead<=258&&t===mm)return 1;if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=3&&n.strstart>0&&(r=n.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){o=n.strstart+258;do{}while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=3?(e=fm(n,1,n.match_length-3),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=fm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(nc(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===Bc?(nc(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(nc(n,!1),0===n.strm.avail_out)?1:2})(e,t):aw[e.level].func(e,t);if((3===r||4===r)&&(e.status=666),1===r||3===r)return 0===n.avail_out&&(e.last_flush=-1),aa;if(2===r&&(t===Uwe?Nwe(e):t!==xj&&(d4(e,0,0,!1),t===Hwe&&(Am(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),tc(n),0===n.avail_out))return e.last_flush=-1,aa}return t!==Bc?aa:e.wrap<=0?Cj:(2===e.wrap?(kr(e,255&n.adler),kr(e,n.adler>>8&255),kr(e,n.adler>>16&255),kr(e,n.adler>>24&255),kr(e,255&n.total_in),kr(e,n.total_in>>8&255),kr(e,n.total_in>>16&255),kr(e,n.total_in>>24&255)):(sw(e,n.adler>>>16),sw(e,65535&n.adler)),tc(n),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?aa:Cj)},deflateEnd:n=>{if(lw(n))return Au;const t=n.state.status;return n.state=null,113===t?CA(n,Vwe):aa},deflateSetDictionary:(n,t)=>{let e=t.length;if(lw(n))return Au;const i=n.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return Au;if(1===r&&(n.adler=rw(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){0===r&&(Am(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}const o=n.avail_in,s=n.next_in,a=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,b_(i);i.lookahead>=3;){let l=i.strstart,c=i.lookahead-2;do{i.ins_h=gm(i,i.ins_h,i.window[l+3-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++}while(--c);i.strstart=l,i.lookahead=2,b_(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,n.next_in=s,n.input=a,n.avail_in=o,i.wrap=r,aa},deflateInfo:"pako deflate (from Nodeca project)"};const wxe=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var j2={assign:function(n){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const e=t.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(const i in e)wxe(e,i)&&(n[i]=e[i])}}return n},flattenChunks:n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;dw[254]=dw[254]=1;var uw={string2buf:n=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(n);let t,e,i,r,o,s=n.length,a=0;for(r=0;r>>6,t[o++]=128|63&e):e<65536?(t[o++]=224|e>>>12,t[o++]=128|e>>>6&63,t[o++]=128|63&e):(t[o++]=240|e>>>18,t[o++]=128|e>>>12&63,t[o++]=128|e>>>6&63,t[o++]=128|63&e);return t},buf2string:(n,t)=>{const e=t||n.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(n.subarray(0,t));let i,r;const o=new Array(2*e);for(r=0,i=0;i4)o[r++]=65533,i+=a-1;else{for(s&=2===a?31:3===a?15:7;a>1&&i1?o[r++]=65533:s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|1023&s)}}return((n,t)=>{if(t<65534&&n.subarray&&Dj)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{(t=t||n.length)>n.length&&(t=n.length);let e=t-1;for(;e>=0&&128==(192&n[e]);)e--;return e<0||0===e?t:e+dw[n[e]]>t?e:t}},kj=function Ixe(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Bj=Object.prototype.toString,{Z_NO_FLUSH:Fxe,Z_SYNC_FLUSH:Dxe,Z_FULL_FLUSH:kxe,Z_FINISH:Bxe,Z_OK:X2,Z_STREAM_END:Pxe,Z_DEFAULT_COMPRESSION:Rxe,Z_DEFAULT_STRATEGY:Oxe,Z_DEFLATED:Lxe}=yA;function hw(n){this.options=j2.assign({level:Rxe,method:Lxe,chunkSize:16384,windowBits:15,memLevel:8,strategy:Oxe},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new kj,this.strm.avail_out=0;let e=cw.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==X2)throw new Error(vA[e]);if(t.header&&cw.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(i="string"==typeof t.dictionary?uw.string2buf(t.dictionary):"[object ArrayBuffer]"===Bj.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,e=cw.deflateSetDictionary(this.strm,i),e!==X2)throw new Error(vA[e]);this._dict_set=!0}}function v4(n,t){const e=new hw(t);if(e.push(n,!0),e.err)throw e.msg||vA[e.err];return e.result}hw.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Bxe:Fxe,e.input="string"==typeof n?uw.string2buf(n):"[object ArrayBuffer]"===Bj.call(n)?new Uint8Array(n):n,e.next_in=0,e.avail_in=e.input.length;;)if(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(o===Dxe||o===kxe)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(r=cw.deflate(e,o),r===Pxe)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=cw.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===X2;if(0!==e.avail_out){if(o>0&&e.next_out>0)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else if(0===e.avail_in)break}else this.onData(e.output)}return!0},hw.prototype.onData=function(n){this.chunks.push(n)},hw.prototype.onEnd=function(n){n===X2&&(this.result=j2.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var Gxe={Deflate:hw,deflate:v4,deflateRaw:function Nxe(n,t){return(t=t||{}).raw=!0,v4(n,t)},gzip:function Uxe(n,t){return(t=t||{}).gzip=!0,v4(n,t)},constants:yA};const K2=16209;var $xe=function(t,e){let i,r,o,s,a,l,c,d,u,h,f,A,y,_,b,M,C,E,L,N,H,j,R,B;const ee=t.state;i=t.next_in,R=t.input,r=i+(t.avail_in-5),o=t.next_out,B=t.output,s=o-(e-t.avail_out),a=o+(t.avail_out-257),l=ee.dmax,c=ee.wsize,d=ee.whave,u=ee.wnext,h=ee.window,f=ee.hold,A=ee.bits,y=ee.lencode,_=ee.distcode,b=(1<>>24,f>>>=E,A-=E,E=C>>>16&255,0===E)B[o++]=65535&C;else{if(!(16&E)){if(64&E){if(32&E){ee.mode=16191;break e}t.msg="invalid literal/length code",ee.mode=K2;break e}C=y[(65535&C)+(f&(1<>>=E,A-=E),A<15&&(f+=R[i++]<>>24,f>>>=E,A-=E,E=C>>>16&255,16&E){if(N=65535&C,E&=15,Al){t.msg="invalid distance too far back",ee.mode=K2;break e}if(f>>>=E,A-=E,E=o-s,N>E){if(E=N-E,E>d&&ee.sane){t.msg="invalid distance too far back",ee.mode=K2;break e}if(H=0,j=h,0===u){if(H+=c-E,E2;)B[o++]=j[H++],B[o++]=j[H++],B[o++]=j[H++],L-=3;L&&(B[o++]=j[H++],L>1&&(B[o++]=j[H++]))}else{H=o-N;do{B[o++]=B[H++],B[o++]=B[H++],B[o++]=B[H++],L-=3}while(L>2);L&&(B[o++]=B[H++],L>1&&(B[o++]=B[H++]))}break}if(64&E){t.msg="invalid distance code",ee.mode=K2;break e}C=_[(65535&C)+(f&(1<>3,i-=L,A-=L<<3,f&=(1<{const l=a.bits;let C,E,L,N,H,R,c=0,d=0,u=0,h=0,f=0,A=0,y=0,_=0,b=0,M=0,j=null;const B=new Uint16Array(16),ee=new Uint16Array(16);let Ee,ne,Ie,we=null;for(c=0;c<=15;c++)B[c]=0;for(d=0;d=1&&0===B[h];h--);if(f>h&&(f=h),0===h)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(u=1;u0&&(0===n||1!==h))return-1;for(ee[1]=0,c=1;c<15;c++)ee[c+1]=ee[c]+B[c];for(d=0;d852||2===n&&b>592)return 1;for(;;){Ee=c-y,s[d]+1=R?(ne=we[s[d]-R],Ie=j[s[d]-R]):(ne=96,Ie=0),C=1<>y)+E]=Ee<<24|ne<<16|Ie}while(0!==E);for(C=1<>=1;if(0!==C?(M&=C-1,M+=C):M=0,d++,0==--B[c]){if(c===h)break;c=t[e+s[d]]}if(c>f&&(M&N)!==L){for(0===y&&(y=f),H+=u,A=c-y,_=1<852||2===n&&b>592)return 1;L=M&N,r[L]=f<<24|A<<16|H-o}}return 0!==M&&(r[H+M]=c-y<<24|64<<16),a.bits=f,0};const{Z_FINISH:Hj,Z_BLOCK:Jxe,Z_TREES:Y2,Z_OK:MA,Z_STREAM_END:eCe,Z_NEED_DICT:tCe,Z_STREAM_ERROR:Pc,Z_DATA_ERROR:Vj,Z_MEM_ERROR:Qj,Z_BUF_ERROR:nCe,Z_DEFLATED:zj}=yA,Z2=16180,J2=16190,Bh=16191,eS=16199,tS=16200,Fo=16209,fX=n=>(n>>>24&255)+(n>>>8&65280)+((65280&n)<<8)+((255&n)<<24);function sCe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const EA=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.mode16211?1:0},mX=n=>{if(EA(n))return Pc;const t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=1&t.wrap),t.mode=Z2,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,MA},pX=n=>{if(EA(n))return Pc;const t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,mX(n)},AX=(n,t)=>{let e;if(EA(n))return Pc;const i=n.state;return t<0?(e=0,t=-t):(e=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Pc:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,pX(n))},gX=(n,t)=>{if(!n)return Pc;const e=new sCe;n.state=e,e.strm=n,e.window=null,e.mode=Z2;const i=AX(n,t);return i!==MA&&(n.state=null),i};let M4,E4,_X=!0;const lCe=n=>{if(_X){M4=new Int32Array(512),E4=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(fw(1,n.lens,0,288,M4,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;fw(2,n.lens,0,32,E4,0,n.work,{bits:5}),_X=!1}n.lencode=M4,n.lenbits=9,n.distcode=E4,n.distbits=5},bX=(n,t,e,i)=>{let r;const o=n.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(e-o.wsize,e),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(t.subarray(e-i,e-i+r),o.wnext),(i-=r)?(o.window.set(t.subarray(e-i,e),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whavegX(n,15),inflateInit2:gX,inflate:(n,t)=>{let e,i,r,o,s,a,l,c,d,u,h,f,A,y,b,M,C,E,L,N,H,j,_=0;const R=new Uint8Array(4);let B,ee;const we=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(EA(n)||!n.output||!n.input&&0!==n.avail_in)return Pc;e=n.state,e.mode===Bh&&(e.mode=16192),s=n.next_out,r=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=e.hold,d=e.bits,u=a,h=l,j=MA;e:for(;;)switch(e.mode){case Z2:if(0===e.wrap){e.mode=16192;break}for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=Ks(e.check,R,2,0),c=0,d=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&c)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Fo;break}if((15&c)!==zj){n.msg="unknown compression method",e.mode=Fo;break}if(c>>>=4,d-=4,H=8+(15&c),0===e.wbits&&(e.wbits=H),H>15||H>e.wbits){n.msg="invalid window size",e.mode=Fo;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(R[0]=255&c,R[1]=c>>>8&255,e.check=Ks(e.check,R,2,0)),c=0,d=0,e.mode=16182;case 16182:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>8&255,R[2]=c>>>16&255,R[3]=c>>>24&255,e.check=Ks(e.check,R,4,0)),c=0,d=0,e.mode=16183;case 16183:for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>8),512&e.flags&&4&e.wrap&&(R[0]=255&c,R[1]=c>>>8&255,e.check=Ks(e.check,R,2,0)),c=0,d=0,e.mode=16184;case 16184:if(1024&e.flags){for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=Ks(e.check,R,2,0)),c=0,d=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(f=e.length,f>a&&(f=a),f&&(e.head&&(H=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(o,o+f),H)),512&e.flags&&4&e.wrap&&(e.check=Ks(e.check,i,f,o)),a-=f,o+=f,e.length-=f),e.length))break e;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===a)break e;f=0;do{H=i[o+f++],e.head&&H&&e.length<65536&&(e.head.name+=String.fromCharCode(H))}while(H&&f>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=Bh;break;case 16189:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>=7&d,d-=7&d,e.mode=16206;break}for(;d<3;){if(0===a)break e;a--,c+=i[o++]<>>=1,d-=1,3&c){case 0:e.mode=16193;break;case 1:if(lCe(e),e.mode=eS,t===Y2){c>>>=2,d-=2;break e}break;case 2:e.mode=16196;break;case 3:n.msg="invalid block type",e.mode=Fo}c>>>=2,d-=2;break;case 16193:for(c>>>=7&d,d-=7&d;d<32;){if(0===a)break e;a--,c+=i[o++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Fo;break}if(e.length=65535&c,c=0,d=0,e.mode=16194,t===Y2)break e;case 16194:e.mode=16195;case 16195:if(f=e.length,f){if(f>a&&(f=a),f>l&&(f=l),0===f)break e;r.set(i.subarray(o,o+f),s),a-=f,o+=f,l-=f,s+=f,e.length-=f;break}e.mode=Bh;break;case 16196:for(;d<14;){if(0===a)break e;a--,c+=i[o++]<>>=5,d-=5,e.ndist=1+(31&c),c>>>=5,d-=5,e.ncode=4+(15&c),c>>>=4,d-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Fo;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,d-=3}for(;e.have<19;)e.lens[we[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,B={bits:e.lenbits},j=fw(0,e.lens,0,19,e.lencode,0,e.work,B),e.lenbits=B.bits,j){n.msg="invalid code lengths set",e.mode=Fo;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=b,d-=b,e.lens[e.have++]=C;else{if(16===C){for(ee=b+2;d>>=b,d-=b,0===e.have){n.msg="invalid bit length repeat",e.mode=Fo;break}H=e.lens[e.have-1],f=3+(3&c),c>>>=2,d-=2}else if(17===C){for(ee=b+3;d>>=b,d-=b,H=0,f=3+(7&c),c>>>=3,d-=3}else{for(ee=b+7;d>>=b,d-=b,H=0,f=11+(127&c),c>>>=7,d-=7}if(e.have+f>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Fo;break}for(;f--;)e.lens[e.have++]=H}}if(e.mode===Fo)break;if(0===e.lens[256]){n.msg="invalid code -- missing end-of-block",e.mode=Fo;break}if(e.lenbits=9,B={bits:e.lenbits},j=fw(1,e.lens,0,e.nlen,e.lencode,0,e.work,B),e.lenbits=B.bits,j){n.msg="invalid literal/lengths set",e.mode=Fo;break}if(e.distbits=6,e.distcode=e.distdyn,B={bits:e.distbits},j=fw(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,B),e.distbits=B.bits,j){n.msg="invalid distances set",e.mode=Fo;break}if(e.mode=eS,t===Y2)break e;case eS:e.mode=tS;case tS:if(a>=6&&l>=258){n.next_out=s,n.avail_out=l,n.next_in=o,n.avail_in=a,e.hold=c,e.bits=d,$xe(n,h),s=n.next_out,r=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=e.hold,d=e.bits,e.mode===Bh&&(e.back=-1);break}for(e.back=0;_=e.lencode[c&(1<>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>E)],b=_>>>24,M=_>>>16&255,C=65535&_,!(E+b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=E,d-=E,e.back+=E}if(c>>>=b,d-=b,e.back+=b,e.length=C,0===M){e.mode=16205;break}if(32&M){e.back=-1,e.mode=Bh;break}if(64&M){n.msg="invalid literal/length code",e.mode=Fo;break}e.extra=15&M,e.mode=16201;case 16201:if(e.extra){for(ee=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;_=e.distcode[c&(1<>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>E)],b=_>>>24,M=_>>>16&255,C=65535&_,!(E+b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=E,d-=E,e.back+=E}if(c>>>=b,d-=b,e.back+=b,64&M){n.msg="invalid distance code",e.mode=Fo;break}e.offset=C,e.extra=15&M,e.mode=16203;case 16203:if(e.extra){for(ee=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Fo;break}e.mode=16204;case 16204:if(0===l)break e;if(f=h-l,e.offset>f){if(f=e.offset-f,f>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Fo;break}f>e.wnext?(f-=e.wnext,A=e.wsize-f):A=e.wnext-f,f>e.length&&(f=e.length),y=e.window}else y=r,A=s-e.offset,f=e.length;f>l&&(f=l),l-=f,e.length-=f;do{r[s++]=y[A++]}while(--f);0===e.length&&(e.mode=tS);break;case 16205:if(0===l)break e;r[s++]=e.length,l--,e.mode=tS;break;case 16206:if(e.wrap){for(;d<32;){if(0===a)break e;a--,c|=i[o++]<{if(EA(n))return Pc;let t=n.state;return t.window&&(t.window=null),n.state=null,MA},inflateGetHeader:(n,t)=>{if(EA(n))return Pc;const e=n.state;return 2&e.wrap?(e.head=t,t.done=!1,MA):Pc},inflateSetDictionary:(n,t)=>{const e=t.length;let i,r,o;return EA(n)||(i=n.state,0!==i.wrap&&i.mode!==J2)?Pc:i.mode===J2&&(r=1,r=rw(r,t,e,0),r!==i.check)?Vj:(o=bX(n,t,e,e),o?(i.mode=16210,Qj):(i.havedict=1,MA))},inflateInfo:"pako inflate (from Nodeca project)"},CCe=function xCe(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const vX=Object.prototype.toString,{Z_NO_FLUSH:MCe,Z_FINISH:ECe,Z_OK:mw,Z_STREAM_END:S4,Z_NEED_DICT:T4,Z_STREAM_ERROR:SCe,Z_DATA_ERROR:yX,Z_MEM_ERROR:TCe}=yA;function pw(n){this.options=j2.assign({chunkSize:65536,windowBits:15,to:""},n||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new kj,this.strm.avail_out=0;let e=Ph.inflateInit2(this.strm,t.windowBits);if(e!==mw)throw new Error(vA[e]);if(this.header=new CCe,Ph.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=uw.string2buf(t.dictionary):"[object ArrayBuffer]"===vX.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Ph.inflateSetDictionary(this.strm,t.dictionary),e!==mw)))throw new Error(vA[e])}function I4(n,t){const e=new pw(t);if(e.push(n),e.err)throw e.msg||vA[e.err];return e.result}pw.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(s=t===~~t?t:!0===t?ECe:MCe,e.input="[object ArrayBuffer]"===vX.call(n)?new Uint8Array(n):n,e.next_in=0,e.avail_in=e.input.length;;){for(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),o=Ph.inflate(e,s),o===T4&&r&&(o=Ph.inflateSetDictionary(e,r),o===mw?o=Ph.inflate(e,s):o===yX&&(o=T4));e.avail_in>0&&o===S4&&e.state.wrap>0&&0!==n[e.next_in];)Ph.inflateReset(e),o=Ph.inflate(e,s);switch(o){case SCe:case yX:case T4:case TCe:return this.onEnd(o),this.ended=!0,!1}if(a=e.avail_out,e.next_out&&(0===e.avail_out||o===S4))if("string"===this.options.to){let l=uw.utf8border(e.output,e.next_out),c=e.next_out-l,d=uw.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(d)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(o!==mw||0!==a){if(o===S4)return o=Ph.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},pw.prototype.onData=function(n){this.chunks.push(n)},pw.prototype.onEnd=function(n){n===mw&&(this.result="string"===this.options.to?this.chunks.join(""):j2.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var RCe={Inflate:pw,inflate:I4,inflateRaw:function ICe(n,t){return(t=t||{}).raw=!0,I4(n,t)},ungzip:I4,constants:yA};const{ungzip:zCe}=RCe;var F4=zCe;class wX{constructor(t){this.httpClient=t}getParameterByName(t){const e=t.replaceAll(/[[\]]/g,"\\$&"),r=new RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`).exec(window.location.href);return r?r[2]?decodeURIComponent(r[2].replaceAll("+"," ")):"":null}getFileDataFromQueryParam(){var t=this;return k(function*(){const i=new URLSearchParams(window.location.search).getAll("file");if(0===i.length)throw new Error("Filename is missing");return Promise.all(i.map(function(){var r=k(function*(o){return t.getFileDataFromFile(o)});return function(o){return r.apply(this,arguments)}}()))})()}getFileDataFromFile(t){var e=this;return k(function*(){if(!t)throw new Error("Filename is missing");return t.endsWith(".gz")?e.getUnzippedFile(t):e.getFile(t)})()}getUnzippedFile(t){var e=this;return k(function*(){const i=yield ej(e.httpClient.get(t,{responseType:"arraybuffer",observe:"response"}));if(i.status>=200&&i.status<300){const s=rR(F4(i.body,{to:"string"}));return{fileName:e.getFileName(t,s.projectName),fileSize:13,content:s}}throw new Error(`Could not load file "${t}"`)})()}getFile(t){var e=this;return k(function*(){const i=yield ej(e.httpClient.get(t,{observe:"response"}));if(i.status>=200&&i.status<300){const o=rR(i.body);return{fileName:t=e.getFileName(t,o.projectName),fileSize:15,content:o}}throw new Error(`Could not load file "${t}"`)})()}getFileName(t,e){return e?.trim()||t.split("/").pop()}}const nS={fileName:"sample1.cc.json",fileSize:3072,content:fbe},iS={fileName:"sample2.cc.json",fileSize:2048,content:mbe};let D4=(()=>{class n{constructor(e,i,r,o,s){this.store=e,this.state=i,this.dialog=r,this.loadFileService=o,this.httpClient=s,this.urlUtils=new wX(this.httpClient)}loadFilesOrSampleFiles(){var e=this;return k(function*(){yield e.checkFileQueryParameterPresent()?e.loadFilesFromQueryParams():e.loadFilesFromIndexedDB()})()}checkFileQueryParameterPresent(){return!!this.urlUtils.getParameterByName("file")}loadFilesFromQueryParams(){var e=this;return k(function*(){try{const i=yield e.urlUtils.getFileDataFromQueryParam(),r=yield ZP();if(!r)return e.loadFileService.loadFiles(i),void e.setRenderStateFromUrl();const o=r.files,s=o.map(c=>Z$(c.file)),a=i.map(c=>c.content.fileChecksum),l=s.map(c=>c.content.fileChecksum);md(a)===md(l)?e.applySettingsAndFilesFromSavedState(o,r,s):e.applySettingsFromSavedState(r,i),e.setRenderStateFromUrl()}catch(i){yield e.handleErrorLoadFilesFromQueryParams(i)}finally{e.setMetricsFromUrl()}})()}applySettingsAndFilesFromSavedState(e,i,r){const o=[];i.appSettings.resetCameraIfNewFileIsLoaded||this.store.dispatch({type:"StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"});const s=this.applyAppSettings(i.appSettings);o.push(...s),this.loadFileService.loadFiles(r),this.store.dispatch(B1({value:e}));const a=this.applyFileSettings(i.fileSettings);o.push(...a);const l=this.applyDynamicSettings(i.dynamicSettings);o.push(...l),o.length>0&&this.showErrorDialogForMissingProperties(o)}applySettingsFromSavedState(e,i){this.applyAllSettings(e),this.loadFileService.loadFiles(i)}showErrorDialogForMissingProperties(e){const r=this.buildMissingPropertiesMessage(e);this.showErrorDialog("The previous state could not be fully restored after loading the page. The following properties were not restored.",r)}handleErrorLoadFilesFromQueryParams(e){var i=this;return k(function*(){if(e.message!==ZR){const r="File(s) could not be loaded from the given file URL parameter. Loaded sample files instead.",o=i.createTitleUrlErrorDialog(e);i.showErrorDialog(r,o)}yield i.loadSampleFiles()})()}loadFilesFromIndexedDB(){var e=this;return k(function*(){try{const i=yield ZP();if(!i)return void(yield e.loadSampleFiles());const r=i.files,o=r.map(s=>Z$(s.file));e.applySettingsAndFilesFromSavedState(r,i,o)}catch(i){yield e.handleErrorLoadFilesFromIndexedDB(i)}})()}handleErrorLoadFilesFromIndexedDB(e){var i=this;return k(function*(){e.message!==ZR&&i.showErrorDialog("Previously loaded files and settings could not be restored. Loaded sample files instead.",e.message),yield i.loadSampleFiles()})()}applyAllSettings(e){var i=this;return k(function*(){const r=e.fileSettings,o=e.dynamicSettings,s=e.appSettings,a=[];if(r){const l=i.applyFileSettings(r);a.push(...l)}if(o){const l=i.applyDynamicSettings(o);a.push(...l)}if(s){const l=i.applyAppSettings(s);a.push(...l)}a.length>0&&i.showErrorDialogForMissingProperties(a)})()}applyFileSettings(e){const i=this.state.getValue().fileSettings,r=[];for(const[o,s]of Object.entries(i))o in e?md(s)!==md(e[o])&&this.mapFileSettingToAction(o,e[o]):r.push(o);return r}applyDynamicSettings(e){const i=this.state.getValue().dynamicSettings,r=[];for(const[o,s]of Object.entries(i))o in e?md(s)!==md(e[o])&&this.mapDynamicSettingToAction(o,e[o]):r.push(o);return r}applyAppSettings(e){const i=this.state.getValue().appSettings,r=[];for(const[o,s]of Object.entries(i))o in e?md(s)!==md(e[o])&&this.mapAppSettingToAction(o,e[o]):r.push(o);return r}mapFileSettingToAction(e,i){switch(e){case"attributeTypes":this.store.dispatch(OP({value:i}));break;case"attributeDescriptors":this.store.dispatch(RP({value:i}));break;case"blacklist":this.store.dispatch(NP({value:i}));break;case"edges":this.store.dispatch(VP({value:i}));break;case"markedPackages":this.store.dispatch(r2({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapDynamicSettingToAction(e,i){switch(e){case"areaMetric":this.store.dispatch(vh({value:i}));break;case"heightMetric":this.store.dispatch(wh({value:i}));break;case"edgeMetric":this.store.dispatch(yh({value:i}));break;case"colorMetric":this.store.dispatch(pd({value:i}));break;case"colorMode":this.store.dispatch(J0({value:i}));break;case"sortingOption":this.store.dispatch(e2({value:i}));break;case"colorRange":this.store.dispatch(ru({value:i}));break;case"distributionMetric":this.store.dispatch(T1({value:i}));break;case"focusedNodePath":break;case"searchPattern":this.store.dispatch(am({value:i}));break;case"margin":this.store.dispatch(e_({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapAppSettingToAction(e,i){switch(e){case"amountOfTopLabels":case"amountOfEdgePreviews":this.store.dispatch(sm({value:i}));break;case"edgeHeight":this.store.dispatch(Y0({value:i}));break;case"scaling":this.store.dispatch(Z0({value:i}));break;case"hideFlatBuildings":this.store.dispatch(_1({value:i}));break;case"invertHeight":this.store.dispatch(v1({value:i}));break;case"invertArea":this.store.dispatch(b1({value:i}));break;case"isWhiteBackground":this.store.dispatch(y1({value:i}));break;case"mapColors":this.store.dispatch(bh({value:i}));break;case"isPresentationMode":this.store.dispatch(KE({value:i}));break;case"showOnlyBuildingsWithEdges":this.store.dispatch(S1({value:i}));break;case"isEdgeMetricVisible":this.store.dispatch(kP({value:i}));break;case"resetCameraIfNewFileIsLoaded":this.store.dispatch(JE({value:i}));break;case"isLoadingMap":this.store.dispatch(r_({value:i}));break;case"isLoadingFile":this.store.dispatch(cA({value:i}));break;case"sortingOrderAscending":case"isSearchPanelPinned":break;case"showMetricLabelNameValue":this.store.dispatch(M1({value:i}));break;case"showMetricLabelNodeName":this.store.dispatch(E1({value:i}));break;case"layoutAlgorithm":this.store.dispatch(w1({value:i}));break;case"maxTreeMapFiles":this.store.dispatch(x1({value:i}));break;case"sharpnessMode":this.store.dispatch(C1({value:i}));break;case"experimentalFeaturesEnabled":this.store.dispatch(jE({value:i}));break;case"screenshotToClipboardEnabled":this.store.dispatch($E({value:i}));break;case"colorLabels":this.store.dispatch(A1({value:i}));break;case"isColorMetricLinkedToHeightMetric":this.store.dispatch(BP({value:i}));break;case"enableFloorLabels":this.store.dispatch(g1({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}buildMissingPropertiesMessage(e){return`${jR(' ',e)}`}loadSampleFiles(){var e=this;return k(function*(){try{const i=yield ZP();i&&e.applyAllSettings(i),e.loadFileService.loadFiles([nS,iS])}catch{e.loadFileService.loadFiles([nS,iS])}})()}showErrorDialog(e,i){this.dialog.open(AA,{data:{title:e,message:i}})}createTitleUrlErrorDialog(e){let i="Error";return e.message?i+=` (${e.message})`:e.statusText&&e.status&&(i+=` (${e.status}: ${e.statusText})`),i}setMetricsFromUrl(){const e=this.urlUtils.getParameterByName(cu.areaMetric),i=this.urlUtils.getParameterByName(cu.heightMetric),r=this.urlUtils.getParameterByName(cu.colorMetric),o=this.urlUtils.getParameterByName(cu.edgeMetric),s=this.state.getValue(),a=Xs(s).nodeMetricData,l=Xs(s).edgeMetricData;if(!a)return;const c=new Set(a.map(u=>u.name)),d=l.map(u=>u.name);e&&c.has(e)&&this.store.dispatch(vh({value:e})),i&&c.has(i)&&this.store.dispatch(wh({value:i})),r&&c.has(r)&&this.store.dispatch(pd({value:r})),o&&d.includes(o)&&this.store.dispatch(yh({value:o}))}setRenderStateFromUrl(){const e=this.urlUtils.getParameterByName("mode"),i=function Abe(n){return n.map(t=>t.file)}(this.state.getValue().files);"Delta"===e&&i.length>=2&&this.store.dispatch(g2({referenceFile:i[0],comparisonFile:i[1]}))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Ns),ve(f_),ve(Zy))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),ZCe=(()=>{class n{constructor(){this.version=X1.rE}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-logo"]],decls:5,vars:1,consts:[["id","logo"],["href","https://github.com/MaibornWolff/codecharta","target","_blank","rel","noopener noreferrer"],["src","codeCharta/assets/codecharta_logo.svg","alt","CodeCharta","rel","noopener noreferrer"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"a",1),xe(2,"img",2),U(),D(3,"h2"),ye(4),U()()),2&i&&(Q(4),sn("Version ",r.version,""))},styles:["#logo[_ngcontent-%COMP%]{display:flex;flex-direction:column;position:absolute;left:2em;bottom:1em;z-index:1}#logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{object-fit:contain;max-width:100%;height:auto}#logo[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:#5a585a;font-weight:700;font-size:10px;text-align:center;margin:0;z-index:-1}"]})}}return n})();const so=n=>n.appSettings,k4=Kt(so,n=>n.isLoadingFile),xX=Kt(so,n=>n.sharpnessMode),MX=1,tMe=2,Rh=3,oS=0,SMe=1,TMe=2,vm=0,IMe=1,FMe=2,DMe=3,kMe=4,BMe=5,PMe=6,RMe=7,ym=301,TA=302,Aw=306,x_=1e3,_d=1001,la=1003,xs=1006,Nh=1008,Uh=1009,DX=1010,kX=1011,_w=1012,L4=1013,wm=1014,ic=1015,C_=1016,N4=1017,U4=1018,M_=1020,BX=35902,PX=1021,RX=1022,$a=1023,OX=1024,LX=1025,E_=1026,S_=1027,H4=1028,dS=1029,NX=1030,V4=1031,Q4=1033,uS=33776,hS=33777,fS=33778,mS=33779,z4=35840,q4=35841,G4=35842,W4=35843,$4=36196,j4=37492,X4=37496,K4=37808,Y4=37809,Z4=37810,J4=37811,eO=37812,tO=37813,nO=37814,iO=37815,rO=37816,oO=37817,sO=37818,aO=37819,lO=37820,cO=37821,pS=36492,dO=36494,uO=36495,UX=36283,hO=36284,fO=36285,mO=36286,Oc="srgb",Cm="srgb-linear",_O="display-p3",_S="display-p3-linear",bS="linear",wo="srgb",vS="rec709",yS="p3",F_=7680,zX="300 es",Hh=2e3;class Vh{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const i=this._listeners;void 0===i[t]&&(i[t]=[]),-1===i[t].indexOf(e)&&i[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const i=this._listeners;return void 0!==i[t]&&-1!==i[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const r=this._listeners[t];if(void 0!==r){const o=r.indexOf(e);-1!==o&&r.splice(o,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const i=this._listeners[t.type];if(void 0!==i){t.target=this;const r=i.slice(0);for(let o=0,s=r.length;o>8&255]+va[n>>16&255]+va[n>>24&255]+"-"+va[255&t]+va[t>>8&255]+"-"+va[t>>16&15|64]+va[t>>24&255]+"-"+va[63&e|128]+va[e>>8&255]+"-"+va[e>>16&255]+va[e>>24&255]+va[255&i]+va[i>>8&255]+va[i>>16&255]+va[i>>24&255]).toLowerCase()}function Xo(n,t,e){return Math.max(t,Math.min(e,n))}function bw(n,t,e){return(1-e)*n+e*t}function ja(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Ni(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return Math.round(4294967295*n);case Uint16Array:return Math.round(65535*n);case Uint8Array:return Math.round(255*n);case Int32Array:return Math.round(2147483647*n);case Int16Array:return Math.round(32767*n);case Int8Array:return Math.round(127*n);default:throw new Error("Invalid component type.")}}const hEe_DEG2RAD=FA;class nt{constructor(t=0,e=0){nt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,i=this.y,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6],this.y=r[1]*e+r[4]*i+r[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(Xo(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y;return e*e+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const i=Math.cos(e),r=Math.sin(e),o=this.x-t.x,s=this.y-t.y;return this.x=o*i-s*r+t.x,this.y=o*r+s*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class xi{constructor(t,e,i,r,o,s,a,l,c){xi.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,i,r,o,s,a,l,c)}set(t,e,i,r,o,s,a,l,c){const d=this.elements;return d[0]=t,d[1]=r,d[2]=a,d[3]=e,d[4]=o,d[5]=l,d[6]=i,d[7]=s,d[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(t,e,i){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,r=e.elements,o=this.elements,s=i[0],a=i[3],l=i[6],c=i[1],d=i[4],u=i[7],h=i[2],f=i[5],A=i[8],y=r[0],_=r[3],b=r[6],M=r[1],C=r[4],E=r[7],L=r[2],N=r[5],H=r[8];return o[0]=s*y+a*M+l*L,o[3]=s*_+a*C+l*N,o[6]=s*b+a*E+l*H,o[1]=c*y+d*M+u*L,o[4]=c*_+d*C+u*N,o[7]=c*b+d*E+u*H,o[2]=h*y+f*M+A*L,o[5]=h*_+f*C+A*N,o[8]=h*b+f*E+A*H,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8];return e*s*d-e*a*c-i*o*d+i*a*l+r*o*c-r*s*l}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8],u=d*s-a*c,h=a*l-d*o,f=c*o-s*l,A=e*u+i*h+r*f;if(0===A)return this.set(0,0,0,0,0,0,0,0,0);const y=1/A;return t[0]=u*y,t[1]=(r*c-d*i)*y,t[2]=(a*i-r*s)*y,t[3]=h*y,t[4]=(d*e-r*l)*y,t[5]=(r*o-a*e)*y,t[6]=f*y,t[7]=(i*l-c*e)*y,t[8]=(s*e-i*o)*y,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,i,r,o,s,a){const l=Math.cos(o),c=Math.sin(o);return this.set(i*l,i*c,-i*(l*s+c*a)+s+t,-r*c,r*l,-r*(-c*s+l*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(vO.makeScale(t,e)),this}rotate(t){return this.premultiply(vO.makeRotation(-t)),this}translate(t,e){return this.premultiply(vO.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,i=t.elements;for(let r=0;r<9;r++)if(e[r]!==i[r])return!1;return!0}fromArray(t,e=0){for(let i=0;i<9;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const vO=new xi;function GX(n){for(let t=n.length-1;t>=0;--t)if(n[t]>=65535)return!0;return!1}function vw(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function mEe(){const n=vw("canvas");return n.style.display="block",n}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const WX={};function B_(n){n in WX||(WX[n]=!0,console.warn(n))}const $X=(new xi).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),jX=(new xi).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),yw={[Cm]:{transfer:bS,primaries:vS,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n,fromReference:n=>n},[Oc]:{transfer:wo,primaries:vS,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[_S]:{transfer:bS,primaries:yS,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.applyMatrix3(jX),fromReference:n=>n.applyMatrix3($X)},[_O]:{transfer:wo,primaries:yS,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.convertSRGBToLinear().applyMatrix3(jX),fromReference:n=>n.applyMatrix3($X).convertLinearToSRGB()}},AEe=new Set([Cm,_S]),Br={enabled:!0,_workingColorSpace:Cm,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!AEe.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,t,e){return!1!==this.enabled&&t!==e&&t&&e?(0,yw[e].fromReference)((0,yw[t].toReference)(n)):n},fromWorkingColorSpace:function(n,t){return this.convert(n,this._workingColorSpace,t)},toWorkingColorSpace:function(n,t){return this.convert(n,t,this._workingColorSpace)},getPrimaries:function(n){return yw[n].primaries},getTransfer:function(n){return""===n?bS:yw[n].transfer},getLuminanceCoefficients:function(n,t=this._workingColorSpace){return n.fromArray(yw[t].luminanceCoefficients)}};function P_(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function yO(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}let R_;class gEe{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===R_&&(R_=vw("canvas")),R_.width=t.width,R_.height=t.height;const i=R_.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=R_}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=vw("canvas");e.width=t.width,e.height=t.height;const i=e.getContext("2d");i.drawImage(t,0,0,t.width,t.height);const r=i.getImageData(0,0,t.width,t.height),o=r.data;for(let s=0;s{class n extends Vh{constructor(e=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=_d,o=_d,s=xs,a=Nh,l=$a,c=Uh,d=n.DEFAULT_ANISOTROPY,u=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:bEe++}),this.uuid=rc(),this.name="",this.source=new O_(e),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=o,this.magFilter=s,this.minFilter=a,this.anisotropy=d,this.format=l,this.internalFormat=null,this.type=c,this.offset=new nt(0,0),this.repeat=new nt(1,1),this.center=new nt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new xi,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=u,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){const i=void 0===e||"string"==typeof e;if(!i&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];const r={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),i||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(300!==this.mapping)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case x_:e.x=e.x-Math.floor(e.x);break;case _d:e.x=e.x<0?0:1;break;case 1002:e.x=1===Math.abs(Math.floor(e.x)%2)?Math.ceil(e.x)-e.x:e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case x_:e.y=e.y-Math.floor(e.y);break;case _d:e.y=e.y<0?0:1;break;case 1002:e.y=1===Math.abs(Math.floor(e.y)%2)?Math.ceil(e.y)-e.y:e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){!0===e&&this.pmremVersion++}}return n.DEFAULT_IMAGE=null,n.DEFAULT_MAPPING=300,n.DEFAULT_ANISOTROPY=1,n})();class Wr{constructor(t=0,e=0,i=0,r=1){Wr.prototype.isVector4=!0,this.x=t,this.y=e,this.z=i,this.w=r}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,i,r){return this.x=t,this.y=e,this.z=i,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,o=this.w,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*r+s[12]*o,this.y=s[1]*e+s[5]*i+s[9]*r+s[13]*o,this.z=s[2]*e+s[6]*i+s[10]*r+s[14]*o,this.w=s[3]*e+s[7]*i+s[11]*r+s[15]*o,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,i,r,o;const l=t.elements,c=l[0],d=l[4],u=l[8],h=l[1],f=l[5],A=l[9],y=l[2],_=l[6],b=l[10];if(Math.abs(d-h)<.01&&Math.abs(u-y)<.01&&Math.abs(A-_)<.01){if(Math.abs(d+h)<.1&&Math.abs(u+y)<.1&&Math.abs(A+_)<.1&&Math.abs(c+f+b-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const C=(c+1)/2,E=(f+1)/2,L=(b+1)/2,N=(d+h)/4,H=(u+y)/4,j=(A+_)/4;return C>E&&C>L?C<.01?(i=0,r=.707106781,o=.707106781):(i=Math.sqrt(C),r=N/i,o=H/i):E>L?E<.01?(i=.707106781,r=0,o=.707106781):(r=Math.sqrt(E),i=N/r,o=j/r):L<.01?(i=.707106781,r=.707106781,o=0):(o=Math.sqrt(L),i=H/o,r=j/o),this.set(i,r,o,e),this}let M=Math.sqrt((_-A)*(_-A)+(u-y)*(u-y)+(h-d)*(h-d));return Math.abs(M)<.001&&(M=1),this.x=(_-A)/M,this.y=(u-y)/M,this.z=(h-d)/M,this.w=Math.acos((c+f+b-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this.w=t.w+(e.w-t.w)*i,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class vEe extends Vh{constructor(t=1,e=1,i={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Wr(0,0,t,e),this.scissorTest=!1,this.viewport=new Wr(0,0,t,e);const r={width:t,height:e,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xs,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},i);const o=new Xa(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);o.flipY=!1,o.generateMipmaps=i.generateMipmaps,o.internalFormat=i.internalFormat,this.textures=[];const s=i.count;for(let a=0;a=0?1:-1,C=1-b*b;if(C>Number.EPSILON){const L=Math.sqrt(C),N=Math.atan2(L,b*M);_=Math.sin(_*N)/L,a=Math.sin(a*N)/L}const E=a*M;if(l=l*_+h*E,c=c*_+f*E,d=d*_+A*E,u=u*_+y*E,_===1-a){const L=1/Math.sqrt(l*l+c*c+d*d+u*u);l*=L,c*=L,d*=L,u*=L}}t[e]=l,t[e+1]=c,t[e+2]=d,t[e+3]=u}static multiplyQuaternionsFlat(t,e,i,r,o,s){const a=i[r],l=i[r+1],c=i[r+2],d=i[r+3],u=o[s],h=o[s+1],f=o[s+2],A=o[s+3];return t[e]=a*A+d*u+l*f-c*h,t[e+1]=l*A+d*h+c*u-a*f,t[e+2]=c*A+d*f+a*h-l*u,t[e+3]=d*A-a*u-l*h-c*f,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,i,r){return this._x=t,this._y=e,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const i=t._x,r=t._y,o=t._z,s=t._order,a=Math.cos,l=Math.sin,c=a(i/2),d=a(r/2),u=a(o/2),h=l(i/2),f=l(r/2),A=l(o/2);switch(s){case"XYZ":this._x=h*d*u+c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u-h*f*A;break;case"YXZ":this._x=h*d*u+c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u+h*f*A;break;case"ZXY":this._x=h*d*u-c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u-h*f*A;break;case"ZYX":this._x=h*d*u-c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u+h*f*A;break;case"YZX":this._x=h*d*u+c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u-h*f*A;break;case"XZY":this._x=h*d*u-c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u+h*f*A;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!0===e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const i=e/2,r=Math.sin(i);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,i=e[0],r=e[4],o=e[8],s=e[1],a=e[5],l=e[9],c=e[2],d=e[6],u=e[10],h=i+a+u;if(h>0){const f=.5/Math.sqrt(h+1);this._w=.25/f,this._x=(d-l)*f,this._y=(o-c)*f,this._z=(s-r)*f}else if(i>a&&i>u){const f=2*Math.sqrt(1+i-a-u);this._w=(d-l)/f,this._x=.25*f,this._y=(r+s)/f,this._z=(o+c)/f}else if(a>u){const f=2*Math.sqrt(1+a-i-u);this._w=(o-c)/f,this._x=(r+s)/f,this._y=.25*f,this._z=(l+d)/f}else{const f=2*Math.sqrt(1+u-i-a);this._w=(s-r)/f,this._x=(o+c)/f,this._y=(l+d)/f,this._z=.25*f}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let i=t.dot(e)+1;return iMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=i),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Xo(this.dot(t),-1,1)))}rotateTowards(t,e){const i=this.angleTo(t);if(0===i)return this;const r=Math.min(1,e/i);return this.slerp(t,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const i=t._x,r=t._y,o=t._z,s=t._w,a=e._x,l=e._y,c=e._z,d=e._w;return this._x=i*d+s*a+r*c-o*l,this._y=r*d+s*l+o*a-i*c,this._z=o*d+s*c+i*l-r*a,this._w=s*d-i*a-r*l-o*c,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const i=this._x,r=this._y,o=this._z,s=this._w;let a=s*t._w+i*t._x+r*t._y+o*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=i,this._y=r,this._z=o,this;const l=1-a*a;if(l<=Number.EPSILON){const f=1-e;return this._w=f*s+e*this._w,this._x=f*i+e*this._x,this._y=f*r+e*this._y,this._z=f*o+e*this._z,this.normalize(),this}const c=Math.sqrt(l),d=Math.atan2(c,a),u=Math.sin((1-e)*d)/c,h=Math.sin(e*d)/c;return this._w=s*u+this._w*h,this._x=i*u+this._x*h,this._y=r*u+this._y*h,this._z=o*u+this._z*h,this._onChangeCallback(),this}slerpQuaternions(t,e,i){return this.copy(t).slerp(e,i)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),o=Math.sqrt(i);return this.set(r*Math.sin(t),r*Math.cos(t),o*Math.sin(e),o*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class se{constructor(t=0,e=0,i=0){se.prototype.isVector3=!0,this.x=t,this.y=e,this.z=i}set(t,e,i){return void 0===i&&(i=this.z),this.x=t,this.y=e,this.z=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(KX.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(KX.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,i=this.y,r=this.z,o=t.elements;return this.x=o[0]*e+o[3]*i+o[6]*r,this.y=o[1]*e+o[4]*i+o[7]*r,this.z=o[2]*e+o[5]*i+o[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,o=t.elements,s=1/(o[3]*e+o[7]*i+o[11]*r+o[15]);return this.x=(o[0]*e+o[4]*i+o[8]*r+o[12])*s,this.y=(o[1]*e+o[5]*i+o[9]*r+o[13])*s,this.z=(o[2]*e+o[6]*i+o[10]*r+o[14])*s,this}applyQuaternion(t){const e=this.x,i=this.y,r=this.z,o=t.x,s=t.y,a=t.z,l=t.w,c=2*(s*r-a*i),d=2*(a*e-o*r),u=2*(o*i-s*e);return this.x=e+l*c+s*u-a*d,this.y=i+l*d+a*c-o*u,this.z=r+l*u+o*d-s*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,i=this.y,r=this.z,o=t.elements;return this.x=o[0]*e+o[4]*i+o[8]*r,this.y=o[1]*e+o[5]*i+o[9]*r,this.z=o[2]*e+o[6]*i+o[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const i=t.x,r=t.y,o=t.z,s=e.x,a=e.y,l=e.z;return this.x=r*l-o*a,this.y=o*s-i*l,this.z=i*a-r*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const i=t.dot(this)/e;return this.copy(t).multiplyScalar(i)}projectOnPlane(t){return CO.copy(this).projectOnVector(t),this.sub(CO)}reflect(t){return this.sub(CO.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(Xo(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y,r=this.z-t.z;return e*e+i*i+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,i){const r=Math.sin(e)*t;return this.x=r*Math.sin(i),this.y=Math.cos(e)*t,this.z=r*Math.cos(i),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=2*Math.random()-1,i=Math.sqrt(1-e*e);return this.x=i*Math.cos(t),this.y=e,this.z=i*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const CO=new se,KX=new Ka;class Us{constructor(t=new se(1/0,1/0,1/0),e=new se(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,i=t.length;e=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,bd),bd.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ww),MS.subVectors(this.max,ww),L_.subVectors(t.a,ww),N_.subVectors(t.b,ww),U_.subVectors(t.c,ww),Mm.subVectors(N_,L_),Em.subVectors(U_,N_),DA.subVectors(L_,U_);let e=[0,-Mm.z,Mm.y,0,-Em.z,Em.y,0,-DA.z,DA.y,Mm.z,0,-Mm.x,Em.z,0,-Em.x,DA.z,0,-DA.x,-Mm.y,Mm.x,0,-Em.y,Em.x,0,-DA.y,DA.x,0];return!(!MO(e,L_,N_,U_,MS)||(e=[1,0,0,0,1,0,0,0,1],!MO(e,L_,N_,U_,MS)))&&(ES.crossVectors(Mm,Em),e=[ES.x,ES.y,ES.z],MO(e,L_,N_,U_,MS))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,bd).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(bd).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Qh[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Qh[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Qh[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Qh[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Qh[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Qh[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Qh[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Qh[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Qh)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Qh=[new se,new se,new se,new se,new se,new se,new se,new se],bd=new se,CS=new Us,L_=new se,N_=new se,U_=new se,Mm=new se,Em=new se,DA=new se,ww=new se,MS=new se,ES=new se,kA=new se;function MO(n,t,e,i,r){for(let o=0,s=n.length-3;o<=s;o+=3){kA.fromArray(n,o);const a=r.x*Math.abs(kA.x)+r.y*Math.abs(kA.y)+r.z*Math.abs(kA.z),l=t.dot(kA),c=e.dot(kA),d=i.dot(kA);if(Math.max(-Math.max(l,c,d),Math.min(l,c,d))>a)return!1}return!0}const yEe=new Us,xw=new se,EO=new se;class Ys{constructor(t=new se,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const i=this.center;void 0!==e?i.copy(e):yEe.setFromPoints(t).getCenter(i);let r=0;for(let o=0,s=t.length;othis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;xw.subVectors(t,this.center);const e=xw.lengthSq();if(e>this.radius*this.radius){const i=Math.sqrt(e),r=.5*(i-this.radius);this.center.addScaledVector(xw,r/i),this.radius+=r}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(EO.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(xw.copy(t.center).add(EO)),this.expandByPoint(xw.copy(t.center).sub(EO))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const zh=new se,SO=new se,SS=new se,Sm=new se,TO=new se,TS=new se,IO=new se;class BA{constructor(t=new se,e=new se(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,zh)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=zh.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(zh.copy(this.origin).addScaledVector(this.direction,e),zh.distanceToSquared(t))}distanceSqToSegment(t,e,i,r){SO.copy(t).add(e).multiplyScalar(.5),SS.copy(e).sub(t).normalize(),Sm.copy(this.origin).sub(SO);const o=.5*t.distanceTo(e),s=-this.direction.dot(SS),a=Sm.dot(this.direction),l=-Sm.dot(SS),c=Sm.lengthSq(),d=Math.abs(1-s*s);let u,h,f,A;if(d>0)if(u=s*l-a,h=s*a-l,A=o*d,u>=0)if(h>=-A)if(h<=A){const y=1/d;u*=y,h*=y,f=u*(u+s*h+2*a)+h*(s*u+h+2*l)+c}else h=o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;else h=-o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;else h<=-A?(u=Math.max(0,-(-s*o+a)),h=u>0?-o:Math.min(Math.max(-o,-l),o),f=-u*u+h*(h+2*l)+c):h<=A?(u=0,h=Math.min(Math.max(-o,-l),o),f=h*(h+2*l)+c):(u=Math.max(0,-(s*o+a)),h=u>0?o:Math.min(Math.max(-o,-l),o),f=-u*u+h*(h+2*l)+c);else h=s>0?-o:o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,u),r&&r.copy(SO).addScaledVector(SS,h),f}intersectSphere(t,e){zh.subVectors(t.center,this.origin);const i=zh.dot(this.direction),r=zh.dot(zh)-i*i,o=t.radius*t.radius;if(r>o)return null;const s=Math.sqrt(o-r),a=i-s,l=i+s;return l<0?null:this.at(a<0?l:a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null}intersectPlane(t,e){const i=this.distanceToPlane(t);return null===i?null:this.at(i,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let i,r,o,s,a,l;const c=1/this.direction.x,d=1/this.direction.y,u=1/this.direction.z,h=this.origin;return c>=0?(i=(t.min.x-h.x)*c,r=(t.max.x-h.x)*c):(i=(t.max.x-h.x)*c,r=(t.min.x-h.x)*c),d>=0?(o=(t.min.y-h.y)*d,s=(t.max.y-h.y)*d):(o=(t.max.y-h.y)*d,s=(t.min.y-h.y)*d),i>s||o>r||((o>i||isNaN(i))&&(i=o),(s=0?(a=(t.min.z-h.z)*u,l=(t.max.z-h.z)*u):(a=(t.max.z-h.z)*u,l=(t.min.z-h.z)*u),i>l||a>r)||((a>i||i!=i)&&(i=a),(l=0?i:r,e)}intersectsBox(t){return null!==this.intersectBox(t,zh)}intersectTriangle(t,e,i,r,o){TO.subVectors(e,t),TS.subVectors(i,t),IO.crossVectors(TO,TS);let a,s=this.direction.dot(IO);if(s>0){if(r)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}Sm.subVectors(this.origin,t);const l=a*this.direction.dot(TS.crossVectors(Sm,TS));if(l<0)return null;const c=a*this.direction.dot(TO.cross(Sm));if(c<0||l+c>s)return null;const d=-a*Sm.dot(IO);return d<0?null:this.at(d/s,o)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class hi{constructor(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_){hi.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_)}set(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_){const b=this.elements;return b[0]=t,b[4]=e,b[8]=i,b[12]=r,b[1]=o,b[5]=s,b[9]=a,b[13]=l,b[2]=c,b[6]=d,b[10]=u,b[14]=h,b[3]=f,b[7]=A,b[11]=y,b[15]=_,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new hi).fromArray(this.elements)}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(t){const e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,i=t.elements,r=1/H_.setFromMatrixColumn(t,0).length(),o=1/H_.setFromMatrixColumn(t,1).length(),s=1/H_.setFromMatrixColumn(t,2).length();return e[0]=i[0]*r,e[1]=i[1]*r,e[2]=i[2]*r,e[3]=0,e[4]=i[4]*o,e[5]=i[5]*o,e[6]=i[6]*o,e[7]=0,e[8]=i[8]*s,e[9]=i[9]*s,e[10]=i[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,i=t.x,r=t.y,o=t.z,s=Math.cos(i),a=Math.sin(i),l=Math.cos(r),c=Math.sin(r),d=Math.cos(o),u=Math.sin(o);if("XYZ"===t.order){const h=s*d,f=s*u,A=a*d,y=a*u;e[0]=l*d,e[4]=-l*u,e[8]=c,e[1]=f+A*c,e[5]=h-y*c,e[9]=-a*l,e[2]=y-h*c,e[6]=A+f*c,e[10]=s*l}else if("YXZ"===t.order){const h=l*d,f=l*u,A=c*d,y=c*u;e[0]=h+y*a,e[4]=A*a-f,e[8]=s*c,e[1]=s*u,e[5]=s*d,e[9]=-a,e[2]=f*a-A,e[6]=y+h*a,e[10]=s*l}else if("ZXY"===t.order){const h=l*d,f=l*u,A=c*d,y=c*u;e[0]=h-y*a,e[4]=-s*u,e[8]=A+f*a,e[1]=f+A*a,e[5]=s*d,e[9]=y-h*a,e[2]=-s*c,e[6]=a,e[10]=s*l}else if("ZYX"===t.order){const h=s*d,f=s*u,A=a*d,y=a*u;e[0]=l*d,e[4]=A*c-f,e[8]=h*c+y,e[1]=l*u,e[5]=y*c+h,e[9]=f*c-A,e[2]=-c,e[6]=a*l,e[10]=s*l}else if("YZX"===t.order){const h=s*l,f=s*c,A=a*l,y=a*c;e[0]=l*d,e[4]=y-h*u,e[8]=A*u+f,e[1]=u,e[5]=s*d,e[9]=-a*d,e[2]=-c*d,e[6]=f*u+A,e[10]=h-y*u}else if("XZY"===t.order){const h=s*l,f=s*c,A=a*l,y=a*c;e[0]=l*d,e[4]=-u,e[8]=c*d,e[1]=h*u+y,e[5]=s*d,e[9]=f*u-A,e[2]=A*u-f,e[6]=a*d,e[10]=y*u+h}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(wEe,t,xEe)}lookAt(t,e,i){const r=this.elements;return oc.subVectors(t,e),0===oc.lengthSq()&&(oc.z=1),oc.normalize(),Tm.crossVectors(i,oc),0===Tm.lengthSq()&&(1===Math.abs(i.z)?oc.x+=1e-4:oc.z+=1e-4,oc.normalize(),Tm.crossVectors(i,oc)),Tm.normalize(),IS.crossVectors(oc,Tm),r[0]=Tm.x,r[4]=IS.x,r[8]=oc.x,r[1]=Tm.y,r[5]=IS.y,r[9]=oc.y,r[2]=Tm.z,r[6]=IS.z,r[10]=oc.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,r=e.elements,o=this.elements,s=i[0],a=i[4],l=i[8],c=i[12],d=i[1],u=i[5],h=i[9],f=i[13],A=i[2],y=i[6],_=i[10],b=i[14],M=i[3],C=i[7],E=i[11],L=i[15],N=r[0],H=r[4],j=r[8],R=r[12],B=r[1],ee=r[5],we=r[9],Ee=r[13],ne=r[2],Ie=r[6],te=r[10],Ae=r[14],le=r[3],Pe=r[7],it=r[11],_t=r[15];return o[0]=s*N+a*B+l*ne+c*le,o[4]=s*H+a*ee+l*Ie+c*Pe,o[8]=s*j+a*we+l*te+c*it,o[12]=s*R+a*Ee+l*Ae+c*_t,o[1]=d*N+u*B+h*ne+f*le,o[5]=d*H+u*ee+h*Ie+f*Pe,o[9]=d*j+u*we+h*te+f*it,o[13]=d*R+u*Ee+h*Ae+f*_t,o[2]=A*N+y*B+_*ne+b*le,o[6]=A*H+y*ee+_*Ie+b*Pe,o[10]=A*j+y*we+_*te+b*it,o[14]=A*R+y*Ee+_*Ae+b*_t,o[3]=M*N+C*B+E*ne+L*le,o[7]=M*H+C*ee+E*Ie+L*Pe,o[11]=M*j+C*we+E*te+L*it,o[15]=M*R+C*Ee+E*Ae+L*_t,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[4],r=t[8],o=t[12],s=t[1],a=t[5],l=t[9],c=t[13],d=t[2],u=t[6],h=t[10],f=t[14];return t[3]*(+o*l*u-r*c*u-o*a*h+i*c*h+r*a*f-i*l*f)+t[7]*(+e*l*f-e*c*h+o*s*h-r*s*f+r*c*d-o*l*d)+t[11]*(+e*c*u-e*a*f-o*s*u+i*s*f+o*a*d-i*c*d)+t[15]*(-r*a*d-e*l*u+e*a*h+r*s*u-i*s*h+i*l*d)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,i){const r=this.elements;return t.isVector3?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=i),this}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8],u=t[9],h=t[10],f=t[11],A=t[12],y=t[13],_=t[14],b=t[15],M=u*_*c-y*h*c+y*l*f-a*_*f-u*l*b+a*h*b,C=A*h*c-d*_*c-A*l*f+s*_*f+d*l*b-s*h*b,E=d*y*c-A*u*c+A*a*f-s*y*f-d*a*b+s*u*b,L=A*u*l-d*y*l-A*a*h+s*y*h+d*a*_-s*u*_,N=e*M+i*C+r*E+o*L;if(0===N)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const H=1/N;return t[0]=M*H,t[1]=(y*h*o-u*_*o-y*r*f+i*_*f+u*r*b-i*h*b)*H,t[2]=(a*_*o-y*l*o+y*r*c-i*_*c-a*r*b+i*l*b)*H,t[3]=(u*l*o-a*h*o-u*r*c+i*h*c+a*r*f-i*l*f)*H,t[4]=C*H,t[5]=(d*_*o-A*h*o+A*r*f-e*_*f-d*r*b+e*h*b)*H,t[6]=(A*l*o-s*_*o-A*r*c+e*_*c+s*r*b-e*l*b)*H,t[7]=(s*h*o-d*l*o+d*r*c-e*h*c-s*r*f+e*l*f)*H,t[8]=E*H,t[9]=(A*u*o-d*y*o-A*i*f+e*y*f+d*i*b-e*u*b)*H,t[10]=(s*y*o-A*a*o+A*i*c-e*y*c-s*i*b+e*a*b)*H,t[11]=(d*a*o-s*u*o-d*i*c+e*u*c+s*i*f-e*a*f)*H,t[12]=L*H,t[13]=(d*y*r-A*u*r+A*i*h-e*y*h-d*i*_+e*u*_)*H,t[14]=(A*a*r-s*y*r-A*i*l+e*y*l+s*i*_-e*a*_)*H,t[15]=(s*u*r-d*a*r+d*i*l-e*u*l-s*i*h+e*a*h)*H,this}scale(t){const e=this.elements,i=t.x,r=t.y,o=t.z;return e[0]*=i,e[4]*=r,e[8]*=o,e[1]*=i,e[5]*=r,e[9]*=o,e[2]*=i,e[6]*=r,e[10]*=o,e[3]*=i,e[7]*=r,e[11]*=o,this}getMaxScaleOnAxis(){const t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))}makeTranslation(t,e,i){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const i=Math.cos(e),r=Math.sin(e),o=1-i,s=t.x,a=t.y,l=t.z,c=o*s,d=o*a;return this.set(c*s+i,c*a-r*l,c*l+r*a,0,c*a+r*l,d*a+i,d*l-r*s,0,c*l-r*a,d*l+r*s,o*l*l+i,0,0,0,0,1),this}makeScale(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(t,e,i,r,o,s){return this.set(1,i,o,0,t,1,s,0,e,r,1,0,0,0,0,1),this}compose(t,e,i){const r=this.elements,o=e._x,s=e._y,a=e._z,l=e._w,c=o+o,d=s+s,u=a+a,h=o*c,f=o*d,A=o*u,y=s*d,_=s*u,b=a*u,M=l*c,C=l*d,E=l*u,L=i.x,N=i.y,H=i.z;return r[0]=(1-(y+b))*L,r[1]=(f+E)*L,r[2]=(A-C)*L,r[3]=0,r[4]=(f-E)*N,r[5]=(1-(h+b))*N,r[6]=(_+M)*N,r[7]=0,r[8]=(A+C)*H,r[9]=(_-M)*H,r[10]=(1-(h+y))*H,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}decompose(t,e,i){const r=this.elements;let o=H_.set(r[0],r[1],r[2]).length();const s=H_.set(r[4],r[5],r[6]).length(),a=H_.set(r[8],r[9],r[10]).length();this.determinant()<0&&(o=-o),t.x=r[12],t.y=r[13],t.z=r[14],vd.copy(this);const c=1/o,d=1/s,u=1/a;return vd.elements[0]*=c,vd.elements[1]*=c,vd.elements[2]*=c,vd.elements[4]*=d,vd.elements[5]*=d,vd.elements[6]*=d,vd.elements[8]*=u,vd.elements[9]*=u,vd.elements[10]*=u,e.setFromRotationMatrix(vd),i.x=o,i.y=s,i.z=a,this}makePerspective(t,e,i,r,o,s,a=Hh){const l=this.elements,c=2*o/(e-t),d=2*o/(i-r),u=(e+t)/(e-t),h=(i+r)/(i-r);let f,A;if(a===Hh)f=-(s+o)/(s-o),A=-2*s*o/(s-o);else{if(2001!==a)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);f=-s/(s-o),A=-s*o/(s-o)}return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=d,l[9]=h,l[13]=0,l[2]=0,l[6]=0,l[10]=f,l[14]=A,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,i,r,o,s,a=Hh){const l=this.elements,c=1/(e-t),d=1/(i-r),u=1/(s-o),h=(e+t)*c,f=(i+r)*d;let A,y;if(a===Hh)A=(s+o)*u,y=-2*u;else{if(2001!==a)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);A=o*u,y=-1*u}return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-h,l[1]=0,l[5]=2*d,l[9]=0,l[13]=-f,l[2]=0,l[6]=0,l[10]=y,l[14]=-A,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,i=t.elements;for(let r=0;r<16;r++)if(e[r]!==i[r])return!1;return!0}fromArray(t,e=0){for(let i=0;i<16;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}}const H_=new se,vd=new hi,wEe=new se(0,0,0),xEe=new se(1,1,1),Tm=new se,IS=new se,oc=new se,YX=new hi,ZX=new Ka;let qh=(()=>{class n{constructor(e=0,i=0,r=0,o=n.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=i,this._z=r,this._order=o}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,i,r,o=this._order){return this._x=e,this._y=i,this._z=r,this._order=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,i=this._order,r=!0){const o=e.elements,s=o[0],a=o[4],l=o[8],c=o[1],d=o[5],u=o[9],h=o[2],f=o[6],A=o[10];switch(i){case"XYZ":this._y=Math.asin(Xo(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,A),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(f,d),this._z=0);break;case"YXZ":this._x=Math.asin(-Xo(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(l,A),this._z=Math.atan2(c,d)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(Xo(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-h,A),this._z=Math.atan2(-a,d)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Xo(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(f,A),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,d));break;case"YZX":this._z=Math.asin(Xo(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-u,d),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(l,A));break;case"XZY":this._z=Math.asin(-Xo(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(f,d),this._y=Math.atan2(l,s)):(this._x=Math.atan2(-u,A),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+i)}return this._order=i,!0===r&&this._onChangeCallback(),this}setFromQuaternion(e,i,r){return YX.makeRotationFromQuaternion(e),this.setFromRotationMatrix(YX,i,r)}setFromVector3(e,i=this._order){return this.set(e.x,e.y,e.z,i)}reorder(e){return ZX.setFromEuler(this),this.setFromQuaternion(ZX,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],i=0){return e[i]=this._x,e[i+1]=this._y,e[i+2]=this._z,e[i+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}return n.DEFAULT_ORDER="XYZ",n})();class FO{constructor(){this.mask=1}set(t){this.mask=1<>>0}enable(t){this.mask|=1<{class n extends Vh{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:CEe++}),this.uuid=rc(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const e=new se,i=new qh,r=new Ka,o=new se(1,1,1);i._onChange(function s(){r.setFromEuler(i,!1)}),r._onChange(function a(){i.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:r},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new hi},normalMatrix:{value:new xi}}),this.matrix=new hi,this.matrixWorld=new hi,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new FO,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,i){this.quaternion.setFromAxisAngle(e,i)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,i){return V_.setFromAxisAngle(e,i),this.quaternion.multiply(V_),this}rotateOnWorldAxis(e,i){return V_.setFromAxisAngle(e,i),this.quaternion.premultiply(V_),this}rotateX(e){return this.rotateOnAxis(eK,e)}rotateY(e){return this.rotateOnAxis(tK,e)}rotateZ(e){return this.rotateOnAxis(nK,e)}translateOnAxis(e,i){return JX.copy(e).applyQuaternion(this.quaternion),this.position.add(JX.multiplyScalar(i)),this}translateX(e){return this.translateOnAxis(eK,e)}translateY(e){return this.translateOnAxis(tK,e)}translateZ(e){return this.translateOnAxis(nK,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Gh.copy(this.matrixWorld).invert())}lookAt(e,i,r){e.isVector3?FS.copy(e):FS.set(e,i,r);const o=this.parent;this.updateWorldMatrix(!0,!1),Cw.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Gh.lookAt(Cw,FS,this.up):Gh.lookAt(FS,Cw,this.up),this.quaternion.setFromRotationMatrix(Gh),o&&(Gh.extractRotation(o.matrixWorld),V_.setFromRotationMatrix(Gh),this.quaternion.premultiply(V_.invert()))}add(e){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(o.userData=this.userData),o.layers=this.layers.mask,o.matrix=this.matrix.toArray(),o.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(o.matrixAutoUpdate=!1),this.isInstancedMesh&&(o.type="InstancedMesh",o.count=this.count,o.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(o.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(o.type="BatchedMesh",o.perObjectFrustumCulled=this.perObjectFrustumCulled,o.sortObjects=this.sortObjects,o.drawRanges=this._drawRanges,o.reservedRanges=this._reservedRanges,o.visibility=this._visibility,o.active=this._active,o.bounds=this._bounds.map(l=>({boxInitialized:l.boxInitialized,boxMin:l.box.min.toArray(),boxMax:l.box.max.toArray(),sphereInitialized:l.sphereInitialized,sphereRadius:l.sphere.radius,sphereCenter:l.sphere.center.toArray()})),o.maxInstanceCount=this._maxInstanceCount,o.maxVertexCount=this._maxVertexCount,o.maxIndexCount=this._maxIndexCount,o.geometryInitialized=this._geometryInitialized,o.geometryCount=this._geometryCount,o.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(o.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(o.boundingSphere={center:o.boundingSphere.center.toArray(),radius:o.boundingSphere.radius}),null!==this.boundingBox&&(o.boundingBox={min:o.boundingBox.min.toArray(),max:o.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?o.background=this.background.toJSON():this.background.isTexture&&(o.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(o.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){o.geometry=s(e.geometries,this.geometry);const l=this.geometry.parameters;if(void 0!==l&&void 0!==l.shapes){const c=l.shapes;if(Array.isArray(c))for(let d=0,u=c.length;d0){o.children=[];for(let l=0;l0){o.animations=[];for(let l=0;l0&&(r.geometries=l),c.length>0&&(r.materials=c),d.length>0&&(r.textures=d),u.length>0&&(r.images=u),h.length>0&&(r.shapes=h),f.length>0&&(r.skeletons=f),A.length>0&&(r.animations=A),y.length>0&&(r.nodes=y)}return r.object=o,r;function a(l){const c=[];for(const d in l){const u=l[d];delete u.metadata,c.push(u)}return c}}clone(e){return(new this.constructor).copy(this,e)}copy(e,i=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===i)for(let r=0;r0?r.multiplyScalar(1/Math.sqrt(o)):r.set(0,0,0)}static getBarycoord(t,e,i,r,o){yd.subVectors(r,e),Wh.subVectors(i,e),kO.subVectors(t,e);const s=yd.dot(yd),a=yd.dot(Wh),l=yd.dot(kO),c=Wh.dot(Wh),d=Wh.dot(kO),u=s*c-a*a;if(0===u)return o.set(0,0,0),null;const h=1/u,f=(c*l-a*d)*h,A=(s*d-a*l)*h;return o.set(1-f-A,A,f)}static containsPoint(t,e,i,r){return null!==this.getBarycoord(t,e,i,r,$h)&&$h.x>=0&&$h.y>=0&&$h.x+$h.y<=1}static getInterpolation(t,e,i,r,o,s,a,l){return null===this.getBarycoord(t,e,i,r,$h)?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(o,$h.x),l.addScaledVector(s,$h.y),l.addScaledVector(a,$h.z),l)}static isFrontFacing(t,e,i,r){return yd.subVectors(i,e),Wh.subVectors(t,e),yd.cross(Wh).dot(r)<0}set(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(t,e,i,r){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[r]),this}setFromAttributeAndIndices(t,e,i,r){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,i),this.c.fromBufferAttribute(t,r),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return yd.subVectors(this.c,this.b),Wh.subVectors(this.a,this.b),.5*yd.cross(Wh).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Nc.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Nc.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,i,r,o){return Nc.getInterpolation(t,this.a,this.b,this.c,e,i,r,o)}containsPoint(t){return Nc.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Nc.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const i=this.a,r=this.b,o=this.c;let s,a;z_.subVectors(r,i),q_.subVectors(o,i),BO.subVectors(t,i);const l=z_.dot(BO),c=q_.dot(BO);if(l<=0&&c<=0)return e.copy(i);PO.subVectors(t,r);const d=z_.dot(PO),u=q_.dot(PO);if(d>=0&&u<=d)return e.copy(r);const h=l*u-d*c;if(h<=0&&l>=0&&d<=0)return s=l/(l-d),e.copy(i).addScaledVector(z_,s);RO.subVectors(t,o);const f=z_.dot(RO),A=q_.dot(RO);if(A>=0&&f<=A)return e.copy(o);const y=f*c-l*A;if(y<=0&&c>=0&&A<=0)return a=c/(c-A),e.copy(i).addScaledVector(q_,a);const _=d*A-f*u;if(_<=0&&u-d>=0&&f-A>=0)return rK.subVectors(o,r),a=(u-d)/(u-d+(f-A)),e.copy(r).addScaledVector(rK,a);const b=1/(_+y+h);return s=y*b,a=h*b,e.copy(i).addScaledVector(z_,s).addScaledVector(q_,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const oK={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Im={h:0,s:0,l:0},DS={h:0,s:0,l:0};function OO(n,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?n+6*(t-n)*e:e<.5?t:e<2/3?n+6*(t-n)*(2/3-e):n}class tn{constructor(t,e,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,i)}set(t,e,i){if(void 0===e&&void 0===i){const r=t;r&&r.isColor?this.copy(r):"number"==typeof r?this.setHex(r):"string"==typeof r&&this.setStyle(r)}else this.setRGB(t,e,i);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Oc){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,Br.toWorkingColorSpace(this,e),this}setRGB(t,e,i,r=Br.workingColorSpace){return this.r=t,this.g=e,this.b=i,Br.toWorkingColorSpace(this,r),this}setHSL(t,e,i,r=Br.workingColorSpace){if(t=function bO(n,t){return(n%t+t)%t}(t,1),e=Xo(e,0,1),i=Xo(i,0,1),0===e)this.r=this.g=this.b=i;else{const o=i<=.5?i*(1+e):i+e-i*e,s=2*i-o;this.r=OO(s,o,t+1/3),this.g=OO(s,o,t),this.b=OO(s,o,t-1/3)}return Br.toWorkingColorSpace(this,r),this}setStyle(t,e=Oc){function i(o){void 0!==o&&parseFloat(o)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(t)){let o;const a=r[2];switch(r[1]){case"rgb":case"rgba":if(o=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setRGB(Math.min(255,parseInt(o[1],10))/255,Math.min(255,parseInt(o[2],10))/255,Math.min(255,parseInt(o[3],10))/255,e);if(o=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setRGB(Math.min(100,parseInt(o[1],10))/100,Math.min(100,parseInt(o[2],10))/100,Math.min(100,parseInt(o[3],10))/100,e);break;case"hsl":case"hsla":if(o=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setHSL(parseFloat(o[1])/360,parseFloat(o[2])/100,parseFloat(o[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(t)){const o=r[1],s=o.length;if(3===s)return this.setRGB(parseInt(o.charAt(0),16)/15,parseInt(o.charAt(1),16)/15,parseInt(o.charAt(2),16)/15,e);if(6===s)return this.setHex(parseInt(o,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Oc){const i=oK[t.toLowerCase()];return void 0!==i?this.setHex(i,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=P_(t.r),this.g=P_(t.g),this.b=P_(t.b),this}copyLinearToSRGB(t){return this.r=yO(t.r),this.g=yO(t.g),this.b=yO(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Oc){return Br.fromWorkingColorSpace(ya.copy(this),t),65536*Math.round(Xo(255*ya.r,0,255))+256*Math.round(Xo(255*ya.g,0,255))+Math.round(Xo(255*ya.b,0,255))}getHexString(t=Oc){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Br.workingColorSpace){Br.fromWorkingColorSpace(ya.copy(this),e);const i=ya.r,r=ya.g,o=ya.b,s=Math.max(i,r,o),a=Math.min(i,r,o);let l,c;const d=(a+s)/2;if(a===s)l=0,c=0;else{const u=s-a;switch(c=d<=.5?u/(s+a):u/(2-s-a),s){case i:l=(r-o)/u+(r0!=t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const i=t[e];if(void 0===i){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const r=this[e];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[e]=i:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function r(o){const s=[];for(const a in o){const l=o[a];delete l.metadata,s.push(l)}return s}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(i.dispersion=this.dispersion),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(i.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(t).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapRotation&&(i.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(i.blending=this.blending),0!==this.side&&(i.side=this.side),!0===this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=!0),204!==this.blendSrc&&(i.blendSrc=this.blendSrc),205!==this.blendDst&&(i.blendDst=this.blendDst),100!==this.blendEquation&&(i.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(i.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(i.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(i.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(i.depthFunc=this.depthFunc),!1===this.depthTest&&(i.depthTest=this.depthTest),!1===this.depthWrite&&(i.depthWrite=this.depthWrite),!1===this.colorWrite&&(i.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(i.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(i.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(i.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==F_&&(i.stencilFail=this.stencilFail),this.stencilZFail!==F_&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==F_&&(i.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(i.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaHash&&(i.alphaHash=!0),!0===this.alphaToCoverage&&(i.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=!0),!0===this.forceSinglePass&&(i.forceSinglePass=!0),!0===this.wireframe&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=!0),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),e){const o=r(t.textures),s=r(t.images);o.length>0&&(i.textures=o),s.length>0&&(i.images=s)}return i}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let i=null;if(null!==e){const r=e.length;i=new Array(r);for(let o=0;o!==r;++o)i[o]=e[o].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class jh extends Ya{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new tn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new qh,this.combine=oS,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Cs=new se,kS=new nt;class tr{constructor(t,e,i=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=i,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=ic,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return B_("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,i){t*=this.itemSize,i*=e.itemSize;for(let r=0,o=this.itemSize;r0&&(t.userData=this.userData),void 0!==this.parameters){const l=this.parameters;for(const c in l)void 0!==l[c]&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const i=this.attributes;for(const l in i)t.data.attributes[l]=i[l].toJSON(t.data);const r={};let o=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],d=[];for(let u=0,h=c.length;u0&&(r[l]=d,o=!0)}o&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const i=t.index;null!==i&&this.setIndex(i.clone(e));const r=t.attributes;for(const c in r)this.setAttribute(c,r[c].clone(e));const o=t.morphAttributes;for(const c in o){const d=[],u=o[c];for(let h=0,f=u.length;h0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let o=0,s=r.length;o(t.far-t.near)**2))&&(lK.copy(o).invert(),PA.copy(t.ray).applyMatrix4(lK),(null===i.boundingBox||!1!==PA.intersectsBox(i.boundingBox))&&this._computeIntersections(t,e,PA)))}_computeIntersections(t,e,i){let r;const o=this.geometry,s=this.material,a=o.index,l=o.attributes.position,c=o.attributes.uv,d=o.attributes.uv1,u=o.attributes.normal,h=o.groups,f=o.drawRange;if(null!==a)if(Array.isArray(s))for(let A=0,y=h.length;Ae.far?null:{distance:c,point:US.clone(),object:n}}(n,t,e,i,W_,$_,j_,NS);if(d){r&&(RS.fromBufferAttribute(r,a),OS.fromBufferAttribute(r,l),LS.fromBufferAttribute(r,c),d.uv=Nc.getInterpolation(NS,W_,$_,j_,RS,OS,LS,new nt)),o&&(RS.fromBufferAttribute(o,a),OS.fromBufferAttribute(o,l),LS.fromBufferAttribute(o,c),d.uv1=Nc.getInterpolation(NS,W_,$_,j_,RS,OS,LS,new nt)),s&&(dK.fromBufferAttribute(s,a),uK.fromBufferAttribute(s,l),hK.fromBufferAttribute(s,c),d.normal=Nc.getInterpolation(NS,W_,$_,j_,dK,uK,hK,new se),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const u={a,b:l,c,normal:new se,materialIndex:0};Nc.getNormal(W_,$_,j_,u.normal),d.face=u}return d}class ac extends gi{constructor(t=1,e=1,i=1,r=1,o=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:r,heightSegments:o,depthSegments:s};const a=this;r=Math.floor(r),o=Math.floor(o),s=Math.floor(s);const l=[],c=[],d=[],u=[];let h=0,f=0;function A(y,_,b,M,C,E,L,N,H,j,R){const B=E/H,ee=L/j,we=E/2,Ee=L/2,ne=N/2,Ie=H+1,te=j+1;let Ae=0,le=0;const Pe=new se;for(let it=0;it0?1:-1,d.push(Pe.x,Pe.y,Pe.z),u.push(Ht/H),u.push(1-it/j),Ae+=1}for(let it=0;it0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const i={};for(const r in this.extensions)!0===this.extensions[r]&&(i[r]=!0);return Object.keys(i).length>0&&(e.extensions=i),e}}class HO extends xo{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new hi,this.projectionMatrix=new hi,this.projectionMatrixInverse=new hi,this.coordinateSystem=Hh}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const Fm=new se,mK=new nt,pK=new nt;class Hs extends HO{constructor(t=50,e=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*D_*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*FA*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*D_*Math.atan(Math.tan(.5*FA*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,i){Fm.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Fm.x,Fm.y).multiplyScalar(-t/Fm.z),Fm.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Fm.x,Fm.y).multiplyScalar(-t/Fm.z)}getViewSize(t,e){return this.getViewBounds(t,mK,pK),e.subVectors(pK,mK)}setViewOffset(t,e,i,r,o,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=r,this.view.width=o,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*FA*this.fov)/this.zoom,i=2*e,r=this.aspect*i,o=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const l=s.fullWidth,c=s.fullHeight;o+=s.offsetX*r/l,e-=s.offsetY*i/c,r*=s.width/l,i*=s.height/c}const a=this.filmOffset;0!==a&&(o+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(o,o+r,e,e-i,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}class REe extends xo{constructor(t,e,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Hs(-90,1,t,e);r.layers=this.layers,this.add(r);const o=new Hs(-90,1,t,e);o.layers=this.layers,this.add(o);const s=new Hs(-90,1,t,e);s.layers=this.layers,this.add(s);const a=new Hs(-90,1,t,e);a.layers=this.layers,this.add(a);const l=new Hs(-90,1,t,e);l.layers=this.layers,this.add(l);const c=new Hs(-90,1,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[i,r,o,s,a,l]=e;for(const c of e)this.remove(c);if(t===Hh)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),o.up.set(0,0,-1),o.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else{if(2001!==t)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),o.up.set(0,0,1),o.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1)}for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[o,s,a,l,c,d]=this.children,u=t.getRenderTarget(),h=t.getActiveCubeFace(),f=t.getActiveMipmapLevel(),A=t.xr.enabled;t.xr.enabled=!1;const y=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0,r),t.render(e,o),t.setRenderTarget(i,1,r),t.render(e,s),t.setRenderTarget(i,2,r),t.render(e,a),t.setRenderTarget(i,3,r),t.render(e,l),t.setRenderTarget(i,4,r),t.render(e,c),i.texture.generateMipmaps=y,t.setRenderTarget(i,5,r),t.render(e,d),t.setRenderTarget(u,h,f),t.xr.enabled=A,i.texture.needsPMREMUpdate=!0}}class VS extends Xa{constructor(t,e,i,r,o,s,a,l,c,d){super(t=void 0!==t?t:[],e=void 0!==e?e:ym,i,r,o,s,a,l,c,d),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class OEe extends Lc{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const i={width:t,height:t,depth:1};this.texture=new VS([i,i,i,i,i,i],e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:xs}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const i_uniforms={tEquirect:{value:null}},i_vertexShader="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",i_fragmentShader="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",r=new ac(5,5,5),o=new Al({name:"CubemapFromEquirect",uniforms:X_(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});o.uniforms.tEquirect.value=e;const s=new ki(r,o),a=e.minFilter;return e.minFilter===Nh&&(e.minFilter=xs),new REe(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,i,r){const o=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,i,r);t.setRenderTarget(o)}}const VO=new se,LEe=new se,NEe=new xi;class Dm{constructor(t=new se(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,i,r){return this.normal.set(t,e,i),this.constant=r,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,i){const r=VO.subVectors(i,e).cross(LEe.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const i=t.delta(VO),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const o=-(t.start.dot(this.normal)+this.constant)/r;return o<0||o>1?null:e.copy(t.start).addScaledVector(i,o)}intersectsLine(t){const e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const i=e||NEe.getNormalMatrix(t),r=this.coplanarPoint(VO).applyMatrix4(t),o=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(o),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const RA=new Ys,QS=new se;class zS{constructor(t=new Dm,e=new Dm,i=new Dm,r=new Dm,o=new Dm,s=new Dm){this.planes=[t,e,i,r,o,s]}set(t,e,i,r,o,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(i),a[3].copy(r),a[4].copy(o),a[5].copy(s),this}copy(t){const e=this.planes;for(let i=0;i<6;i++)e[i].copy(t.planes[i]);return this}setFromProjectionMatrix(t,e=Hh){const i=this.planes,r=t.elements,o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],d=r[5],u=r[6],h=r[7],f=r[8],A=r[9],y=r[10],_=r[11],b=r[12],M=r[13],C=r[14],E=r[15];if(i[0].setComponents(l-o,h-c,_-f,E-b).normalize(),i[1].setComponents(l+o,h+c,_+f,E+b).normalize(),i[2].setComponents(l+s,h+d,_+A,E+M).normalize(),i[3].setComponents(l-s,h-d,_-A,E-M).normalize(),i[4].setComponents(l-a,h-u,_-y,E-C).normalize(),e===Hh)i[5].setComponents(l+a,h+u,_+y,E+C).normalize();else{if(2001!==e)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);i[5].setComponents(a,u,y,C).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),RA.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),RA.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(RA)}intersectsSprite(t){return RA.center.set(0,0,0),RA.radius=.7071067811865476,RA.applyMatrix4(t.matrixWorld),this.intersectsSphere(RA)}intersectsSphere(t){const e=this.planes,i=t.center,r=-t.radius;for(let o=0;o<6;o++)if(e[o].distanceToPoint(i)0?t.max.x:t.min.x,QS.y=r.normal.y>0?t.max.y:t.min.y,QS.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(QS)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function AK(){let n=null,t=!1,e=null,i=null;function r(o,s){e(o,s),i=n.requestAnimationFrame(r)}return{start:function(){!0!==t&&null!==e&&(i=n.requestAnimationFrame(r),t=!0)},stop:function(){n.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(o){e=o},setContext:function(o){n=o}}}function UEe(n){const t=new WeakMap;return{get:function r(a){return a.isInterleavedBufferAttribute&&(a=a.data),t.get(a)},remove:function o(a){a.isInterleavedBufferAttribute&&(a=a.data);const l=t.get(a);l&&(n.deleteBuffer(l.buffer),t.delete(a))},update:function s(a,l){if(a.isInterleavedBufferAttribute&&(a=a.data),a.isGLBufferAttribute){const d=t.get(a);return void((!d||d.version 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n\tvColor.xyz *= batchingColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif ( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n\tmaterial.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\tfloat dispersion;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t#endif\n\tuniform sampler2DArray morphTargetsTexture;\n\tuniform ivec2 morphTargetsTextureSize;\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t}\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec4( 0., 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec4( 1., 1., 1., 1. );\n\tfloat vuf;\n\tfloat af = modf( v * PackFactors.a, vuf );\n\tfloat bf = modf( vuf * ShiftRight8, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec3( 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec3( 1., 1., 1. );\n\tfloat vuf;\n\tfloat bf = modf( v * PackFactors.b, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec2( 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec2( 1., 1. );\n\tfloat vuf;\n\tfloat gf = modf( v * 256., vuf );\n\treturn vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n\treturn dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 / 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec4 transmittedLight;\n\t\tvec3 transmittance;\n\t\t#ifdef USE_DISPERSION\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\t\trefractionCoords += 1.0;\n\t\t\t\trefractionCoords /= 2.0;\n\t\t\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n\t\t\t}\n\t\t\ttransmittedLight.a /= 3.0;\n\t\t\n\t\t#else\n\t\t\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\trefractionCoords += 1.0;\n\t\t\trefractionCoords /= 2.0;\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\t\n\t\t#endif\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#elif DEPTH_PACKING == 3202\n\t\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n\t#elif DEPTH_PACKING == 3203\n\t\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n\tuniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},pn={common:{diffuse:{value:new tn(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new xi},alphaMap:{value:null},alphaMapTransform:{value:new xi},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new xi}},envmap:{envMap:{value:null},envMapRotation:{value:new xi},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new xi}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new xi}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new xi},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new xi},normalScale:{value:new nt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new xi},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new xi}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new xi}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new xi}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new tn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new tn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new xi},alphaTest:{value:0},uvTransform:{value:new xi}},sprite:{diffuse:{value:new tn(16777215)},opacity:{value:1},center:{value:new nt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new xi},alphaMap:{value:null},alphaMapTransform:{value:new xi},alphaTest:{value:0}}},bu={basic:{uniforms:Za([pn.common,pn.specularmap,pn.envmap,pn.aomap,pn.lightmap,pn.fog]),vertexShader:Gi.meshbasic_vert,fragmentShader:Gi.meshbasic_frag},lambert:{uniforms:Za([pn.common,pn.specularmap,pn.envmap,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.fog,pn.lights,{emissive:{value:new tn(0)}}]),vertexShader:Gi.meshlambert_vert,fragmentShader:Gi.meshlambert_frag},phong:{uniforms:Za([pn.common,pn.specularmap,pn.envmap,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.fog,pn.lights,{emissive:{value:new tn(0)},specular:{value:new tn(1118481)},shininess:{value:30}}]),vertexShader:Gi.meshphong_vert,fragmentShader:Gi.meshphong_frag},standard:{uniforms:Za([pn.common,pn.envmap,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.roughnessmap,pn.metalnessmap,pn.fog,pn.lights,{emissive:{value:new tn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Gi.meshphysical_vert,fragmentShader:Gi.meshphysical_frag},toon:{uniforms:Za([pn.common,pn.aomap,pn.lightmap,pn.emissivemap,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.gradientmap,pn.fog,pn.lights,{emissive:{value:new tn(0)}}]),vertexShader:Gi.meshtoon_vert,fragmentShader:Gi.meshtoon_frag},matcap:{uniforms:Za([pn.common,pn.bumpmap,pn.normalmap,pn.displacementmap,pn.fog,{matcap:{value:null}}]),vertexShader:Gi.meshmatcap_vert,fragmentShader:Gi.meshmatcap_frag},points:{uniforms:Za([pn.points,pn.fog]),vertexShader:Gi.points_vert,fragmentShader:Gi.points_frag},dashed:{uniforms:Za([pn.common,pn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Gi.linedashed_vert,fragmentShader:Gi.linedashed_frag},depth:{uniforms:Za([pn.common,pn.displacementmap]),vertexShader:Gi.depth_vert,fragmentShader:Gi.depth_frag},normal:{uniforms:Za([pn.common,pn.bumpmap,pn.normalmap,pn.displacementmap,{opacity:{value:1}}]),vertexShader:Gi.meshnormal_vert,fragmentShader:Gi.meshnormal_frag},sprite:{uniforms:Za([pn.sprite,pn.fog]),vertexShader:Gi.sprite_vert,fragmentShader:Gi.sprite_frag},background:{uniforms:{uvTransform:{value:new xi},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Gi.background_vert,fragmentShader:Gi.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new xi}},vertexShader:Gi.backgroundCube_vert,fragmentShader:Gi.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Gi.cube_vert,fragmentShader:Gi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Gi.equirect_vert,fragmentShader:Gi.equirect_frag},distanceRGBA:{uniforms:Za([pn.common,pn.displacementmap,{referencePosition:{value:new se},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Gi.distanceRGBA_vert,fragmentShader:Gi.distanceRGBA_frag},shadow:{uniforms:Za([pn.lights,pn.fog,{color:{value:new tn(0)},opacity:{value:1}}]),vertexShader:Gi.shadow_vert,fragmentShader:Gi.shadow_frag}};bu.physical={uniforms:Za([bu.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new xi},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new xi},clearcoatNormalScale:{value:new nt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new xi},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new xi},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new xi},sheen:{value:0},sheenColor:{value:new tn(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new xi},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new xi},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new xi},transmissionSamplerSize:{value:new nt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new xi},attenuationDistance:{value:0},attenuationColor:{value:new tn(0)},specularColor:{value:new tn(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new xi},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new xi},anisotropyVector:{value:new nt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new xi}}]),vertexShader:Gi.meshphysical_vert,fragmentShader:Gi.meshphysical_frag};const qS={r:0,b:0,g:0},OA=new qh,USe=new hi;function HSe(n,t,e,i,r,o,s){const a=new tn(0);let c,d,l=!0===o?0:1,u=null,h=0,f=null;function A(M){let C=!0===M.isScene?M.background:null;return C&&C.isTexture&&(C=(M.backgroundBlurriness>0?e:t).get(C)),C}function b(M,C){M.getRGB(qS,fK(n)),i.buffers.color.setClear(qS.r,qS.g,qS.b,C,s)}return{getClearColor:function(){return a},setClearColor:function(M,C=1){a.set(M),l=C,b(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(M){l=M,b(a,l)},render:function y(M){let C=!1;const E=A(M);null===E?b(a,l):E&&E.isColor&&(b(E,1),C=!0);const L=n.xr.getEnvironmentBlendMode();"additive"===L?i.buffers.color.setClear(0,0,0,1,s):"alpha-blend"===L&&i.buffers.color.setClear(0,0,0,0,s),(n.autoClear||C)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))},addToRenderList:function _(M,C){const E=A(C);E&&(E.isCubeTexture||E.mapping===Aw)?(void 0===d&&(d=new ki(new ac(1,1,1),new Al({name:"BackgroundCubeMaterial",uniforms:X_(bu.backgroundCube.uniforms),vertexShader:bu.backgroundCube.vertexShader,fragmentShader:bu.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),d.geometry.deleteAttribute("normal"),d.geometry.deleteAttribute("uv"),d.onBeforeRender=function(L,N,H){this.matrixWorld.copyPosition(H.matrixWorld)},Object.defineProperty(d.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(d)),OA.copy(C.backgroundRotation),OA.x*=-1,OA.y*=-1,OA.z*=-1,E.isCubeTexture&&!1===E.isRenderTargetTexture&&(OA.y*=-1,OA.z*=-1),d.material.uniforms.envMap.value=E,d.material.uniforms.flipEnvMap.value=E.isCubeTexture&&!1===E.isRenderTargetTexture?-1:1,d.material.uniforms.backgroundBlurriness.value=C.backgroundBlurriness,d.material.uniforms.backgroundIntensity.value=C.backgroundIntensity,d.material.uniforms.backgroundRotation.value.setFromMatrix4(USe.makeRotationFromEuler(OA)),d.material.toneMapped=Br.getTransfer(E.colorSpace)!==wo,(u!==E||h!==E.version||f!==n.toneMapping)&&(d.material.needsUpdate=!0,u=E,h=E.version,f=n.toneMapping),d.layers.enableAll(),M.unshift(d,d.geometry,d.material,0,0,null)):E&&E.isTexture&&(void 0===c&&(c=new ki(new Z_(2,2),new Al({name:"BackgroundMaterial",uniforms:X_(bu.background.uniforms),vertexShader:bu.background.vertexShader,fragmentShader:bu.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=E,c.material.uniforms.backgroundIntensity.value=C.backgroundIntensity,c.material.toneMapped=Br.getTransfer(E.colorSpace)!==wo,!0===E.matrixAutoUpdate&&E.updateMatrix(),c.material.uniforms.uvTransform.value.copy(E.matrix),(u!==E||h!==E.version||f!==n.toneMapping)&&(c.material.needsUpdate=!0,u=E,h=E.version,f=n.toneMapping),c.layers.enableAll(),M.unshift(c,c.geometry,c.material,0,0,null))}}}function VSe(n,t){const e=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=h(null);let o=r,s=!1;function c(B){return n.bindVertexArray(B)}function d(B){return n.deleteVertexArray(B)}function h(B){const ee=[],we=[],Ee=[];for(let ne=0;ne=0){const it=ne[le];let _t=Ie[le];if(void 0===_t&&("instanceMatrix"===le&&B.instanceMatrix&&(_t=B.instanceMatrix),"instanceColor"===le&&B.instanceColor&&(_t=B.instanceColor)),void 0===it||it.attribute!==_t||_t&&it.data!==_t.data)return!0;te++}return o.attributesNum!==te||o.index!==Ee}(B,Ee,we,ne),Ie&&function A(B,ee,we,Ee){const ne={},Ie=ee.attributes;let te=0;const Ae=we.getAttributes();for(const le in Ae)if(Ae[le].location>=0){let it=Ie[le];void 0===it&&("instanceMatrix"===le&&B.instanceMatrix&&(it=B.instanceMatrix),"instanceColor"===le&&B.instanceColor&&(it=B.instanceColor));const _t={};_t.attribute=it,it&&it.data&&(_t.data=it.data),ne[le]=_t,te++}o.attributes=ne,o.attributesNum=te,o.index=Ee}(B,Ee,we,ne),null!==ne&&t.update(ne,n.ELEMENT_ARRAY_BUFFER),(Ie||s)&&(s=!1,function E(B,ee,we,Ee){y();const ne=Ee.attributes,Ie=we.getAttributes(),te=ee.defaultAttributeValues;for(const Ae in Ie){const le=Ie[Ae];if(le.location>=0){let Pe=ne[Ae];if(void 0===Pe&&("instanceMatrix"===Ae&&B.instanceMatrix&&(Pe=B.instanceMatrix),"instanceColor"===Ae&&B.instanceColor&&(Pe=B.instanceColor)),void 0!==Pe){const it=Pe.normalized,_t=Pe.itemSize,Ht=t.get(Pe);if(void 0===Ht)continue;const cn=Ht.buffer,ce=Ht.type,ue=Ht.bytesPerElement,ae=ce===n.INT||ce===n.UNSIGNED_INT||Pe.gpuType===L4;if(Pe.isInterleavedBufferAttribute){const Z=Pe.data,$e=Z.stride,wt=Pe.offset;if(Z.isInstancedInterleavedBuffer){for(let je=0;je0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";N="mediump"}return"mediump"===N&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=void 0!==e.precision?e.precision:"highp";const d=l(c);d!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",d,"instead."),c=d);const u=!0===e.logarithmicDepthBuffer,h=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function o(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const N=t.get("EXT_texture_filter_anisotropic");r=n.getParameter(N.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:l,textureFormatReadable:function s(N){return!(N!==$a&&i.convert(N)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))},textureTypeReadable:function a(N){const H=N===C_&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return!(N!==Uh&&i.convert(N)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE)&&N!==ic&&!H)},precision:c,logarithmicDepthBuffer:u,maxTextures:h,maxVertexTextures:f,maxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),maxCubemapSize:n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:n.getParameter(n.MAX_VERTEX_ATTRIBS),maxVertexUniforms:n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:n.getParameter(n.MAX_VARYING_VECTORS),maxFragmentUniforms:n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:f>0,maxSamples:n.getParameter(n.MAX_SAMPLES)}}function qSe(n){const t=this;let e=null,i=0,r=!1,o=!1;const s=new Dm,a=new xi,l={value:null,needsUpdate:!1};function d(u,h,f,A){const y=null!==u?u.length:0;let _=null;if(0!==y){if(_=l.value,!0!==A||null===_){const b=f+4*y,M=h.matrixWorldInverse;a.getNormalMatrix(M),(null===_||_.length0),t.numPlanes=i,t.numIntersection=0}();else{const M=o?0:i,C=4*M;let E=b.clippingState||null;l.value=E,E=d(A,h,C,f);for(let L=0;L!==C;++L)E[L]=e[L];b.clippingState=E,this.numIntersection=y?this.numPlanes:0,this.numPlanes+=M}}}function GSe(n){let t=new WeakMap;function e(s,a){return 303===a?s.mapping=ym:304===a&&(s.mapping=TA),s}function r(s){const a=s.target;a.removeEventListener("dispose",r);const l=t.get(a);void 0!==l&&(t.delete(a),l.dispose())}return{get:function i(s){if(s&&s.isTexture){const a=s.mapping;if(303===a||304===a){if(t.has(s))return e(t.get(s).texture,s.mapping);{const l=s.image;if(l&&l.height>0){const c=new OEe(l.height);return c.fromEquirectangularTexture(n,s),t.set(s,c),s.addEventListener("dispose",r),e(c.texture,s.mapping)}return null}}}return s},dispose:function o(){t=new WeakMap}}}class GS extends HO{constructor(t=-1,e=1,i=1,r=-1,o=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=i,this.bottom=r,this.near=o,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,i,r,o,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=r,this.view.width=o,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let o=i-t,s=i+t,a=r+e,l=r-e;if(null!==this.view&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;o+=c*this.view.offsetX,s=o+c*this.view.width,a-=d*this.view.offsetY,l=a-d*this.view.height}this.projectionMatrix.makeOrthographic(o,s,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const gK=[.125,.215,.35,.446,.526,.582],QO=new GS,_K=new tn;let zO=null,qO=0,GO=0,WO=!1;const NA=(1+Math.sqrt(5))/2,eb=1/NA,bK=[new se(-NA,eb,0),new se(NA,eb,0),new se(-eb,0,NA),new se(eb,0,NA),new se(0,NA,-eb),new se(0,NA,eb),new se(-1,1,-1),new se(1,1,-1),new se(-1,1,1),new se(1,1,1)];class vK{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,i=.1,r=100){zO=this._renderer.getRenderTarget(),qO=this._renderer.getActiveCubeFace(),GO=this._renderer.getActiveMipmapLevel(),WO=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const o=this._allocateTargets();return o.depthBuffer=!0,this._sceneToCubeUV(t,i,r,o),e>0&&this._blur(o,0,0,e),this._applyPMREM(o),this._cleanup(o),o}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=xK(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=wK(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tn-4?l=gK[s-n+4-1]:0===s&&(l=0),i.push(l);const c=1/(a-2),d=-c,u=1+c,h=[d,d,u,d,u,u,d,d,u,u,d,u],f=6,A=6,y=3,_=2,b=1,M=new Float32Array(y*A*f),C=new Float32Array(_*A*f),E=new Float32Array(b*A*f);for(let N=0;N2?0:-1;M.set([H,j,0,H+2/3,j,0,H+2/3,j+1,0,H,j,0,H+2/3,j+1,0,H,j+1,0],y*A*N),C.set(h,_*A*N),E.set([N,N,N,N,N,N],b*A*N)}const L=new gi;L.setAttribute("position",new tr(M,y)),L.setAttribute("uv",new tr(C,_)),L.setAttribute("faceIndex",new tr(E,b)),t.push(L),r>4&&r--}return{lodPlanes:t,sizeLods:e,sigmas:i}}(o)),this._blurMaterial=function $Se(n,t,e){const i=new Float32Array(20),r=new se(0,1,0);return new Al({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(o,t,e)}return r}_compileMaterial(t){const e=new ki(this._lodPlanes[0],t);this._renderer.compile(e,QO)}_sceneToCubeUV(t,e,i,r){const a=new Hs(90,1,e,i),l=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],d=this._renderer,u=d.autoClear,h=d.toneMapping;d.getClearColor(_K),d.toneMapping=vm,d.autoClear=!1;const f=new jh({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),A=new ki(new ac,f);let y=!1;const _=t.background;_?_.isColor&&(f.color.copy(_),t.background=null,y=!0):(f.color.copy(_K),y=!0);for(let b=0;b<6;b++){const M=b%3;0===M?(a.up.set(0,l[b],0),a.lookAt(c[b],0,0)):1===M?(a.up.set(0,0,l[b]),a.lookAt(0,c[b],0)):(a.up.set(0,l[b],0),a.lookAt(0,0,c[b]));const C=this._cubeSize;WS(r,M*C,b>2?C:0,C,C),d.setRenderTarget(r),y&&d.render(A,a),d.render(t,a)}A.geometry.dispose(),A.material.dispose(),d.toneMapping=h,d.autoClear=u,t.background=_}_textureToCubeUV(t,e){const i=this._renderer,r=t.mapping===ym||t.mapping===TA;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=xK()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=wK());const o=r?this._cubemapMaterial:this._equirectMaterial,s=new ki(this._lodPlanes[0],o);o.uniforms.envMap.value=t;const l=this._cubeSize;WS(e,0,0,3*l,2*l),i.setRenderTarget(e),i.render(s,QO)}_applyPMREM(t){const e=this._renderer,i=e.autoClear;e.autoClear=!1;const r=this._lodPlanes.length;for(let o=1;o20&&console.warn(`sigmaRadians, ${o}, is too large and will clip, as it requested ${_} samples when the maximum is set to 20`);const b=[];let M=0;for(let H=0;H<20;++H){const j=H/y,R=Math.exp(-j*j/2);b.push(R),0===H?M+=R:H<_&&(M+=2*R)}for(let H=0;HC-4?r-C+4:0),4*(this._cubeSize-E),3*E,2*E),l.setRenderTarget(e),l.render(u,QO)}}function yK(n,t,e){const i=new Lc(n,t,e);return i.texture.mapping=Aw,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function WS(n,t,e,i,r){n.viewport.set(t,e,i,r),n.scissor.set(t,e,i,r)}function wK(){return new Al({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function xK(){return new Al({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function jSe(n){let t=new WeakMap,e=null;function o(a){const l=a.target;l.removeEventListener("dispose",o);const c=t.get(l);void 0!==c&&(t.delete(l),c.dispose())}return{get:function i(a){if(a&&a.isTexture){const l=a.mapping,c=303===l||304===l,d=l===ym||l===TA;if(c||d){let u=t.get(a);if(a.isRenderTargetTexture&&a.pmremVersion!==(void 0!==u?u.texture.pmremVersion:0))return null===e&&(e=new vK(n)),u=c?e.fromEquirectangular(a,u):e.fromCubemap(a,u),u.texture.pmremVersion=a.pmremVersion,t.set(a,u),u.texture;if(void 0!==u)return u.texture;{const f=a.image;return c&&f&&f.height>0||d&&f&&function r(a){let l=0;for(let d=0;d<6;d++)void 0!==a[d]&&l++;return 6===l}(f)?(null===e&&(e=new vK(n)),u=c?e.fromEquirectangular(a):e.fromCubemap(a),u.texture.pmremVersion=a.pmremVersion,t.set(a,u),a.addEventListener("dispose",o),u.texture):null}}}return a},dispose:function s(){t=new WeakMap,null!==e&&(e.dispose(),e=null)}}}function XSe(n){const t={};function e(i){if(void 0!==t[i])return t[i];let r;switch(i){case"WEBGL_depth_texture":r=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=n.getExtension(i)}return t[i]=r,r}return{has:function(i){return null!==e(i)},init:function(){e("EXT_color_buffer_float"),e("WEBGL_clip_cull_distance"),e("OES_texture_float_linear"),e("EXT_color_buffer_half_float"),e("WEBGL_multisampled_render_to_texture"),e("WEBGL_render_shared_exponent")},get:function(i){const r=e(i);return null===r&&B_("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function KSe(n,t,e,i){const r={},o=new WeakMap;function s(u){const h=u.target;null!==h.index&&t.remove(h.index);for(const A in h.attributes)t.remove(h.attributes[A]);for(const A in h.morphAttributes){const y=h.morphAttributes[A];for(let _=0,b=y.length;_t.maxTextureSize&&(L=Math.ceil(E/t.maxTextureSize),E=t.maxTextureSize);const N=new Float32Array(E*L*4*u),H=new xO(N,E,L,u);H.type=ic,H.needsUpdate=!0;const j=4*C;for(let B=0;B0)return n;const r=t*e;let o=FK[r];if(void 0===o&&(o=new Float32Array(r),FK[r]=o),0!==t){i.toArray(o,0);for(let s=1,a=0;s!==t;++s)a+=e,n[s].toArray(o,a)}return o}function Vs(n,t){if(n.length!==t.length)return!1;for(let e=0,i=n.length;e":" "} ${a}: ${e[s]}`)}return i.join("\n")}(n.getShaderSource(t),s)}return r}function XTe(n,t){const e=function jTe(n){const t=Br.getPrimaries(Br.workingColorSpace),e=Br.getPrimaries(n);let i;switch(t===e?i="":t===yS&&e===vS?i="LinearDisplayP3ToLinearSRGB":t===vS&&e===yS&&(i="LinearSRGBToLinearDisplayP3"),n){case Cm:case _S:return[i,"LinearTransferOETF"];case Oc:case _O:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}(t);return`vec4 ${n}( vec4 value ) { return ${e[0]}( ${e[1]}( value ) ); }`}function KTe(n,t){let e;switch(t){case IMe:e="Linear";break;case FMe:e="Reinhard";break;case DMe:e="Cineon";break;case kMe:e="ACESFilmic";break;case PMe:e="AgX";break;case RMe:e="Neutral";break;case BMe:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+n+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}const XS=new se;function Sw(n){return""!==n}function NK(n,t){const e=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,e).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function UK(n,t){return n.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const tIe=/^[ \t]*#include +<([\w\d./]+)>/gm;function XO(n){return n.replace(tIe,iIe)}const nIe=new Map;function iIe(n,t){let e=Gi[t];if(void 0===e){const i=nIe.get(t);if(void 0===i)throw new Error("Can not resolve #include <"+t+">");e=Gi[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,i)}return XO(e)}const rIe=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function HK(n){return n.replace(rIe,oIe)}function oIe(n,t,e,i){let r="";for(let o=parseInt(t);o0&&(_+="\n"),b=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A].filter(Sw).join("\n"),b.length>0&&(b+="\n")):(_=[VK(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A,e.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",e.batching?"#define USE_BATCHING":"",e.batchingColor?"#define USE_BATCHING_COLOR":"",e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.instancingMorph?"#define USE_INSTANCING_MORPH":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+d:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&!1===e.flatShading?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&!1===e.flatShading?"#define USE_MORPHNORMALS":"",e.morphColors?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Sw).join("\n"),b=[VK(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+d:"",e.envMap?"#define "+u:"",h?"#define CUBEUV_TEXEL_WIDTH "+h.texelWidth:"",h?"#define CUBEUV_TEXEL_HEIGHT "+h.texelHeight:"",h?"#define CUBEUV_MAX_MIP "+h.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.dispersion?"#define USE_DISPERSION":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&!1===e.flatShading?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor||e.batchingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==vm?"#define TONE_MAPPING":"",e.toneMapping!==vm?Gi.tonemapping_pars_fragment:"",e.toneMapping!==vm?KTe("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Gi.colorspace_pars_fragment,XTe("linearToOutputTexel",e.outputColorSpace),(Br.getLuminanceCoefficients(XS),["float luminance( const in vec3 rgb ) {",`\tconst vec3 weights = vec3( ${XS.x.toFixed(4)}, ${XS.y.toFixed(4)}, ${XS.z.toFixed(4)} );`,"\treturn dot( weights, rgb );","}"].join("\n")),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"","\n"].filter(Sw).join("\n")),s=XO(s),s=NK(s,e),s=UK(s,e),a=XO(a),a=NK(a,e),a=UK(a,e),s=HK(s),a=HK(a),!0!==e.isRawShaderMaterial&&(M="#version 300 es\n",_=[f,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,b=["#define varying in",e.glslVersion===zX?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===zX?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+b);const E=M+b+a,L=OK(r,r.VERTEX_SHADER,M+_+s),N=OK(r,r.FRAGMENT_SHADER,E);function H(ee){if(n.debug.checkShaderErrors){const we=r.getProgramInfoLog(y).trim(),Ee=r.getShaderInfoLog(L).trim(),ne=r.getShaderInfoLog(N).trim();let Ie=!0,te=!0;if(!1===r.getProgramParameter(y,r.LINK_STATUS))if(Ie=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,y,L,N);else{const Ae=LK(r,L,"vertex"),le=LK(r,N,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+ee.name+"\nMaterial Type: "+ee.type+"\n\nProgram Info Log: "+we+"\n"+Ae+"\n"+le)}else""!==we?console.warn("THREE.WebGLProgram: Program Info Log:",we):(""===Ee||""===ne)&&(te=!1);te&&(ee.diagnostics={runnable:Ie,programLog:we,vertexShader:{log:Ee,prefix:_},fragmentShader:{log:ne,prefix:b}})}r.deleteShader(L),r.deleteShader(N),j=new jS(r,y),R=function eIe(n,t){const e={},i=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,ft=R.clearcoat>0,Bt=R.iridescence>0,Vt=R.sheen>0,$n=R.transmission>0,fn=Y&&!!R.anisotropyMap,xn=ft&&!!R.clearcoatMap,Ei=ft&&!!R.clearcoatNormalMap,Zt=ft&&!!R.clearcoatRoughnessMap,Cn=Bt&&!!R.iridescenceMap,cr=Bt&&!!R.iridescenceThicknessMap,Ci=Vt&&!!R.sheenColorMap,Rn=Vt&&!!R.sheenRoughnessMap,Bi=!!R.specularMap,nr=!!R.specularColorMap,Vo=!!R.specularIntensityMap,Ze=$n&&!!R.transmissionMap,nn=$n&&!!R.thicknessMap,Gt=!!R.alphaMap,vr=!!R.extensions;let Ms=vm;R.toneMapped&&(null===Z||!0===Z.isXRRenderTarget)&&(Ms=n.toneMapping);const ha={shaderID:Pe,shaderType:R.type,shaderName:R.name,vertexShader:cn,fragmentShader:ce,defines:R.defines,customVertexShaderID:ue,customFragmentShaderID:ae,isRawShaderMaterial:!0===R.isRawShaderMaterial,glslVersion:R.glslVersion,precision:f,batching:wt,batchingColor:wt&&null!==Ee._colorsTexture,instancing:$e,instancingColor:$e&&null!==Ee.instanceColor,instancingMorph:$e&&null!==Ee.morphTexture,supportsVertexTextures:h,outputColorSpace:null===Z?n.outputColorSpace:!0===Z.isXRRenderTarget?Z.texture.colorSpace:Cm,alphaToCoverage:!!R.alphaToCoverage,map:je,matcap:!!R.matcap,envMap:re,envMapMode:re&&Ae.mapping,envMapCubeUVHeight:le,aoMap:ht,lightMap:Ve,bumpMap:At,normalMap:ot,displacementMap:h&&vt,emissiveMap:Ce,normalMapObjectSpace:ot&&1===R.normalMapType,normalMapTangentSpace:ot&&0===R.normalMapType,metalnessMap:be,roughnessMap:de,anisotropy:Y,anisotropyMap:fn,clearcoat:ft,clearcoatMap:xn,clearcoatNormalMap:Ei,clearcoatRoughnessMap:Zt,dispersion:R.dispersion>0,iridescence:Bt,iridescenceMap:Cn,iridescenceThicknessMap:cr,sheen:Vt,sheenColorMap:Ci,sheenRoughnessMap:Rn,specularMap:Bi,specularColorMap:nr,specularIntensityMap:Vo,transmission:$n,transmissionMap:Ze,thicknessMap:nn,gradientMap:!!R.gradientMap,opaque:!1===R.transparent&&1===R.blending&&!1===R.alphaToCoverage,alphaMap:Gt,alphaTest:R.alphaTest>0,alphaHash:!!R.alphaHash,combine:R.combine,mapUv:je&&y(R.map.channel),aoMapUv:ht&&y(R.aoMap.channel),lightMapUv:Ve&&y(R.lightMap.channel),bumpMapUv:At&&y(R.bumpMap.channel),normalMapUv:ot&&y(R.normalMap.channel),displacementMapUv:vt&&y(R.displacementMap.channel),emissiveMapUv:Ce&&y(R.emissiveMap.channel),metalnessMapUv:be&&y(R.metalnessMap.channel),roughnessMapUv:de&&y(R.roughnessMap.channel),anisotropyMapUv:fn&&y(R.anisotropyMap.channel),clearcoatMapUv:xn&&y(R.clearcoatMap.channel),clearcoatNormalMapUv:Ei&&y(R.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Zt&&y(R.clearcoatRoughnessMap.channel),iridescenceMapUv:Cn&&y(R.iridescenceMap.channel),iridescenceThicknessMapUv:cr&&y(R.iridescenceThicknessMap.channel),sheenColorMapUv:Ci&&y(R.sheenColorMap.channel),sheenRoughnessMapUv:Rn&&y(R.sheenRoughnessMap.channel),specularMapUv:Bi&&y(R.specularMap.channel),specularColorMapUv:nr&&y(R.specularColorMap.channel),specularIntensityMapUv:Vo&&y(R.specularIntensityMap.channel),transmissionMapUv:Ze&&y(R.transmissionMap.channel),thicknessMapUv:nn&&y(R.thicknessMap.channel),alphaMapUv:Gt&&y(R.alphaMap.channel),vertexTangents:!!Ie.attributes.tangent&&(ot||Y),vertexColors:R.vertexColors,vertexAlphas:!0===R.vertexColors&&!!Ie.attributes.color&&4===Ie.attributes.color.itemSize,pointsUvs:!0===Ee.isPoints&&!!Ie.attributes.uv&&(je||Gt),fog:!!ne,useFog:!0===R.fog,fogExp2:!!ne&&ne.isFogExp2,flatShading:!0===R.flatShading,sizeAttenuation:!0===R.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===Ee.isSkinnedMesh,morphTargets:void 0!==Ie.morphAttributes.position,morphNormals:void 0!==Ie.morphAttributes.normal,morphColors:void 0!==Ie.morphAttributes.color,morphTargetsCount:_t,morphTextureStride:Ht,numDirLights:B.directional.length,numPointLights:B.point.length,numSpotLights:B.spot.length,numSpotLightMaps:B.spotLightMap.length,numRectAreaLights:B.rectArea.length,numHemiLights:B.hemi.length,numDirLightShadows:B.directionalShadowMap.length,numPointLightShadows:B.pointShadowMap.length,numSpotLightShadows:B.spotShadowMap.length,numSpotLightShadowsWithMaps:B.numSpotLightShadowsWithMaps,numLightProbes:B.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:R.dithering,shadowMapEnabled:n.shadowMap.enabled&&ee.length>0,shadowMapType:n.shadowMap.type,toneMapping:Ms,decodeVideoTexture:je&&!0===R.map.isVideoTexture&&Br.getTransfer(R.map.colorSpace)===wo,premultipliedAlpha:R.premultipliedAlpha,doubleSided:2===R.side,flipSided:1===R.side,useDepthPacking:R.depthPacking>=0,depthPacking:R.depthPacking||0,index0AttributeName:R.index0AttributeName,extensionClipCullDistance:vr&&!0===R.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(vr&&!0===R.extensions.multiDraw||wt)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:R.customProgramCacheKey()};return ha.vertexUv1s=c.has(1),ha.vertexUv2s=c.has(2),ha.vertexUv3s=c.has(3),c.clear(),ha},getProgramCacheKey:function b(R){const B=[];if(R.shaderID?B.push(R.shaderID):(B.push(R.customVertexShaderID),B.push(R.customFragmentShaderID)),void 0!==R.defines)for(const ee in R.defines)B.push(ee),B.push(R.defines[ee]);return!1===R.isRawShaderMaterial&&(function M(R,B){R.push(B.precision),R.push(B.outputColorSpace),R.push(B.envMapMode),R.push(B.envMapCubeUVHeight),R.push(B.mapUv),R.push(B.alphaMapUv),R.push(B.lightMapUv),R.push(B.aoMapUv),R.push(B.bumpMapUv),R.push(B.normalMapUv),R.push(B.displacementMapUv),R.push(B.emissiveMapUv),R.push(B.metalnessMapUv),R.push(B.roughnessMapUv),R.push(B.anisotropyMapUv),R.push(B.clearcoatMapUv),R.push(B.clearcoatNormalMapUv),R.push(B.clearcoatRoughnessMapUv),R.push(B.iridescenceMapUv),R.push(B.iridescenceThicknessMapUv),R.push(B.sheenColorMapUv),R.push(B.sheenRoughnessMapUv),R.push(B.specularMapUv),R.push(B.specularColorMapUv),R.push(B.specularIntensityMapUv),R.push(B.transmissionMapUv),R.push(B.thicknessMapUv),R.push(B.combine),R.push(B.fogExp2),R.push(B.sizeAttenuation),R.push(B.morphTargetsCount),R.push(B.morphAttributeCount),R.push(B.numDirLights),R.push(B.numPointLights),R.push(B.numSpotLights),R.push(B.numSpotLightMaps),R.push(B.numHemiLights),R.push(B.numRectAreaLights),R.push(B.numDirLightShadows),R.push(B.numPointLightShadows),R.push(B.numSpotLightShadows),R.push(B.numSpotLightShadowsWithMaps),R.push(B.numLightProbes),R.push(B.shadowMapType),R.push(B.toneMapping),R.push(B.numClippingPlanes),R.push(B.numClipIntersection),R.push(B.depthPacking)}(B,R),function C(R,B){a.disableAll(),B.supportsVertexTextures&&a.enable(0),B.instancing&&a.enable(1),B.instancingColor&&a.enable(2),B.instancingMorph&&a.enable(3),B.matcap&&a.enable(4),B.envMap&&a.enable(5),B.normalMapObjectSpace&&a.enable(6),B.normalMapTangentSpace&&a.enable(7),B.clearcoat&&a.enable(8),B.iridescence&&a.enable(9),B.alphaTest&&a.enable(10),B.vertexColors&&a.enable(11),B.vertexAlphas&&a.enable(12),B.vertexUv1s&&a.enable(13),B.vertexUv2s&&a.enable(14),B.vertexUv3s&&a.enable(15),B.vertexTangents&&a.enable(16),B.anisotropy&&a.enable(17),B.alphaHash&&a.enable(18),B.batching&&a.enable(19),B.dispersion&&a.enable(20),B.batchingColor&&a.enable(21),R.push(a.mask),a.disableAll(),B.fog&&a.enable(0),B.useFog&&a.enable(1),B.flatShading&&a.enable(2),B.logarithmicDepthBuffer&&a.enable(3),B.skinning&&a.enable(4),B.morphTargets&&a.enable(5),B.morphNormals&&a.enable(6),B.morphColors&&a.enable(7),B.premultipliedAlpha&&a.enable(8),B.shadowMapEnabled&&a.enable(9),B.doubleSided&&a.enable(10),B.flipSided&&a.enable(11),B.useDepthPacking&&a.enable(12),B.dithering&&a.enable(13),B.transmission&&a.enable(14),B.sheen&&a.enable(15),B.opaque&&a.enable(16),B.pointsUvs&&a.enable(17),B.decodeVideoTexture&&a.enable(18),B.alphaToCoverage&&a.enable(19),R.push(a.mask)}(B,R),B.push(n.outputColorSpace)),B.push(R.customProgramCacheKey),B.join()},getUniforms:function E(R){const B=A[R.type];let ee;return ee=B?UO.clone(bu[B].uniforms):R.uniforms,ee},acquireProgram:function L(R,B){let ee;for(let we=0,Ee=d.length;we0?i.push(b):!0===f.transparent?r.push(b):e.push(b)},unshift:function l(u,h,f,A,y,_){const b=s(u,h,f,A,y,_);f.transmission>0?i.unshift(b):!0===f.transparent?r.unshift(b):e.unshift(b)},finish:function d(){for(let u=t,h=n.length;u1&&e.sort(u||gIe),i.length>1&&i.sort(h||QK),r.length>1&&r.sort(h||QK)}}}function _Ie(){let n=new WeakMap;return{get:function t(i,r){const o=n.get(i);let s;return void 0===o?(s=new zK,n.set(i,[s])):r>=o.length?(s=new zK,o.push(s)):s=o[r],s},dispose:function e(){n=new WeakMap}}}function bIe(){const n={};return{get:function(t){if(void 0!==n[t.id])return n[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new se,color:new tn};break;case"SpotLight":e={position:new se,direction:new se,color:new tn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new se,color:new tn,distance:0,decay:0};break;case"HemisphereLight":e={direction:new se,skyColor:new tn,groundColor:new tn};break;case"RectAreaLight":e={color:new tn,position:new se,halfWidth:new se,halfHeight:new se}}return n[t.id]=e,e}}}let yIe=0;function wIe(n,t){return(t.castShadow?2:0)-(n.castShadow?2:0)+(t.map?1:0)-(n.map?1:0)}function xIe(n){const t=new bIe,e=function vIe(){const n={};return{get:function(t){if(void 0!==n[t.id])return n[t.id];let e;switch(t.type){case"DirectionalLight":case"SpotLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new nt};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new nt,shadowCameraNear:1,shadowCameraFar:1e3}}return n[t.id]=e,e}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)i.probe.push(new se);const r=new se,o=new hi,s=new hi;return{setup:function a(c){let d=0,u=0,h=0;for(let R=0;R<9;R++)i.probe[R].set(0,0,0);let f=0,A=0,y=0,_=0,b=0,M=0,C=0,E=0,L=0,N=0,H=0;c.sort(wIe);for(let R=0,B=c.length;R0&&(!0===n.has("OES_texture_float_linear")?(i.rectAreaLTC1=pn.LTC_FLOAT_1,i.rectAreaLTC2=pn.LTC_FLOAT_2):(i.rectAreaLTC1=pn.LTC_HALF_1,i.rectAreaLTC2=pn.LTC_HALF_2)),i.ambient[0]=d,i.ambient[1]=u,i.ambient[2]=h;const j=i.hash;(j.directionalLength!==f||j.pointLength!==A||j.spotLength!==y||j.rectAreaLength!==_||j.hemiLength!==b||j.numDirectionalShadows!==M||j.numPointShadows!==C||j.numSpotShadows!==E||j.numSpotMaps!==L||j.numLightProbes!==H)&&(i.directional.length=f,i.spot.length=y,i.rectArea.length=_,i.point.length=A,i.hemi.length=b,i.directionalShadow.length=M,i.directionalShadowMap.length=M,i.pointShadow.length=C,i.pointShadowMap.length=C,i.spotShadow.length=E,i.spotShadowMap.length=E,i.directionalShadowMatrix.length=M,i.pointShadowMatrix.length=C,i.spotLightMatrix.length=E+L-N,i.spotLightMap.length=L,i.numSpotLightShadowsWithMaps=N,i.numLightProbes=H,j.directionalLength=f,j.pointLength=A,j.spotLength=y,j.rectAreaLength=_,j.hemiLength=b,j.numDirectionalShadows=M,j.numPointShadows=C,j.numSpotShadows=E,j.numSpotMaps=L,j.numLightProbes=H,i.version=yIe++)},setupView:function l(c,d){let u=0,h=0,f=0,A=0,y=0;const _=d.matrixWorldInverse;for(let b=0,M=c.length;b=s.length?(a=new qK(n),s.push(a)):a=s[o],a},dispose:function i(){t=new WeakMap}}}class GK extends Ya{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class WK extends Ya{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function SIe(n,t,e){let i=new zS;const r=new nt,o=new nt,s=new Wr,a=new GK({depthPacking:3201}),l=new WK,c={},d=e.maxTextureSize,u={0:1,1:0,2:2},h=new Al({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new nt},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),f=h.clone();f.defines.HORIZONTAL_PASS=1;const A=new gi;A.setAttribute("position",new tr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new ki(A,h),_=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=MX;let b=this.type;function M(N,H){const j=t.update(y);h.defines.VSM_SAMPLES!==N.blurSamples&&(h.defines.VSM_SAMPLES=N.blurSamples,f.defines.VSM_SAMPLES=N.blurSamples,h.needsUpdate=!0,f.needsUpdate=!0),null===N.mapPass&&(N.mapPass=new Lc(r.x,r.y)),h.uniforms.shadow_pass.value=N.map.texture,h.uniforms.resolution.value=N.mapSize,h.uniforms.radius.value=N.radius,n.setRenderTarget(N.mapPass),n.clear(),n.renderBufferDirect(H,null,j,h,y,null),f.uniforms.shadow_pass.value=N.mapPass.texture,f.uniforms.resolution.value=N.mapSize,f.uniforms.radius.value=N.radius,n.setRenderTarget(N.map),n.clear(),n.renderBufferDirect(H,null,j,f,y,null)}function C(N,H,j,R){let B=null;const ee=!0===j.isPointLight?N.customDistanceMaterial:N.customDepthMaterial;if(void 0!==ee)B=ee;else if(B=!0===j.isPointLight?l:a,n.localClippingEnabled&&!0===H.clipShadows&&Array.isArray(H.clippingPlanes)&&0!==H.clippingPlanes.length||H.displacementMap&&0!==H.displacementScale||H.alphaMap&&H.alphaTest>0||H.map&&H.alphaTest>0){const we=B.uuid,Ee=H.uuid;let ne=c[we];void 0===ne&&(ne={},c[we]=ne);let Ie=ne[Ee];void 0===Ie&&(Ie=B.clone(),ne[Ee]=Ie,H.addEventListener("dispose",L)),B=Ie}return B.visible=H.visible,B.wireframe=H.wireframe,B.side=R===Rh?null!==H.shadowSide?H.shadowSide:H.side:null!==H.shadowSide?H.shadowSide:u[H.side],B.alphaMap=H.alphaMap,B.alphaTest=H.alphaTest,B.map=H.map,B.clipShadows=H.clipShadows,B.clippingPlanes=H.clippingPlanes,B.clipIntersection=H.clipIntersection,B.displacementMap=H.displacementMap,B.displacementScale=H.displacementScale,B.displacementBias=H.displacementBias,B.wireframeLinewidth=H.wireframeLinewidth,B.linewidth=H.linewidth,!0===j.isPointLight&&!0===B.isMeshDistanceMaterial&&(n.properties.get(B).light=j),B}function E(N,H,j,R,B){if(!1===N.visible)return;if(N.layers.test(H.layers)&&(N.isMesh||N.isLine||N.isPoints)&&(N.castShadow||N.receiveShadow&&B===Rh)&&(!N.frustumCulled||i.intersectsObject(N))){N.modelViewMatrix.multiplyMatrices(j.matrixWorldInverse,N.matrixWorld);const Ee=t.update(N),ne=N.material;if(Array.isArray(ne)){const Ie=Ee.groups;for(let te=0,Ae=Ie.length;ted||r.y>d)&&(r.x>d&&(o.x=Math.floor(d/Pe.x),r.x=o.x*Pe.x,le.mapSize.x=o.x),r.y>d&&(o.y=Math.floor(d/Pe.y),r.y=o.y*Pe.y,le.mapSize.y=o.y)),null===le.map||!0===Ee||!0===ne){const _t=this.type!==Rh?{minFilter:la,magFilter:la}:{};null!==le.map&&le.map.dispose(),le.map=new Lc(r.x,r.y,_t),le.map.texture.name=Ae.name+".shadowMap",le.camera.updateProjectionMatrix()}n.setRenderTarget(le.map),n.clear();const it=le.getViewportCount();for(let _t=0;_t=1):-1!==Ae.indexOf("OpenGL ES")&&(te=parseFloat(/^OpenGL ES (\d)/.exec(Ae)[1]),Ie=te>=2);let le=null,Pe={};const it=n.getParameter(n.SCISSOR_BOX),_t=n.getParameter(n.VIEWPORT),Ht=(new Wr).fromArray(it),cn=(new Wr).fromArray(_t);function ce(Ze,nn,zt,Gt){const un=new Uint8Array(4),Mi=n.createTexture();n.bindTexture(Ze,Mi),n.texParameteri(Ze,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(Ze,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let vr=0;vr"u")&&/OculusBrowser/g.test(navigator.userAgent),c=new nt,d=new WeakMap;let u;const h=new WeakMap;let f=!1;try{f=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function A(de,Y){return f?new OffscreenCanvas(de,Y):vw("canvas")}function y(de,Y,ft){let Ut=1;const Bt=be(de);if((Bt.width>ft||Bt.height>ft)&&(Ut=ft/Math.max(Bt.width,Bt.height)),Ut<1){if(typeof HTMLImageElement<"u"&&de instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&de instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&de instanceof ImageBitmap||typeof VideoFrame<"u"&&de instanceof VideoFrame){const Vt=Math.floor(Ut*Bt.width),$n=Math.floor(Ut*Bt.height);void 0===u&&(u=A(Vt,$n));const fn=Y?A(Vt,$n):u;return fn.width=Vt,fn.height=$n,fn.getContext("2d").drawImage(de,0,0,Vt,$n),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Bt.width+"x"+Bt.height+") to ("+Vt+"x"+$n+")."),fn}return"data"in de&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Bt.width+"x"+Bt.height+")."),de}return de}function _(de){return de.generateMipmaps&&de.minFilter!==la&&de.minFilter!==xs}function b(de){n.generateMipmap(de)}function M(de,Y,ft,Ut,Bt=!1){if(null!==de){if(void 0!==n[de])return n[de];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+de+"'")}let Vt=Y;if(Y===n.RED&&(ft===n.FLOAT&&(Vt=n.R32F),ft===n.HALF_FLOAT&&(Vt=n.R16F),ft===n.UNSIGNED_BYTE&&(Vt=n.R8)),Y===n.RED_INTEGER&&(ft===n.UNSIGNED_BYTE&&(Vt=n.R8UI),ft===n.UNSIGNED_SHORT&&(Vt=n.R16UI),ft===n.UNSIGNED_INT&&(Vt=n.R32UI),ft===n.BYTE&&(Vt=n.R8I),ft===n.SHORT&&(Vt=n.R16I),ft===n.INT&&(Vt=n.R32I)),Y===n.RG&&(ft===n.FLOAT&&(Vt=n.RG32F),ft===n.HALF_FLOAT&&(Vt=n.RG16F),ft===n.UNSIGNED_BYTE&&(Vt=n.RG8)),Y===n.RG_INTEGER&&(ft===n.UNSIGNED_BYTE&&(Vt=n.RG8UI),ft===n.UNSIGNED_SHORT&&(Vt=n.RG16UI),ft===n.UNSIGNED_INT&&(Vt=n.RG32UI),ft===n.BYTE&&(Vt=n.RG8I),ft===n.SHORT&&(Vt=n.RG16I),ft===n.INT&&(Vt=n.RG32I)),Y===n.RGB&&ft===n.UNSIGNED_INT_5_9_9_9_REV&&(Vt=n.RGB9_E5),Y===n.RGBA){const $n=Bt?bS:Br.getTransfer(Ut);ft===n.FLOAT&&(Vt=n.RGBA32F),ft===n.HALF_FLOAT&&(Vt=n.RGBA16F),ft===n.UNSIGNED_BYTE&&(Vt=$n===wo?n.SRGB8_ALPHA8:n.RGBA8),ft===n.UNSIGNED_SHORT_4_4_4_4&&(Vt=n.RGBA4),ft===n.UNSIGNED_SHORT_5_5_5_1&&(Vt=n.RGB5_A1)}return(Vt===n.R16F||Vt===n.R32F||Vt===n.RG16F||Vt===n.RG32F||Vt===n.RGBA16F||Vt===n.RGBA32F)&&t.get("EXT_color_buffer_float"),Vt}function C(de,Y){let ft;return de?null===Y||Y===wm||Y===M_?ft=n.DEPTH24_STENCIL8:Y===ic?ft=n.DEPTH32F_STENCIL8:Y===_w&&(ft=n.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===Y||Y===wm||Y===M_?ft=n.DEPTH_COMPONENT24:Y===ic?ft=n.DEPTH_COMPONENT32F:Y===_w&&(ft=n.DEPTH_COMPONENT16),ft}function E(de,Y){return!0===_(de)||de.isFramebufferTexture&&de.minFilter!==la&&de.minFilter!==xs?Math.log2(Math.max(Y.width,Y.height))+1:void 0!==de.mipmaps&&de.mipmaps.length>0?de.mipmaps.length:de.isCompressedTexture&&Array.isArray(de.image)?Y.mipmaps.length:1}function L(de){const Y=de.target;Y.removeEventListener("dispose",L),function H(de){const Y=i.get(de);if(void 0===Y.__webglInit)return;const ft=de.source,Ut=h.get(ft);if(Ut){const Bt=Ut[Y.__cacheKey];Bt.usedTimes--,0===Bt.usedTimes&&j(de),0===Object.keys(Ut).length&&h.delete(ft)}i.remove(de)}(Y),Y.isVideoTexture&&d.delete(Y)}function N(de){const Y=de.target;Y.removeEventListener("dispose",N),function R(de){const Y=i.get(de);if(de.depthTexture&&de.depthTexture.dispose(),de.isWebGLCubeRenderTarget)for(let Ut=0;Ut<6;Ut++){if(Array.isArray(Y.__webglFramebuffer[Ut]))for(let Bt=0;Bt0&&ft.__version!==de.version){const Ut=de.image;if(null===Ut)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==Ut.complete)return void cn(ft,de,Y);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}e.bindTexture(n.TEXTURE_2D,ft.__webglTexture,n.TEXTURE0+Y)}const le={[x_]:n.REPEAT,[_d]:n.CLAMP_TO_EDGE,1002:n.MIRRORED_REPEAT},Pe={[la]:n.NEAREST,1004:n.NEAREST_MIPMAP_NEAREST,1005:n.NEAREST_MIPMAP_LINEAR,[xs]:n.LINEAR,1007:n.LINEAR_MIPMAP_NEAREST,[Nh]:n.LINEAR_MIPMAP_LINEAR},it={512:n.NEVER,519:n.ALWAYS,513:n.LESS,515:n.LEQUAL,514:n.EQUAL,518:n.GEQUAL,516:n.GREATER,517:n.NOTEQUAL};function _t(de,Y){if(Y.type===ic&&!1===t.has("OES_texture_float_linear")&&(Y.magFilter===xs||1007===Y.magFilter||1005===Y.magFilter||Y.magFilter===Nh||Y.minFilter===xs||1007===Y.minFilter||1005===Y.minFilter||Y.minFilter===Nh)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(de,n.TEXTURE_WRAP_S,le[Y.wrapS]),n.texParameteri(de,n.TEXTURE_WRAP_T,le[Y.wrapT]),(de===n.TEXTURE_3D||de===n.TEXTURE_2D_ARRAY)&&n.texParameteri(de,n.TEXTURE_WRAP_R,le[Y.wrapR]),n.texParameteri(de,n.TEXTURE_MAG_FILTER,Pe[Y.magFilter]),n.texParameteri(de,n.TEXTURE_MIN_FILTER,Pe[Y.minFilter]),Y.compareFunction&&(n.texParameteri(de,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(de,n.TEXTURE_COMPARE_FUNC,it[Y.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){if(Y.magFilter===la||1005!==Y.minFilter&&Y.minFilter!==Nh||Y.type===ic&&!1===t.has("OES_texture_float_linear"))return;if(Y.anisotropy>1||i.get(Y).__currentAnisotropy){const ft=t.get("EXT_texture_filter_anisotropic");n.texParameterf(de,ft.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Y.anisotropy,r.getMaxAnisotropy())),i.get(Y).__currentAnisotropy=Y.anisotropy}}}function Ht(de,Y){let ft=!1;void 0===de.__webglInit&&(de.__webglInit=!0,Y.addEventListener("dispose",L));const Ut=Y.source;let Bt=h.get(Ut);void 0===Bt&&(Bt={},h.set(Ut,Bt));const Vt=function Ee(de){const Y=[];return Y.push(de.wrapS),Y.push(de.wrapT),Y.push(de.wrapR||0),Y.push(de.magFilter),Y.push(de.minFilter),Y.push(de.anisotropy),Y.push(de.internalFormat),Y.push(de.format),Y.push(de.type),Y.push(de.generateMipmaps),Y.push(de.premultiplyAlpha),Y.push(de.flipY),Y.push(de.unpackAlignment),Y.push(de.colorSpace),Y.join()}(Y);if(Vt!==de.__cacheKey){void 0===Bt[Vt]&&(Bt[Vt]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,ft=!0),Bt[Vt].usedTimes++;const $n=Bt[de.__cacheKey];void 0!==$n&&(Bt[de.__cacheKey].usedTimes--,0===$n.usedTimes&&j(Y)),de.__cacheKey=Vt,de.__webglTexture=Bt[Vt].texture}return ft}function cn(de,Y,ft){let Ut=n.TEXTURE_2D;(Y.isDataArrayTexture||Y.isCompressedArrayTexture)&&(Ut=n.TEXTURE_2D_ARRAY),Y.isData3DTexture&&(Ut=n.TEXTURE_3D);const Bt=Ht(de,Y),Vt=Y.source;e.bindTexture(Ut,de.__webglTexture,n.TEXTURE0+ft);const $n=i.get(Vt);if(Vt.version!==$n.__version||!0===Bt){e.activeTexture(n.TEXTURE0+ft);const fn=Br.getPrimaries(Br.workingColorSpace),xn=""===Y.colorSpace?null:Br.getPrimaries(Y.colorSpace),Ei=""===Y.colorSpace||fn===xn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,Y.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Y.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,Y.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ei);let Zt=y(Y.image,!1,r.maxTextureSize);Zt=Ce(Y,Zt);const Cn=o.convert(Y.format,Y.colorSpace),cr=o.convert(Y.type);let Rn,Ci=M(Y.internalFormat,Cn,cr,Y.colorSpace,Y.isVideoTexture);_t(Ut,Y);const Bi=Y.mipmaps,nr=!0!==Y.isVideoTexture,Vo=void 0===$n.__version||!0===Bt,Ze=Vt.dataReady,nn=E(Y,Zt);if(Y.isDepthTexture)Ci=C(Y.format===S_,Y.type),Vo&&(nr?e.texStorage2D(n.TEXTURE_2D,1,Ci,Zt.width,Zt.height):e.texImage2D(n.TEXTURE_2D,0,Ci,Zt.width,Zt.height,0,Cn,cr,null));else if(Y.isDataTexture)if(Bi.length>0){nr&&Vo&&e.texStorage2D(n.TEXTURE_2D,nn,Ci,Bi[0].width,Bi[0].height);for(let zt=0,Gt=Bi.length;zt0){const un=KO(Rn.width,Rn.height,Y.format,Y.type);for(const Mi of Y.layerUpdates){const vr=Rn.data.subarray(Mi*un/Rn.data.BYTES_PER_ELEMENT,(Mi+1)*un/Rn.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,zt,0,0,Mi,Rn.width,Rn.height,1,Cn,vr,0,0)}Y.clearLayerUpdates()}else e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,zt,0,0,0,Rn.width,Rn.height,Zt.depth,Cn,Rn.data,0,0)}else e.compressedTexImage3D(n.TEXTURE_2D_ARRAY,zt,Ci,Rn.width,Rn.height,Zt.depth,0,Rn.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else nr?Ze&&e.texSubImage3D(n.TEXTURE_2D_ARRAY,zt,0,0,0,Rn.width,Rn.height,Zt.depth,Cn,cr,Rn.data):e.texImage3D(n.TEXTURE_2D_ARRAY,zt,Ci,Rn.width,Rn.height,Zt.depth,0,Cn,cr,Rn.data)}else{nr&&Vo&&e.texStorage2D(n.TEXTURE_2D,nn,Ci,Bi[0].width,Bi[0].height);for(let zt=0,Gt=Bi.length;zt0){const zt=KO(Zt.width,Zt.height,Y.format,Y.type);for(const Gt of Y.layerUpdates){const un=Zt.data.subarray(Gt*zt/Zt.data.BYTES_PER_ELEMENT,(Gt+1)*zt/Zt.data.BYTES_PER_ELEMENT);e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,Gt,Zt.width,Zt.height,1,Cn,cr,un)}Y.clearLayerUpdates()}else e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,Zt.width,Zt.height,Zt.depth,Cn,cr,Zt.data)}else e.texImage3D(n.TEXTURE_2D_ARRAY,0,Ci,Zt.width,Zt.height,Zt.depth,0,Cn,cr,Zt.data);else if(Y.isData3DTexture)nr?(Vo&&e.texStorage3D(n.TEXTURE_3D,nn,Ci,Zt.width,Zt.height,Zt.depth),Ze&&e.texSubImage3D(n.TEXTURE_3D,0,0,0,0,Zt.width,Zt.height,Zt.depth,Cn,cr,Zt.data)):e.texImage3D(n.TEXTURE_3D,0,Ci,Zt.width,Zt.height,Zt.depth,0,Cn,cr,Zt.data);else if(Y.isFramebufferTexture){if(Vo)if(nr)e.texStorage2D(n.TEXTURE_2D,nn,Ci,Zt.width,Zt.height);else{let zt=Zt.width,Gt=Zt.height;for(let un=0;un>=1,Gt>>=1}}else if(Bi.length>0){if(nr&&Vo){const zt=be(Bi[0]);e.texStorage2D(n.TEXTURE_2D,nn,Ci,zt.width,zt.height)}for(let zt=0,Gt=Bi.length;zt>Vt),Cn=Math.max(1,Y.height>>Vt);Bt===n.TEXTURE_3D||Bt===n.TEXTURE_2D_ARRAY?e.texImage3D(Bt,Vt,xn,Zt,Cn,Y.depth,0,$n,fn,null):e.texImage2D(Bt,Vt,xn,Zt,Cn,0,$n,fn,null)}e.bindFramebuffer(n.FRAMEBUFFER,de),ot(Y)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Ut,Bt,i.get(ft).__webglTexture,0,At(Y)):(Bt===n.TEXTURE_2D||Bt>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&Bt<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Ut,Bt,i.get(ft).__webglTexture,Vt),e.bindFramebuffer(n.FRAMEBUFFER,null)}function ae(de,Y,ft){if(n.bindRenderbuffer(n.RENDERBUFFER,de),Y.depthBuffer){const Ut=Y.depthTexture,Vt=C(Y.stencilBuffer,Ut&&Ut.isDepthTexture?Ut.type:null),$n=Y.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,fn=At(Y);ot(Y)?a.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,fn,Vt,Y.width,Y.height):ft?n.renderbufferStorageMultisample(n.RENDERBUFFER,fn,Vt,Y.width,Y.height):n.renderbufferStorage(n.RENDERBUFFER,Vt,Y.width,Y.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,$n,n.RENDERBUFFER,de)}else{const Ut=Y.textures;for(let Bt=0;Bt{delete Y.__boundDepthTexture,delete Y.__depthDisposeCallback,Ut.removeEventListener("dispose",Bt)};Ut.addEventListener("dispose",Bt),Y.__depthDisposeCallback=Bt}Y.__boundDepthTexture=Ut}if(de.depthTexture&&!Y.__autoAllocateDepthBuffer){if(ft)throw new Error("target.depthTexture not supported in Cube render targets");!function Z(de,Y){if(Y&&Y.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(n.FRAMEBUFFER,de),!Y.depthTexture||!Y.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(Y.depthTexture).__webglTexture||Y.depthTexture.image.width!==Y.width||Y.depthTexture.image.height!==Y.height)&&(Y.depthTexture.image.width=Y.width,Y.depthTexture.image.height=Y.height,Y.depthTexture.needsUpdate=!0),ne(Y.depthTexture,0);const Ut=i.get(Y.depthTexture).__webglTexture,Bt=At(Y);if(Y.depthTexture.format===E_)ot(Y)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ut,0,Bt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ut,0);else{if(Y.depthTexture.format!==S_)throw new Error("Unknown depthTexture format");ot(Y)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ut,0,Bt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ut,0)}}(Y.__webglFramebuffer,de)}else if(ft){Y.__webglDepthbuffer=[];for(let Ut=0;Ut<6;Ut++)if(e.bindFramebuffer(n.FRAMEBUFFER,Y.__webglFramebuffer[Ut]),void 0===Y.__webglDepthbuffer[Ut])Y.__webglDepthbuffer[Ut]=n.createRenderbuffer(),ae(Y.__webglDepthbuffer[Ut],de,!1);else{const Bt=de.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Vt=Y.__webglDepthbuffer[Ut];n.bindRenderbuffer(n.RENDERBUFFER,Vt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Bt,n.RENDERBUFFER,Vt)}}else if(e.bindFramebuffer(n.FRAMEBUFFER,Y.__webglFramebuffer),void 0===Y.__webglDepthbuffer)Y.__webglDepthbuffer=n.createRenderbuffer(),ae(Y.__webglDepthbuffer,de,!1);else{const Ut=de.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Bt=Y.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,Bt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ut,n.RENDERBUFFER,Bt)}e.bindFramebuffer(n.FRAMEBUFFER,null)}const re=[],ht=[];function At(de){return Math.min(r.maxSamples,de.samples)}function ot(de){const Y=i.get(de);return de.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==Y.__useRenderToTexture}function Ce(de,Y){const ft=de.colorSpace,Ut=de.format,Bt=de.type;return!0===de.isCompressedTexture||!0===de.isVideoTexture||ft!==Cm&&""!==ft&&(Br.getTransfer(ft)===wo?(Ut!==$a||Bt!==Uh)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ft)),Y}function be(de){return typeof HTMLImageElement<"u"&&de instanceof HTMLImageElement?(c.width=de.naturalWidth||de.width,c.height=de.naturalHeight||de.height):typeof VideoFrame<"u"&&de instanceof VideoFrame?(c.width=de.displayWidth,c.height=de.displayHeight):(c.width=de.width,c.height=de.height),c}this.allocateTextureUnit=function we(){const de=B;return de>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+de+" texture units while this GPU supports only "+r.maxTextures),B+=1,de},this.resetTextureUnits=function ee(){B=0},this.setTexture2D=ne,this.setTexture2DArray=function Ie(de,Y){const ft=i.get(de);de.version>0&&ft.__version!==de.version?cn(ft,de,Y):e.bindTexture(n.TEXTURE_2D_ARRAY,ft.__webglTexture,n.TEXTURE0+Y)},this.setTexture3D=function te(de,Y){const ft=i.get(de);de.version>0&&ft.__version!==de.version?cn(ft,de,Y):e.bindTexture(n.TEXTURE_3D,ft.__webglTexture,n.TEXTURE0+Y)},this.setTextureCube=function Ae(de,Y){const ft=i.get(de);de.version>0&&ft.__version!==de.version?function ce(de,Y,ft){if(6!==Y.image.length)return;const Ut=Ht(de,Y),Bt=Y.source;e.bindTexture(n.TEXTURE_CUBE_MAP,de.__webglTexture,n.TEXTURE0+ft);const Vt=i.get(Bt);if(Bt.version!==Vt.__version||!0===Ut){e.activeTexture(n.TEXTURE0+ft);const $n=Br.getPrimaries(Br.workingColorSpace),fn=""===Y.colorSpace?null:Br.getPrimaries(Y.colorSpace),xn=""===Y.colorSpace||$n===fn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,Y.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Y.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,Y.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,xn);const Ei=Y.isCompressedTexture||Y.image[0].isCompressedTexture,Zt=Y.image[0]&&Y.image[0].isDataTexture,Cn=[];for(let Gt=0;Gt<6;Gt++)Cn[Gt]=Ei||Zt?Zt?Y.image[Gt].image:Y.image[Gt]:y(Y.image[Gt],!0,r.maxCubemapSize),Cn[Gt]=Ce(Y,Cn[Gt]);const cr=Cn[0],Ci=o.convert(Y.format,Y.colorSpace),Rn=o.convert(Y.type),Bi=M(Y.internalFormat,Ci,Rn,Y.colorSpace),nr=!0!==Y.isVideoTexture,Vo=void 0===Vt.__version||!0===Ut,Ze=Bt.dataReady;let zt,nn=E(Y,cr);if(_t(n.TEXTURE_CUBE_MAP,Y),Ei){nr&&Vo&&e.texStorage2D(n.TEXTURE_CUBE_MAP,nn,Bi,cr.width,cr.height);for(let Gt=0;Gt<6;Gt++){zt=Cn[Gt].mipmaps;for(let un=0;un0&&nn++;const Gt=be(Cn[0]);e.texStorage2D(n.TEXTURE_CUBE_MAP,nn,Bi,Gt.width,Gt.height)}for(let Gt=0;Gt<6;Gt++)if(Zt){nr?Ze&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Gt,0,0,0,Cn[Gt].width,Cn[Gt].height,Ci,Rn,Cn[Gt].data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Gt,0,Bi,Cn[Gt].width,Cn[Gt].height,0,Ci,Rn,Cn[Gt].data);for(let un=0;un1;if($n||(void 0===Ut.__webglTexture&&(Ut.__webglTexture=n.createTexture()),Ut.__version=Y.version,s.memory.textures++),Vt){ft.__webglFramebuffer=[];for(let fn=0;fn<6;fn++)if(Y.mipmaps&&Y.mipmaps.length>0){ft.__webglFramebuffer[fn]=[];for(let xn=0;xn0){ft.__webglFramebuffer=[];for(let fn=0;fn0&&!1===ot(de)){ft.__webglMultisampledFramebuffer=n.createFramebuffer(),ft.__webglColorRenderbuffer=[],e.bindFramebuffer(n.FRAMEBUFFER,ft.__webglMultisampledFramebuffer);for(let fn=0;fn0)for(let xn=0;xn0)for(let xn=0;xn0)if(!1===ot(de)){const Y=de.textures,ft=de.width,Ut=de.height;let Bt=n.COLOR_BUFFER_BIT;const Vt=de.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,$n=i.get(de),fn=Y.length>1;if(fn)for(let xn=0;xnf+A?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&h<=f-A&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==l&&t.gripSpace&&(o=e.getPose(t.gripSpace,i),null!==o&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1));null!==a&&(r=e.getPose(t.targetRaySpace,i),null===r&&null!==o&&(r=o),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(OIe)))}return null!==a&&(a.visible=null!==r),null!==l&&(l.visible=null!==o),null!==c&&(c.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const i=new gl;i.matrixAutoUpdate=!1,i.visible=!1,t.joints[e.jointName]=i,t.add(i)}return t.joints[e.jointName]}}class UIe{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,i){if(null===this.texture){const r=new Xa;t.properties.get(r).__webglTexture=e.texture,(e.depthNear!=i.depthNear||e.depthFar!=i.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}getMesh(t){if(null!==this.texture&&null===this.mesh){const e=t.cameras[0].viewport,i=new Al({vertexShader:"\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",fragmentShader:"\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}",uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new ki(new Z_(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class HIe extends Vh{constructor(t,e){super();const i=this;let r=null,o=1,s=null,a="local-floor",l=1,c=null,d=null,u=null,h=null,f=null,A=null;const y=new UIe,_=e.getContextAttributes();let b=null,M=null;const C=[],E=[],L=new nt;let N=null;const H=new Hs;H.layers.enable(1),H.viewport=new Wr;const j=new Hs;j.layers.enable(2),j.viewport=new Wr;const R=[H,j],B=new RIe;B.layers.enable(1),B.layers.enable(2);let ee=null,we=null;function Ee(ce){const ue=E.indexOf(ce.inputSource);if(-1===ue)return;const ae=C[ue];void 0!==ae&&(ae.update(ce.inputSource,ce.frame,c||s),ae.dispatchEvent({type:ce.type,data:ce.inputSource}))}function ne(){r.removeEventListener("select",Ee),r.removeEventListener("selectstart",Ee),r.removeEventListener("selectend",Ee),r.removeEventListener("squeeze",Ee),r.removeEventListener("squeezestart",Ee),r.removeEventListener("squeezeend",Ee),r.removeEventListener("end",ne),r.removeEventListener("inputsourceschange",Ie);for(let ce=0;ce=0&&(E[Z]=null,C[Z].disconnect(ae))}for(let ue=0;ue=E.length){E.push(ae),Z=wt;break}if(null===E[wt]){E[wt]=ae,Z=wt;break}}if(-1===Z)break}const $e=C[Z];$e&&$e.connect(ae)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ce){let ue=C[ce];return void 0===ue&&(ue=new YO,C[ce]=ue),ue.getTargetRaySpace()},this.getControllerGrip=function(ce){let ue=C[ce];return void 0===ue&&(ue=new YO,C[ce]=ue),ue.getGripSpace()},this.getHand=function(ce){let ue=C[ce];return void 0===ue&&(ue=new YO,C[ce]=ue),ue.getHandSpace()},this.setFramebufferScaleFactor=function(ce){o=ce,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(ce){a=ce,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(ce){c=ce},this.getBaseLayer=function(){return null!==h?h:f},this.getBinding=function(){return u},this.getFrame=function(){return A},this.getSession=function(){return r},this.setSession=function(){var ce=k(function*(ue){if(r=ue,null!==r){if(b=t.getRenderTarget(),r.addEventListener("select",Ee),r.addEventListener("selectstart",Ee),r.addEventListener("selectend",Ee),r.addEventListener("squeeze",Ee),r.addEventListener("squeezestart",Ee),r.addEventListener("squeezeend",Ee),r.addEventListener("end",ne),r.addEventListener("inputsourceschange",Ie),!0!==_.xrCompatible&&(yield e.makeXRCompatible()),N=t.getPixelRatio(),t.getSize(L),void 0===r.renderState.layers)f=new XRWebGLLayer(r,e,{antialias:_.antialias,alpha:!0,depth:_.depth,stencil:_.stencil,framebufferScaleFactor:o}),r.updateRenderState({baseLayer:f}),t.setPixelRatio(1),t.setSize(f.framebufferWidth,f.framebufferHeight,!1),M=new Lc(f.framebufferWidth,f.framebufferHeight,{format:$a,type:Uh,colorSpace:t.outputColorSpace,stencilBuffer:_.stencil});else{let ae=null,Z=null,$e=null;_.depth&&($e=_.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,ae=_.stencil?S_:E_,Z=_.stencil?M_:wm);const wt={colorFormat:e.RGBA8,depthFormat:$e,scaleFactor:o};u=new XRWebGLBinding(r,e),h=u.createProjectionLayer(wt),r.updateRenderState({layers:[h]}),t.setPixelRatio(1),t.setSize(h.textureWidth,h.textureHeight,!1),M=new Lc(h.textureWidth,h.textureHeight,{format:$a,type:Uh,depthTexture:new CK(h.textureWidth,h.textureHeight,Z,void 0,void 0,void 0,void 0,void 0,void 0,ae),stencilBuffer:_.stencil,colorSpace:t.outputColorSpace,samples:_.antialias?4:0,resolveDepthBuffer:!1===h.ignoreDepthValues})}M.isXRRenderTarget=!0,this.setFoveation(l),c=null,s=yield r.requestReferenceSpace(a),cn.setContext(r),cn.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(ue){return ce.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode},this.getDepthTexture=function(){return y.getDepthTexture()};const te=new se,Ae=new se;function Pe(ce,ue){null===ue?ce.matrixWorld.copy(ce.matrix):ce.matrixWorld.multiplyMatrices(ue.matrixWorld,ce.matrix),ce.matrixWorldInverse.copy(ce.matrixWorld).invert()}this.updateCamera=function(ce){if(null===r)return;let ue=ce.near,ae=ce.far;null!==y.texture&&(y.depthNear>0&&(ue=y.depthNear),y.depthFar>0&&(ae=y.depthFar)),B.near=j.near=H.near=ue,B.far=j.far=H.far=ae,(ee!==B.near||we!==B.far)&&(r.updateRenderState({depthNear:B.near,depthFar:B.far}),ee=B.near,we=B.far);const Z=ce.parent,$e=B.cameras;Pe(B,Z);for(let wt=0;wt<$e.length;wt++)Pe($e[wt],Z);2===$e.length?function le(ce,ue,ae){te.setFromMatrixPosition(ue.matrixWorld),Ae.setFromMatrixPosition(ae.matrixWorld);const Z=te.distanceTo(Ae),$e=ue.projectionMatrix.elements,wt=ae.projectionMatrix.elements,je=$e[14]/($e[10]-1),Nt=$e[14]/($e[10]+1),re=($e[9]+1)/$e[5],ht=($e[9]-1)/$e[5],Ve=($e[8]-1)/$e[0],At=(wt[8]+1)/wt[0],ot=je*Ve,vt=je*At,Ce=Z/(-Ve+At),be=Ce*-Ve;if(ue.matrixWorld.decompose(ce.position,ce.quaternion,ce.scale),ce.translateX(be),ce.translateZ(Ce),ce.matrixWorld.compose(ce.position,ce.quaternion,ce.scale),ce.matrixWorldInverse.copy(ce.matrixWorld).invert(),-1===$e[10])ce.projectionMatrix.copy(ue.projectionMatrix),ce.projectionMatrixInverse.copy(ue.projectionMatrixInverse);else{const de=je+Ce,Y=Nt+Ce;ce.projectionMatrix.makePerspective(ot-be,vt+(Z-be),re*Nt/Y*de,ht*Nt/Y*de,de,Y),ce.projectionMatrixInverse.copy(ce.projectionMatrix).invert()}}(B,H,j):B.projectionMatrix.copy(H.projectionMatrix),function it(ce,ue,ae){null===ae?ce.matrix.copy(ue.matrixWorld):(ce.matrix.copy(ae.matrixWorld),ce.matrix.invert(),ce.matrix.multiply(ue.matrixWorld)),ce.matrix.decompose(ce.position,ce.quaternion,ce.scale),ce.updateMatrixWorld(!0),ce.projectionMatrix.copy(ue.projectionMatrix),ce.projectionMatrixInverse.copy(ue.projectionMatrixInverse),ce.isPerspectiveCamera&&(ce.fov=2*D_*Math.atan(1/ce.projectionMatrix.elements[5]),ce.zoom=1)}(ce,B,Z)},this.getCamera=function(){return B},this.getFoveation=function(){if(null!==h||null!==f)return l},this.setFoveation=function(ce){l=ce,null!==h&&(h.fixedFoveation=ce),null!==f&&void 0!==f.fixedFoveation&&(f.fixedFoveation=ce)},this.hasDepthSensing=function(){return null!==y.texture},this.getDepthSensingMesh=function(){return y.getMesh(B)};let _t=null;const cn=new AK;cn.setAnimationLoop(function Ht(ce,ue){if(d=ue.getViewerPose(c||s),A=ue,null!==d){const ae=d.views;null!==f&&(t.setRenderTargetFramebuffer(M,f.framebuffer),t.setRenderTarget(M));let Z=!1;ae.length!==B.cameras.length&&(B.cameras.length=0,Z=!0);for(let wt=0;wt0&&(_.alphaTest.value=b.alphaTest);const M=t.get(b),C=M.envMap,E=M.envMapRotation;C&&(_.envMap.value=C,UA.copy(E),UA.x*=-1,UA.y*=-1,UA.z*=-1,C.isCubeTexture&&!1===C.isRenderTargetTexture&&(UA.y*=-1,UA.z*=-1),_.envMapRotation.value.setFromMatrix4(VIe.makeRotationFromEuler(UA)),_.flipEnvMap.value=C.isCubeTexture&&!1===C.isRenderTargetTexture?-1:1,_.reflectivity.value=b.reflectivity,_.ior.value=b.ior,_.refractionRatio.value=b.refractionRatio),b.lightMap&&(_.lightMap.value=b.lightMap,_.lightMapIntensity.value=b.lightMapIntensity,e(b.lightMap,_.lightMapTransform)),b.aoMap&&(_.aoMap.value=b.aoMap,_.aoMapIntensity.value=b.aoMapIntensity,e(b.aoMap,_.aoMapTransform))}return{refreshFogUniforms:function i(_,b){b.color.getRGB(_.fogColor.value,fK(n)),b.isFog?(_.fogNear.value=b.near,_.fogFar.value=b.far):b.isFogExp2&&(_.fogDensity.value=b.density)},refreshMaterialUniforms:function r(_,b,M,C,E){b.isMeshBasicMaterial||b.isMeshLambertMaterial?o(_,b):b.isMeshToonMaterial?(o(_,b),function u(_,b){b.gradientMap&&(_.gradientMap.value=b.gradientMap)}(_,b)):b.isMeshPhongMaterial?(o(_,b),function d(_,b){_.specular.value.copy(b.specular),_.shininess.value=Math.max(b.shininess,1e-4)}(_,b)):b.isMeshStandardMaterial?(o(_,b),function h(_,b){_.metalness.value=b.metalness,b.metalnessMap&&(_.metalnessMap.value=b.metalnessMap,e(b.metalnessMap,_.metalnessMapTransform)),_.roughness.value=b.roughness,b.roughnessMap&&(_.roughnessMap.value=b.roughnessMap,e(b.roughnessMap,_.roughnessMapTransform)),b.envMap&&(_.envMapIntensity.value=b.envMapIntensity)}(_,b),b.isMeshPhysicalMaterial&&function f(_,b,M){_.ior.value=b.ior,b.sheen>0&&(_.sheenColor.value.copy(b.sheenColor).multiplyScalar(b.sheen),_.sheenRoughness.value=b.sheenRoughness,b.sheenColorMap&&(_.sheenColorMap.value=b.sheenColorMap,e(b.sheenColorMap,_.sheenColorMapTransform)),b.sheenRoughnessMap&&(_.sheenRoughnessMap.value=b.sheenRoughnessMap,e(b.sheenRoughnessMap,_.sheenRoughnessMapTransform))),b.clearcoat>0&&(_.clearcoat.value=b.clearcoat,_.clearcoatRoughness.value=b.clearcoatRoughness,b.clearcoatMap&&(_.clearcoatMap.value=b.clearcoatMap,e(b.clearcoatMap,_.clearcoatMapTransform)),b.clearcoatRoughnessMap&&(_.clearcoatRoughnessMap.value=b.clearcoatRoughnessMap,e(b.clearcoatRoughnessMap,_.clearcoatRoughnessMapTransform)),b.clearcoatNormalMap&&(_.clearcoatNormalMap.value=b.clearcoatNormalMap,e(b.clearcoatNormalMap,_.clearcoatNormalMapTransform),_.clearcoatNormalScale.value.copy(b.clearcoatNormalScale),1===b.side&&_.clearcoatNormalScale.value.negate())),b.dispersion>0&&(_.dispersion.value=b.dispersion),b.iridescence>0&&(_.iridescence.value=b.iridescence,_.iridescenceIOR.value=b.iridescenceIOR,_.iridescenceThicknessMinimum.value=b.iridescenceThicknessRange[0],_.iridescenceThicknessMaximum.value=b.iridescenceThicknessRange[1],b.iridescenceMap&&(_.iridescenceMap.value=b.iridescenceMap,e(b.iridescenceMap,_.iridescenceMapTransform)),b.iridescenceThicknessMap&&(_.iridescenceThicknessMap.value=b.iridescenceThicknessMap,e(b.iridescenceThicknessMap,_.iridescenceThicknessMapTransform))),b.transmission>0&&(_.transmission.value=b.transmission,_.transmissionSamplerMap.value=M.texture,_.transmissionSamplerSize.value.set(M.width,M.height),b.transmissionMap&&(_.transmissionMap.value=b.transmissionMap,e(b.transmissionMap,_.transmissionMapTransform)),_.thickness.value=b.thickness,b.thicknessMap&&(_.thicknessMap.value=b.thicknessMap,e(b.thicknessMap,_.thicknessMapTransform)),_.attenuationDistance.value=b.attenuationDistance,_.attenuationColor.value.copy(b.attenuationColor)),b.anisotropy>0&&(_.anisotropyVector.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation)),b.anisotropyMap&&(_.anisotropyMap.value=b.anisotropyMap,e(b.anisotropyMap,_.anisotropyMapTransform))),_.specularIntensity.value=b.specularIntensity,_.specularColor.value.copy(b.specularColor),b.specularColorMap&&(_.specularColorMap.value=b.specularColorMap,e(b.specularColorMap,_.specularColorMapTransform)),b.specularIntensityMap&&(_.specularIntensityMap.value=b.specularIntensityMap,e(b.specularIntensityMap,_.specularIntensityMapTransform))}(_,b,E)):b.isMeshMatcapMaterial?(o(_,b),function A(_,b){b.matcap&&(_.matcap.value=b.matcap)}(_,b)):b.isMeshDepthMaterial?o(_,b):b.isMeshDistanceMaterial?(o(_,b),function y(_,b){const M=t.get(b).light;_.referencePosition.value.setFromMatrixPosition(M.matrixWorld),_.nearDistance.value=M.shadow.camera.near,_.farDistance.value=M.shadow.camera.far}(_,b)):b.isMeshNormalMaterial?o(_,b):b.isLineBasicMaterial?(function s(_,b){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,b.map&&(_.map.value=b.map,e(b.map,_.mapTransform))}(_,b),b.isLineDashedMaterial&&function a(_,b){_.dashSize.value=b.dashSize,_.totalSize.value=b.dashSize+b.gapSize,_.scale.value=b.scale}(_,b)):b.isPointsMaterial?function l(_,b,M,C){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,_.size.value=b.size*M,_.scale.value=.5*C,b.map&&(_.map.value=b.map,e(b.map,_.uvTransform)),b.alphaMap&&(_.alphaMap.value=b.alphaMap,e(b.alphaMap,_.alphaMapTransform)),b.alphaTest>0&&(_.alphaTest.value=b.alphaTest)}(_,b,M,C):b.isSpriteMaterial?function c(_,b){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,_.rotation.value=b.rotation,b.map&&(_.map.value=b.map,e(b.map,_.mapTransform)),b.alphaMap&&(_.alphaMap.value=b.alphaMap,e(b.alphaMap,_.alphaMapTransform)),b.alphaTest>0&&(_.alphaTest.value=b.alphaTest)}(_,b):b.isShadowMaterial?(_.color.value.copy(b.color),_.opacity.value=b.opacity):b.isShaderMaterial&&(b.uniformsNeedUpdate=!1)}}}function zIe(n,t,e,i){let r={},o={},s=[];const a=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function f(M,C,E,L){const N=M.value,H=C+"_"+E;if(void 0===L[H])return L[H]="number"==typeof N||"boolean"==typeof N?N:N.clone(),!0;{const j=L[H];if("number"==typeof N||"boolean"==typeof N){if(j!==N)return L[H]=N,!0}else if(!1===j.equals(N))return j.copy(N),!0}return!1}function y(M){const C={boundary:0,storage:0};return"number"==typeof M||"boolean"==typeof M?(C.boundary=4,C.storage=4):M.isVector2?(C.boundary=8,C.storage=8):M.isVector3||M.isColor?(C.boundary=16,C.storage=12):M.isVector4?(C.boundary=16,C.storage=16):M.isMatrix3?(C.boundary=48,C.storage=48):M.isMatrix4?(C.boundary=64,C.storage=64):M.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",M),C}function _(M){const C=M.target;C.removeEventListener("dispose",_);const E=s.indexOf(C.__bindingPointIndex);s.splice(E,1),n.deleteBuffer(r[C.id]),delete r[C.id],delete o[C.id]}return{bind:function l(M,C){i.uniformBlockBinding(M,C.program)},update:function c(M,C){let E=r[M.id];void 0===E&&(function A(M){const C=M.uniforms;let E=0;for(let H=0,j=C.length;H0&&(E+=16-N),M.__size=E,M.__cache={}}(M),E=function d(M){const C=function u(){for(let M=0;M0),Yn=!!xt.morphAttributes.position,Pr=!!xt.morphAttributes.normal,Eo=!!xt.morphAttributes.color;let Yo=vm;Mt.toneMapped&&(null===H||!0===H.isXRRenderTarget)&&(Yo=C.toneMapping);const mc=xt.morphAttributes.position||xt.morphAttributes.normal||xt.morphAttributes.color,Hr=void 0!==mc?mc.length:0,Zn=Ce.get(Mt),fa=_.state.lights;!0!==ce||!0!==ue&&he===R||Ei.setState(Mt,he,he===R&&Mt.id===j);let Vr=!1;Mt.version===Zn.__version?(Zn.needsLights&&Zn.lightsStateVersion!==fa.state.version||Zn.outputColorSpace!==zn||at.isBatchedMesh&&!1===Zn.batching||!at.isBatchedMesh&&!0===Zn.batching||at.isBatchedMesh&&!0===Zn.batchingColor&&null===at.colorTexture||at.isBatchedMesh&&!1===Zn.batchingColor&&null!==at.colorTexture||at.isInstancedMesh&&!1===Zn.instancing||!at.isInstancedMesh&&!0===Zn.instancing||at.isSkinnedMesh&&!1===Zn.skinning||!at.isSkinnedMesh&&!0===Zn.skinning||at.isInstancedMesh&&!0===Zn.instancingColor&&null===at.instanceColor||at.isInstancedMesh&&!1===Zn.instancingColor&&null!==at.instanceColor||at.isInstancedMesh&&!0===Zn.instancingMorph&&null===at.morphTexture||at.isInstancedMesh&&!1===Zn.instancingMorph&&null!==at.morphTexture||Zn.envMap!==Qn||!0===Mt.fog&&Zn.fog!==rn||void 0!==Zn.numClippingPlanes&&(Zn.numClippingPlanes!==Ei.numPlanes||Zn.numIntersection!==Ei.numIntersection)||Zn.vertexAlphas!==mi||Zn.vertexTangents!==Si||Zn.morphTargets!==Yn||Zn.morphNormals!==Pr||Zn.morphColors!==Eo||Zn.toneMapping!==Yo||Zn.morphTargetsCount!==Hr)&&(Vr=!0):(Vr=!0,Zn.__version=Mt.version);let kd=Zn.currentProgram;!0===Vr&&(kd=DF(Mt,Ke,at));let $b=!1,pc=!1,C8=!1;const Es=kd.getUniforms(),rp=Zn.uniforms;if(ot.useProgram(kd.program)&&($b=!0,pc=!0,C8=!0),Mt.id!==j&&(j=Mt.id,pc=!0),$b||R!==he){Es.setValue(re,"projectionMatrix",he.projectionMatrix),Es.setValue(re,"viewMatrix",he.matrixWorldInverse);const qc=Es.map.cameraPosition;void 0!==qc&&qc.setValue(re,Z.setFromMatrixPosition(he.matrixWorld)),At.logarithmicDepthBuffer&&Es.setValue(re,"logDepthBufFC",2/(Math.log(he.far+1)/Math.LN2)),(Mt.isMeshPhongMaterial||Mt.isMeshToonMaterial||Mt.isMeshLambertMaterial||Mt.isMeshBasicMaterial||Mt.isMeshStandardMaterial||Mt.isShaderMaterial)&&Es.setValue(re,"isOrthographic",!0===he.isOrthographicCamera),R!==he&&(R=he,pc=!0,C8=!0)}if(at.isSkinnedMesh){Es.setOptional(re,at,"bindMatrix"),Es.setOptional(re,at,"bindMatrixInverse");const qc=at.skeleton;qc&&(null===qc.boneTexture&&qc.computeBoneTexture(),Es.setValue(re,"boneTexture",qc.boneTexture,be))}at.isBatchedMesh&&(Es.setOptional(re,at,"batchingTexture"),Es.setValue(re,"batchingTexture",at._matricesTexture,be),Es.setOptional(re,at,"batchingIdTexture"),Es.setValue(re,"batchingIdTexture",at._indirectTexture,be),Es.setOptional(re,at,"batchingColorTexture"),null!==at._colorsTexture&&Es.setValue(re,"batchingColorTexture",at._colorsTexture,be));const M8=xt.morphAttributes;if((void 0!==M8.position||void 0!==M8.normal||void 0!==M8.color)&&cr.update(at,xt,kd),(pc||Zn.receiveShadow!==at.receiveShadow)&&(Zn.receiveShadow=at.receiveShadow,Es.setValue(re,"receiveShadow",at.receiveShadow)),Mt.isMeshGouraudMaterial&&null!==Mt.envMap&&(rp.envMap.value=Qn,rp.flipEnvMap.value=Qn.isCubeTexture&&!1===Qn.isRenderTargetTexture?-1:1),Mt.isMeshStandardMaterial&&null===Mt.envMap&&null!==Ke.environment&&(rp.envMapIntensity.value=Ke.environmentIntensity),pc&&(Es.setValue(re,"toneMappingExposure",C.toneMappingExposure),Zn.needsLights&&function Gje(he,Ke){he.ambientLightColor.needsUpdate=Ke,he.lightProbe.needsUpdate=Ke,he.directionalLights.needsUpdate=Ke,he.directionalLightShadows.needsUpdate=Ke,he.pointLights.needsUpdate=Ke,he.pointLightShadows.needsUpdate=Ke,he.spotLights.needsUpdate=Ke,he.spotLightShadows.needsUpdate=Ke,he.rectAreaLights.needsUpdate=Ke,he.hemisphereLights.needsUpdate=Ke}(rp,C8),rn&&!0===Mt.fog&&$n.refreshFogUniforms(rp,rn),$n.refreshMaterialUniforms(rp,Mt,Ae,te,_.state.transmissionRenderTarget[he.id]),jS.upload(re,$re(Zn),rp,be)),Mt.isShaderMaterial&&!0===Mt.uniformsNeedUpdate&&(jS.upload(re,$re(Zn),rp,be),Mt.uniformsNeedUpdate=!1),Mt.isSpriteMaterial&&Es.setValue(re,"center",at.center),Es.setValue(re,"modelViewMatrix",at.modelViewMatrix),Es.setValue(re,"normalMatrix",at.normalMatrix),Es.setValue(re,"modelMatrix",at.matrixWorld),Mt.isShaderMaterial||Mt.isRawShaderMaterial){const qc=Mt.uniformsGroups;for(let E8=0,$je=qc.length;E8<$je;E8++){const Xre=qc[E8];Vo.update(Xre,kd),Vo.bind(Xre,kd)}}return kd}(he,Ke,xt,Mt,at);ot.setMaterial(Mt,Mn);let Qn=xt.index,mi=1;if(!0===Mt.wireframe){if(Qn=Ut.getWireframeAttribute(xt),void 0===Qn)return;mi=2}const Si=xt.drawRange,Yn=xt.attributes.position;let Pr=Si.start*mi,Eo=(Si.start+Si.count)*mi;null!==rn&&(Pr=Math.max(Pr,rn.start*mi),Eo=Math.min(Eo,(rn.start+rn.count)*mi)),null!==Qn?(Pr=Math.max(Pr,0),Eo=Math.min(Eo,Qn.count)):null!=Yn&&(Pr=Math.max(Pr,0),Eo=Math.min(Eo,Yn.count));const Yo=Eo-Pr;if(Yo<0||Yo===1/0)return;nr.setup(at,Mt,zn,xt,Qn);let mc,Hr=Ci;if(null!==Qn&&(mc=ft.get(Qn),Hr=Rn,Hr.setIndex(mc)),at.isMesh)!0===Mt.wireframe?(ot.setLineWidth(Mt.wireframeLinewidth*Nt()),Hr.setMode(re.LINES)):Hr.setMode(re.TRIANGLES);else if(at.isLine){let Zn=Mt.linewidth;void 0===Zn&&(Zn=1),ot.setLineWidth(Zn*Nt()),Hr.setMode(at.isLineSegments?re.LINES:at.isLineLoop?re.LINE_LOOP:re.LINE_STRIP)}else at.isPoints?Hr.setMode(re.POINTS):at.isSprite&&Hr.setMode(re.TRIANGLES);if(at.isBatchedMesh)if(null!==at._multiDrawInstances)Hr.renderMultiDrawInstances(at._multiDrawStarts,at._multiDrawCounts,at._multiDrawCount,at._multiDrawInstances);else if(Ve.get("WEBGL_multi_draw"))Hr.renderMultiDraw(at._multiDrawStarts,at._multiDrawCounts,at._multiDrawCount);else{const Zn=at._multiDrawStarts,fa=at._multiDrawCounts,Vr=at._multiDrawCount,kd=Qn?ft.get(Qn).bytesPerElement:1,$b=Ce.get(Mt).currentProgram.getUniforms();for(let pc=0;pc{function rn(){Mt.forEach(function(Mn){Ce.get(Mn).currentProgram.isReady()&&Mt.delete(Mn)}),0!==Mt.size?setTimeout(rn,10):at(he)}null!==Ve.get("KHR_parallel_shader_compile")?rn():setTimeout(rn,10)})};let Ur=null;function Ru(){pg.stop()}function zre(){pg.start()}const pg=new AK;function x8(he,Ke,xt,Mt){if(!1===he.visible)return;if(he.layers.test(Ke.layers))if(he.isGroup)xt=he.renderOrder;else if(he.isLOD)!0===he.autoUpdate&&he.update(Ke);else if(he.isLight)_.pushLight(he),he.castShadow&&_.pushShadow(he);else if(he.isSprite){if(!he.frustumCulled||cn.intersectsSprite(he)){Mt&&$e.setFromMatrixPosition(he.matrixWorld).applyMatrix4(ae);const Mn=Bt.update(he),zn=he.material;zn.visible&&y.push(he,Mn,zn,xt,$e.z,null)}}else if((he.isMesh||he.isLine||he.isPoints)&&(!he.frustumCulled||cn.intersectsObject(he))){const Mn=Bt.update(he),zn=he.material;if(Mt&&(void 0!==he.boundingSphere?(null===he.boundingSphere&&he.computeBoundingSphere(),$e.copy(he.boundingSphere.center)):(null===Mn.boundingSphere&&Mn.computeBoundingSphere(),$e.copy(Mn.boundingSphere.center)),$e.applyMatrix4(he.matrixWorld).applyMatrix4(ae)),Array.isArray(zn)){const Qn=Mn.groups;for(let mi=0,Si=Qn.length;mi0&&FF(at,Ke,xt),rn.length>0&&FF(rn,Ke,xt),Mn.length>0&&FF(Mn,Ke,xt),ot.buffers.depth.setTest(!0),ot.buffers.depth.setMask(!0),ot.buffers.color.setMask(!0),ot.setPolygonOffset(!1)}function Gre(he,Ke,xt,Mt){if(null!==(!0===xt.isScene?xt.overrideMaterial:null))return;void 0===_.state.transmissionRenderTarget[Mt.id]&&(_.state.transmissionRenderTarget[Mt.id]=new Lc(1,1,{generateMipmaps:!0,type:Ve.has("EXT_color_buffer_half_float")||Ve.has("EXT_color_buffer_float")?C_:Uh,minFilter:Nh,samples:4,stencilBuffer:o,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Br.workingColorSpace}));const rn=_.state.transmissionRenderTarget[Mt.id],Mn=Mt.viewport||B;rn.setSize(Mn.z,Mn.w);const zn=C.getRenderTarget();C.setRenderTarget(rn),C.getClearColor(Ee),ne=C.getClearAlpha(),ne<1&&C.setClearColor(16777215,.5),C.clear(),je&&Cn.render(xt);const Qn=C.toneMapping;C.toneMapping=vm;const mi=Mt.viewport;if(void 0!==Mt.viewport&&(Mt.viewport=void 0),_.setupLightsView(Mt),!0===ce&&Ei.setGlobalState(C.clippingPlanes,Mt),FF(he,xt,Mt),be.updateMultisampleRenderTarget(rn),be.updateRenderTargetMipmap(rn),!1===Ve.has("WEBGL_multisampled_render_to_texture")){let Si=!1;for(let Yn=0,Pr=Ke.length;Yn0)for(let Mn=0,zn=rn.length;Mn0&&Gre(Mt,at,he,Ke),je&&Cn.render(he),qre(y,he,Ke);null!==H&&(be.updateMultisampleRenderTarget(H),be.updateRenderTargetMipmap(H)),!0===he.isScene&&he.onAfterRender(C,he,Ke),nr.resetDefaultState(),j=-1,R=null,M.pop(),M.length>0?(_=M[M.length-1],!0===ce&&Ei.setGlobalState(C.clippingPlanes,_.state.camera)):_=null,b.pop(),y=b.length>0?b[b.length-1]:null},this.getActiveCubeFace=function(){return L},this.getActiveMipmapLevel=function(){return N},this.getRenderTarget=function(){return H},this.setRenderTargetTextures=function(he,Ke,xt){Ce.get(he.texture).__webglTexture=Ke,Ce.get(he.depthTexture).__webglTexture=xt;const Mt=Ce.get(he);Mt.__hasExternalTextures=!0,Mt.__autoAllocateDepthBuffer=void 0===xt,Mt.__autoAllocateDepthBuffer||!0===Ve.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Mt.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(he,Ke){const xt=Ce.get(he);xt.__webglFramebuffer=Ke,xt.__useDefaultFramebuffer=void 0===Ke},this.setRenderTarget=function(he,Ke=0,xt=0){H=he,L=Ke,N=xt;let Mt=!0,at=null,rn=!1,Mn=!1;if(he){const Qn=Ce.get(he);if(void 0!==Qn.__useDefaultFramebuffer)ot.bindFramebuffer(re.FRAMEBUFFER,null),Mt=!1;else if(void 0===Qn.__webglFramebuffer)be.setupRenderTarget(he);else if(Qn.__hasExternalTextures)be.rebindTextures(he,Ce.get(he.texture).__webglTexture,Ce.get(he.depthTexture).__webglTexture);else if(he.depthBuffer){const Yn=he.depthTexture;if(Qn.__boundDepthTexture!==Yn){if(null!==Yn&&Ce.has(Yn)&&(he.width!==Yn.image.width||he.height!==Yn.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");be.setupDepthRenderbuffer(he)}}const mi=he.texture;(mi.isData3DTexture||mi.isDataArrayTexture||mi.isCompressedArrayTexture)&&(Mn=!0);const Si=Ce.get(he).__webglFramebuffer;he.isWebGLCubeRenderTarget?(at=Array.isArray(Si[Ke])?Si[Ke][xt]:Si[Ke],rn=!0):at=he.samples>0&&!1===be.useMultisampledRTT(he)?Ce.get(he).__webglMultisampledFramebuffer:Array.isArray(Si)?Si[xt]:Si,B.copy(he.viewport),ee.copy(he.scissor),we=he.scissorTest}else B.copy(it).multiplyScalar(Ae).floor(),ee.copy(_t).multiplyScalar(Ae).floor(),we=Ht;if(ot.bindFramebuffer(re.FRAMEBUFFER,at)&&Mt&&ot.drawBuffers(he,at),ot.viewport(B),ot.scissor(ee),ot.setScissorTest(we),rn){const Qn=Ce.get(he.texture);re.framebufferTexture2D(re.FRAMEBUFFER,re.COLOR_ATTACHMENT0,re.TEXTURE_CUBE_MAP_POSITIVE_X+Ke,Qn.__webglTexture,xt)}else if(Mn){const Qn=Ce.get(he.texture);re.framebufferTextureLayer(re.FRAMEBUFFER,re.COLOR_ATTACHMENT0,Qn.__webglTexture,xt||0,Ke||0)}j=-1},this.readRenderTargetPixels=function(he,Ke,xt,Mt,at,rn,Mn){if(!he||!he.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let zn=Ce.get(he).__webglFramebuffer;if(he.isWebGLCubeRenderTarget&&void 0!==Mn&&(zn=zn[Mn]),zn){ot.bindFramebuffer(re.FRAMEBUFFER,zn);try{const Qn=he.texture,mi=Qn.format,Si=Qn.type;if(!At.textureFormatReadable(mi))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!At.textureTypeReadable(Si))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");Ke>=0&&Ke<=he.width-Mt&&xt>=0&&xt<=he.height-at&&re.readPixels(Ke,xt,Mt,at,Bi.convert(mi),Bi.convert(Si),rn)}finally{const Qn=null!==H?Ce.get(H).__webglFramebuffer:null;ot.bindFramebuffer(re.FRAMEBUFFER,Qn)}}},this.readRenderTargetPixelsAsync=function(){var he=k(function*(Ke,xt,Mt,at,rn,Mn,zn){if(!Ke||!Ke.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Qn=Ce.get(Ke).__webglFramebuffer;if(Ke.isWebGLCubeRenderTarget&&void 0!==zn&&(Qn=Qn[zn]),Qn){ot.bindFramebuffer(re.FRAMEBUFFER,Qn);try{const mi=Ke.texture,Si=mi.format,Yn=mi.type;if(!At.textureFormatReadable(Si))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!At.textureTypeReadable(Yn))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(xt>=0&&xt<=Ke.width-at&&Mt>=0&&Mt<=Ke.height-rn){const Pr=re.createBuffer();re.bindBuffer(re.PIXEL_PACK_BUFFER,Pr),re.bufferData(re.PIXEL_PACK_BUFFER,Mn.byteLength,re.STREAM_READ),re.readPixels(xt,Mt,at,rn,Bi.convert(Si),Bi.convert(Yn),0),re.flush();const Eo=re.fenceSync(re.SYNC_GPU_COMMANDS_COMPLETE,0);yield function pEe(n,t,e){return new Promise(function(i,r){setTimeout(function o(){switch(n.clientWaitSync(t,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(o,e);break;default:i()}},e)})}(re,Eo,4);try{re.bindBuffer(re.PIXEL_PACK_BUFFER,Pr),re.getBufferSubData(re.PIXEL_PACK_BUFFER,0,Mn)}finally{re.deleteBuffer(Pr),re.deleteSync(Eo)}return Mn}}finally{const mi=null!==H?Ce.get(H).__webglFramebuffer:null;ot.bindFramebuffer(re.FRAMEBUFFER,mi)}}});return function(Ke,xt,Mt,at,rn,Mn,zn){return he.apply(this,arguments)}}(),this.copyFramebufferToTexture=function(he,Ke=null,xt=0){!0!==he.isTexture&&(B_("WebGLRenderer: copyFramebufferToTexture function signature has changed."),Ke=arguments[0]||null,he=arguments[1]);const Mt=Math.pow(2,-xt),at=Math.floor(he.image.width*Mt),rn=Math.floor(he.image.height*Mt),Mn=null!==Ke?Ke.x:0,zn=null!==Ke?Ke.y:0;be.setTexture2D(he,0),re.copyTexSubImage2D(re.TEXTURE_2D,xt,0,0,Mn,zn,at,rn),ot.unbindTexture()},this.copyTextureToTexture=function(he,Ke,xt=null,Mt=null,at=0){let rn,Mn,zn,Qn,mi,Si;!0!==he.isTexture&&(B_("WebGLRenderer: copyTextureToTexture function signature has changed."),Mt=arguments[0]||null,he=arguments[1],Ke=arguments[2],at=arguments[3]||0,xt=null),null!==xt?(rn=xt.max.x-xt.min.x,Mn=xt.max.y-xt.min.y,zn=xt.min.x,Qn=xt.min.y):(rn=he.image.width,Mn=he.image.height,zn=0,Qn=0),null!==Mt?(mi=Mt.x,Si=Mt.y):(mi=0,Si=0);const Yn=Bi.convert(Ke.format),Pr=Bi.convert(Ke.type);be.setTexture2D(Ke,0),re.pixelStorei(re.UNPACK_FLIP_Y_WEBGL,Ke.flipY),re.pixelStorei(re.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ke.premultiplyAlpha),re.pixelStorei(re.UNPACK_ALIGNMENT,Ke.unpackAlignment);const Eo=re.getParameter(re.UNPACK_ROW_LENGTH),Yo=re.getParameter(re.UNPACK_IMAGE_HEIGHT),mc=re.getParameter(re.UNPACK_SKIP_PIXELS),Hr=re.getParameter(re.UNPACK_SKIP_ROWS),Zn=re.getParameter(re.UNPACK_SKIP_IMAGES),fa=he.isCompressedTexture?he.mipmaps[at]:he.image;re.pixelStorei(re.UNPACK_ROW_LENGTH,fa.width),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,fa.height),re.pixelStorei(re.UNPACK_SKIP_PIXELS,zn),re.pixelStorei(re.UNPACK_SKIP_ROWS,Qn),he.isDataTexture?re.texSubImage2D(re.TEXTURE_2D,at,mi,Si,rn,Mn,Yn,Pr,fa.data):he.isCompressedTexture?re.compressedTexSubImage2D(re.TEXTURE_2D,at,mi,Si,fa.width,fa.height,Yn,fa.data):re.texSubImage2D(re.TEXTURE_2D,at,mi,Si,rn,Mn,Yn,Pr,fa),re.pixelStorei(re.UNPACK_ROW_LENGTH,Eo),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Yo),re.pixelStorei(re.UNPACK_SKIP_PIXELS,mc),re.pixelStorei(re.UNPACK_SKIP_ROWS,Hr),re.pixelStorei(re.UNPACK_SKIP_IMAGES,Zn),0===at&&Ke.generateMipmaps&&re.generateMipmap(re.TEXTURE_2D),ot.unbindTexture()},this.copyTextureToTexture3D=function(he,Ke,xt=null,Mt=null,at=0){let rn,Mn,zn,Qn,mi,Si,Yn,Pr,Eo;!0!==he.isTexture&&(B_("WebGLRenderer: copyTextureToTexture3D function signature has changed."),xt=arguments[0]||null,Mt=arguments[1]||null,he=arguments[2],Ke=arguments[3],at=arguments[4]||0);const Yo=he.isCompressedTexture?he.mipmaps[at]:he.image;null!==xt?(rn=xt.max.x-xt.min.x,Mn=xt.max.y-xt.min.y,zn=xt.max.z-xt.min.z,Qn=xt.min.x,mi=xt.min.y,Si=xt.min.z):(rn=Yo.width,Mn=Yo.height,zn=Yo.depth,Qn=0,mi=0,Si=0),null!==Mt?(Yn=Mt.x,Pr=Mt.y,Eo=Mt.z):(Yn=0,Pr=0,Eo=0);const mc=Bi.convert(Ke.format),Hr=Bi.convert(Ke.type);let Zn;if(Ke.isData3DTexture)be.setTexture3D(Ke,0),Zn=re.TEXTURE_3D;else{if(!Ke.isDataArrayTexture&&!Ke.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");be.setTexture2DArray(Ke,0),Zn=re.TEXTURE_2D_ARRAY}re.pixelStorei(re.UNPACK_FLIP_Y_WEBGL,Ke.flipY),re.pixelStorei(re.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ke.premultiplyAlpha),re.pixelStorei(re.UNPACK_ALIGNMENT,Ke.unpackAlignment);const fa=re.getParameter(re.UNPACK_ROW_LENGTH),Vr=re.getParameter(re.UNPACK_IMAGE_HEIGHT),kd=re.getParameter(re.UNPACK_SKIP_PIXELS),$b=re.getParameter(re.UNPACK_SKIP_ROWS),pc=re.getParameter(re.UNPACK_SKIP_IMAGES);re.pixelStorei(re.UNPACK_ROW_LENGTH,Yo.width),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Yo.height),re.pixelStorei(re.UNPACK_SKIP_PIXELS,Qn),re.pixelStorei(re.UNPACK_SKIP_ROWS,mi),re.pixelStorei(re.UNPACK_SKIP_IMAGES,Si),he.isDataTexture||he.isData3DTexture?re.texSubImage3D(Zn,at,Yn,Pr,Eo,rn,Mn,zn,mc,Hr,Yo.data):Ke.isCompressedArrayTexture?re.compressedTexSubImage3D(Zn,at,Yn,Pr,Eo,rn,Mn,zn,mc,Yo.data):re.texSubImage3D(Zn,at,Yn,Pr,Eo,rn,Mn,zn,mc,Hr,Yo),re.pixelStorei(re.UNPACK_ROW_LENGTH,fa),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Vr),re.pixelStorei(re.UNPACK_SKIP_PIXELS,kd),re.pixelStorei(re.UNPACK_SKIP_ROWS,$b),re.pixelStorei(re.UNPACK_SKIP_IMAGES,pc),0===at&&Ke.generateMipmaps&&re.generateMipmap(Zn),ot.unbindTexture()},this.initRenderTarget=function(he){void 0===Ce.get(he).__webglFramebuffer&&be.setupRenderTarget(he)},this.initTexture=function(he){he.isCubeTexture?be.setTextureCube(he,0):he.isData3DTexture?be.setTexture3D(he,0):he.isDataArrayTexture||he.isCompressedArrayTexture?be.setTexture2DArray(he,0):be.setTexture2D(he,0),ot.unbindTexture()},this.resetState=function(){L=0,N=0,H=null,ot.reset(),nr.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Hh}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===_O?"display-p3":"srgb",e.unpackColorSpace=Br.workingColorSpace===_S?"display-p3":"srgb"}}class KS extends xo{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new qh,this.environmentIntensity=1,this.environmentRotation=new qh,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class tL{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=rc()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return B_("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,i){t*=this.stride,i*=e.stride;for(let r=0,o=this.stride;rt.far||e.push({distance:l,point:Tw.clone(),uv:Nc.getInterpolation(Tw,YS,Fw,ZS,jK,iL,XK,new nt),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function JS(n,t,e,i,r,o){sb.subVectors(n,e).addScalar(.5).multiply(i),void 0!==r?(Iw.x=o*sb.x-r*sb.y,Iw.y=r*sb.x+o*sb.y):Iw.copy(sb),n.copy(t),n.x+=Iw.x,n.y+=Iw.y,n.applyMatrix4($K)}class xa extends Ya{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new tn(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const oT=new se,sT=new se,lY=new hi,Rw=new BA,aT=new Ys,uL=new se,cY=new se;class wd extends xo{constructor(t=new gi,e=new xa){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,i=[0];for(let r=1,o=e.count;r0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let o=0,s=r.length;oi)return;uL.applyMatrix4(n.matrixWorld);const l=t.ray.origin.distanceTo(uL);return lt.far?void 0:{distance:l,point:cY.clone().applyMatrix4(n.matrixWorld),index:r,face:null,faceIndex:null,object:n}}const dY=new se,uY=new se;class Yh extends wd{constructor(t,e){super(t,e),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,i=[];for(let r=0,o=e.count;r0)){l=r;break}l=r-1}if(r=l,i[r]===s)return r/(o-1);const d=i[r];return(r+(s-d)/(i[r+1]-d))/(o-1)}getTangent(t,e){let r=t-1e-4,o=t+1e-4;r<0&&(r=0),o>1&&(o=1);const s=this.getPoint(r),a=this.getPoint(o),l=e||(s.isVector2?new nt:new se);return l.copy(a).sub(s).normalize(),l}getTangentAt(t,e){const i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){const i=new se,r=[],o=[],s=[],a=new se,l=new hi;for(let f=0;f<=t;f++)r[f]=this.getTangentAt(f/t,new se);o[0]=new se,s[0]=new se;let c=Number.MAX_VALUE;const d=Math.abs(r[0].x),u=Math.abs(r[0].y),h=Math.abs(r[0].z);d<=c&&(c=d,i.set(1,0,0)),u<=c&&(c=u,i.set(0,1,0)),h<=c&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),o[0].crossVectors(r[0],a),s[0].crossVectors(r[0],o[0]);for(let f=1;f<=t;f++){if(o[f]=o[f-1].clone(),s[f]=s[f-1].clone(),a.crossVectors(r[f-1],r[f]),a.length()>Number.EPSILON){a.normalize();const A=Math.acos(Xo(r[f-1].dot(r[f]),-1,1));o[f].applyMatrix4(l.makeRotationAxis(a,A))}s[f].crossVectors(r[f],o[f])}if(!0===e){let f=Math.acos(Xo(o[0].dot(o[t]),-1,1));f/=t,r[0].dot(a.crossVectors(o[0],o[t]))>0&&(f=-f);for(let A=1;A<=t;A++)o[A].applyMatrix4(l.makeRotationAxis(r[A],f*A)),s[A].crossVectors(r[A],o[A])}return{tangents:r,normals:o,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class mL extends vu{constructor(t=0,e=0,i=1,r=1,o=0,s=2*Math.PI,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=r,this.aStartAngle=o,this.aEndAngle=s,this.aClockwise=a,this.aRotation=l}getPoint(t,e=new nt){const i=e,r=2*Math.PI;let o=this.aEndAngle-this.aStartAngle;const s=Math.abs(o)r;)o-=r;or.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return i.set(pY(a,l.x,c.x,d.x,u.x),pY(a,l.y,c.y,d.y,u.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e0?0:(Math.floor(Math.abs(a)/o)+1)*o:0===l&&a===o-1&&(a=o-2,l=1),this.closed||a>0?c=r[(a-1)%o]:(uT.subVectors(r[0],r[1]).add(r[0]),c=uT);const u=r[a%o],h=r[(a+1)%o];if(this.closed||a+2=i){const s=r[o]-i,a=this.curves[o],l=a.getLength();return a.getPointAt(0===l?0:1-s/l,e)}o++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let i=0,r=this.curves.length;i1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,i=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const d=c.getPoint(1);return this.currentPoint.copy(d),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Nw extends gi{constructor(t=1,e=1,i=1,r=32,o=1,s=!1,a=0,l=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:r,heightSegments:o,openEnded:s,thetaStart:a,thetaLength:l};const c=this;r=Math.floor(r),o=Math.floor(o);const d=[],u=[],h=[],f=[];let A=0;const y=[],_=i/2;let b=0;function C(E){const L=A,N=new nt,H=new se;let j=0;const R=!0===E?t:e,B=!0===E?1:-1;for(let we=1;we<=r;we++)u.push(0,_*B,0),h.push(0,B,0),f.push(.5,.5),A++;const ee=A;for(let we=0;we<=r;we++){const ne=we/r*l+a,Ie=Math.cos(ne),te=Math.sin(ne);H.x=R*te,H.y=_*B,H.z=R*Ie,u.push(H.x,H.y,H.z),h.push(0,B,0),N.x=.5*Ie+.5,N.y=.5*te*B+.5,f.push(N.x,N.y),A++}for(let we=0;we0&&C(!0),e>0&&C(!1)),this.setIndex(d),this.setAttribute("position",new Bn(u,3)),this.setAttribute("normal",new Bn(h,3)),this.setAttribute("uv",new Bn(f,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new Nw(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Bm extends VA{constructor(t){super(t),this.uuid=rc(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let i=0,r=this.holes.length;i0)for(o=t;o=t;o-=i)s=MY(o,n[o],n[o+1],s);return s&&gT(s,s.next)&&(Vw(s),s=s.next),s}function zA(n,t){if(!n)return n;t||(t=n);let i,e=n;do{if(i=!1,e.steiner||!gT(e,e.next)&&0!==Uo(e.prev,e,e.next))e=e.next;else{if(Vw(e),e=t=e.prev,e===e.next)break;i=!0}}while(i||e!==t);return t}function Uw(n,t,e,i,r,o,s){if(!n)return;!s&&o&&function IFe(n,t,e,i){let r=n;do{0===r.z&&(r.z=CL(r.x,r.y,t,e,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,function FFe(n){let t,e,i,r,o,s,a,l,c=1;do{for(e=n,n=null,o=null,s=0;e;){for(s++,i=e,a=0,t=0;t0||l>0&&i;)0!==a&&(0===l||!i||e.z<=i.z)?(r=e,e=e.nextZ,a--):(r=i,i=i.nextZ,l--),o?o.nextZ=r:n=r,r.prevZ=o,o=r;e=i}o.nextZ=null,c*=2}while(s>1)}(r)}(n,i,r,o);let l,c,a=n;for(;n.prev!==n.next;)if(l=n.prev,c=n.next,o?yFe(n,i,r,o):vFe(n))t.push(l.i/e|0),t.push(n.i/e|0),t.push(c.i/e|0),Vw(n),n=c.next,a=c.next;else if((n=c)===a){s?1===s?Uw(n=wFe(zA(n),t,e),t,e,i,r,o,2):2===s&&xFe(n,t,e,i,r,o):Uw(zA(n),t,e,i,r,o,1);break}}function vFe(n){const t=n.prev,e=n,i=n.next;if(Uo(t,e,i)>=0)return!1;const r=t.x,o=e.x,s=i.x,a=t.y,l=e.y,c=i.y,d=ro?r>s?r:s:o>s?o:s,f=a>l?a>c?a:c:l>c?l:c;let A=i.next;for(;A!==t;){if(A.x>=d&&A.x<=h&&A.y>=u&&A.y<=f&&lb(r,a,o,l,s,c,A.x,A.y)&&Uo(A.prev,A,A.next)>=0)return!1;A=A.next}return!0}function yFe(n,t,e,i){const r=n.prev,o=n,s=n.next;if(Uo(r,o,s)>=0)return!1;const a=r.x,l=o.x,c=s.x,d=r.y,u=o.y,h=s.y,f=al?a>c?a:c:l>c?l:c,_=d>u?d>h?d:h:u>h?u:h,b=CL(f,A,t,e,i),M=CL(y,_,t,e,i);let C=n.prevZ,E=n.nextZ;for(;C&&C.z>=b&&E&&E.z<=M;){if(C.x>=f&&C.x<=y&&C.y>=A&&C.y<=_&&C!==r&&C!==s&&lb(a,d,l,u,c,h,C.x,C.y)&&Uo(C.prev,C,C.next)>=0||(C=C.prevZ,E.x>=f&&E.x<=y&&E.y>=A&&E.y<=_&&E!==r&&E!==s&&lb(a,d,l,u,c,h,E.x,E.y)&&Uo(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;C&&C.z>=b;){if(C.x>=f&&C.x<=y&&C.y>=A&&C.y<=_&&C!==r&&C!==s&&lb(a,d,l,u,c,h,C.x,C.y)&&Uo(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;E&&E.z<=M;){if(E.x>=f&&E.x<=y&&E.y>=A&&E.y<=_&&E!==r&&E!==s&&lb(a,d,l,u,c,h,E.x,E.y)&&Uo(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function wFe(n,t,e){let i=n;do{const r=i.prev,o=i.next.next;!gT(r,o)&&xY(r,i,i.next,o)&&Hw(r,o)&&Hw(o,r)&&(t.push(r.i/e|0),t.push(i.i/e|0),t.push(o.i/e|0),Vw(i),Vw(i.next),i=n=o),i=i.next}while(i!==n);return zA(i)}function xFe(n,t,e,i,r,o){let s=n;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&kFe(s,a)){let l=CY(s,a);return s=zA(s,s.next),l=zA(l,l.next),Uw(s,t,e,i,r,o,0),void Uw(l,t,e,i,r,o,0)}a=a.next}s=s.next}while(s!==n)}function MFe(n,t){return n.x-t.x}function EFe(n,t){const e=function SFe(n,t){let r,e=t,i=-1/0;const o=n.x,s=n.y;do{if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){const h=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(h<=o&&h>i&&(i=h,r=e.x=e.x&&e.x>=l&&o!==e.x&&lb(sr.x||e.x===r.x&&TFe(r,e)))&&(r=e,d=u)),e=e.next}while(e!==a);return r}(n,t);if(!e)return t;const i=CY(e,n);return zA(i,i.next),zA(e,e.next)}function TFe(n,t){return Uo(n.prev,n,t.prev)<0&&Uo(t.next,n,n.next)<0}function CL(n,t,e,i,r){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-e)*r|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function DFe(n){let t=n,e=n;do{(t.x=(n-s)*(o-a)&&(n-s)*(i-a)>=(e-s)*(t-a)&&(e-s)*(o-a)>=(r-s)*(i-a)}function kFe(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function BFe(n,t){let e=n;do{if(e.i!==n.i&&e.next.i!==n.i&&e.i!==t.i&&e.next.i!==t.i&&xY(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}(n,t)&&(Hw(n,t)&&Hw(t,n)&&function PFe(n,t){let e=n,i=!1;const r=(n.x+t.x)/2,o=(n.y+t.y)/2;do{e.y>o!=e.next.y>o&&e.next.y!==e.y&&r<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next}while(e!==n);return i}(n,t)&&(Uo(n.prev,n,t.prev)||Uo(n,t.prev,t))||gT(n,t)&&Uo(n.prev,n,n.next)>0&&Uo(t.prev,t,t.next)>0)}function Uo(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function gT(n,t){return n.x===t.x&&n.y===t.y}function xY(n,t,e,i){const r=bT(Uo(n,t,e)),o=bT(Uo(n,t,i)),s=bT(Uo(e,i,n)),a=bT(Uo(e,i,t));return!!(r!==o&&s!==a||0===r&&_T(n,e,t)||0===o&&_T(n,i,t)||0===s&&_T(e,n,i)||0===a&&_T(e,t,i))}function _T(n,t,e){return t.x<=Math.max(n.x,e.x)&&t.x>=Math.min(n.x,e.x)&&t.y<=Math.max(n.y,e.y)&&t.y>=Math.min(n.y,e.y)}function bT(n){return n>0?1:n<0?-1:0}function Hw(n,t){return Uo(n.prev,n,n.next)<0?Uo(n,t,n.next)>=0&&Uo(n,n.prev,t)>=0:Uo(n,t,n.prev)<0||Uo(n,n.next,t)<0}function CY(n,t){const e=new ML(n.i,n.x,n.y),i=new ML(t.i,t.x,t.y),r=n.next,o=t.prev;return n.next=t,t.prev=n,e.next=r,r.prev=e,i.next=e,e.prev=i,o.next=i,i.prev=o,i}function MY(n,t,e,i){const r=new ML(n,t,e);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Vw(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function ML(n,t,e){this.i=n,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class yu{static area(t){const e=t.length;let i=0;for(let r=e-1,o=0;o80*e){a=c=n[0],l=d=n[1];for(let A=e;Ac&&(c=u),h>d&&(d=h);f=Math.max(c-a,d-l),f=0!==f?32767/f:0}return Uw(o,s,e,a,l,f,0),s}(i,r);for(let l=0;l2&&n[t-1].equals(n[0])&&n.pop()}function SY(n,t){for(let e=0;eNumber.EPSILON){const Bt=Math.sqrt(ft),Vt=Math.sqrt(de*de+Y*Y),$n=ht.x-be/Bt,fn=ht.y+Ce/Bt,Zt=((Ve.x-Y/Vt-$n)*Y-(Ve.y+de/Vt-fn)*de)/(Ce*Y-be*de);At=$n+Ce*Zt-re.x,ot=fn+be*Zt-re.y;const Cn=At*At+ot*ot;if(Cn<=2)return new nt(At,ot);vt=Math.sqrt(Cn/2)}else{let Bt=!1;Ce>Number.EPSILON?de>Number.EPSILON&&(Bt=!0):Ce<-Number.EPSILON?de<-Number.EPSILON&&(Bt=!0):Math.sign(be)===Math.sign(Y)&&(Bt=!0),Bt?(At=-be,ot=Ce,vt=Math.sqrt(ft)):(At=Ce,ot=be,vt=Math.sqrt(ft/2))}return new nt(At/vt,ot/vt)}const Pe=[];for(let re=0,ht=ne.length,Ve=ht-1,At=re+1;re=0;re--){const ht=re/_,Ve=f*Math.cos(ht*Math.PI/2),At=A*Math.sin(ht*Math.PI/2)+y;for(let ot=0,vt=ne.length;ot=0;){const At=Ve;let ot=Ve-1;ot<0&&(ot=re.length-1);for(let vt=0,Ce=d+2*_;vt=o)break e;{const a=e[1];t=o)break t}s=i,i=0}}for(;i>>1;te;)--s;if(++s,0!==o||s!==r){o>=s&&(s=Math.max(s,1),o=s-1);const a=this.getValueSize();this.times=i.slice(o,s),this.values=this.values.slice(o*a,s*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const i=this.times,r=this.values,o=i.length;0===o&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==o;a++){const l=i[a];if("number"==typeof l&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(null!==s&&s>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,s),t=!1;break}s=l}if(void 0!==r&&function kY(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),r=2302===this.getInterpolation(),o=t.length-1;let s=1;for(let a=1;a0){t[s]=t[o];for(let a=o*i,l=s*i,c=0;c!==i;++c)e[l+c]=e[a+c];++s}return s!==t.length?(this.times=t.slice(0,s),this.values=e.slice(0,s*i)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),r=new(0,this.constructor)(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}wu.prototype.TimeBufferType=Float32Array,wu.prototype.ValueBufferType=Float32Array,wu.prototype.DefaultInterpolation=2301;class db extends wu{constructor(t,e,i){super(t,e,i)}}db.prototype.ValueTypeName="bool",db.prototype.ValueBufferType=Array,db.prototype.DefaultInterpolation=2300,db.prototype.InterpolantFactoryMethodLinear=void 0,db.prototype.InterpolantFactoryMethodSmooth=void 0;(class RY extends wu{}).prototype.ValueTypeName="color";(class CT extends wu{}).prototype.ValueTypeName="number";class YFe extends xT{constructor(t,e,i,r){super(t,e,i,r)}interpolate_(t,e,i,r){const o=this.resultBuffer,s=this.sampleValues,a=this.valueSize,l=(i-e)/(r-e);let c=t*a;for(let d=c+a;c!==d;c+=4)Ka.slerpFlat(o,0,s,c-a,s,c,l);return o}}class MT extends wu{InterpolantFactoryMethodLinear(t){return new YFe(this.times,this.values,this.getValueSize(),t)}}MT.prototype.ValueTypeName="quaternion",MT.prototype.InterpolantFactoryMethodSmooth=void 0;class ub extends wu{constructor(t,e,i){super(t,e,i)}}ub.prototype.ValueTypeName="string",ub.prototype.ValueBufferType=Array,ub.prototype.DefaultInterpolation=2300,ub.prototype.InterpolantFactoryMethodLinear=void 0,ub.prototype.InterpolantFactoryMethodSmooth=void 0;(class ET extends wu{}).prototype.ValueTypeName="vector";const Pm={enabled:!1,files:{},add:function(n,t){!1!==this.enabled&&(this.files[n]=t)},get:function(n){if(!1!==this.enabled)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}};class OY{constructor(t,e,i){const r=this;let l,o=!1,s=0,a=0;const c=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(d){a++,!1===o&&void 0!==r.onStart&&r.onStart(d,s,a),o=!0},this.itemEnd=function(d){s++,void 0!==r.onProgress&&r.onProgress(d,s,a),s===a&&(o=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(d){void 0!==r.onError&&r.onError(d)},this.resolveURL=function(d){return l?l(d):d},this.setURLModifier=function(d){return l=d,this},this.addHandler=function(d,u){return c.push(d,u),this},this.removeHandler=function(d){const u=c.indexOf(d);return-1!==u&&c.splice(u,2),this},this.getHandler=function(d){for(let u=0,h=c.length;u{class n{constructor(e){this.manager=void 0!==e?e:eDe,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,i){const r=this;return new Promise(function(o,s){r.load(e,o,i,s)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}return n.DEFAULT_MATERIAL_NAME="__DEFAULT",n})();const Zh={};class tDe extends Error{constructor(t,e){super(t),this.response=e}}class xu extends _l{constructor(t){super(t)}load(t,e,i,r){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const o=Pm.get(t);if(void 0!==o)return this.manager.itemStart(t),setTimeout(()=>{e&&e(o),this.manager.itemEnd(t)},0),o;if(void 0!==Zh[t])return void Zh[t].push({onLoad:e,onProgress:i,onError:r});Zh[t]=[],Zh[t].push({onLoad:e,onProgress:i,onError:r});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(s).then(c=>{if(200===c.status||0===c.status){if(0===c.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===c.body||void 0===c.body.getReader)return c;const d=Zh[t],u=c.body.getReader(),h=c.headers.get("X-File-Size")||c.headers.get("Content-Length"),f=h?parseInt(h):0,A=0!==f;let y=0;const _=new ReadableStream({start(b){!function M(){u.read().then(({done:C,value:E})=>{if(C)b.close();else{y+=E.byteLength;const L=new ProgressEvent("progress",{lengthComputable:A,loaded:y,total:f});for(let N=0,H=d.length;N{b.error(C)})}()}});return new Response(_)}throw new tDe(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(d=>(new DOMParser).parseFromString(d,a));case"json":return c.json();default:if(void 0===a)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),h=u&&u[1]?u[1].toLowerCase():void 0,f=new TextDecoder(h);return c.arrayBuffer().then(A=>f.decode(A))}}}).then(c=>{Pm.add(t,c);const d=Zh[t];delete Zh[t];for(let u=0,h=d.length;u{const d=Zh[t];if(void 0===d)throw this.manager.itemError(t),c;delete Zh[t];for(let u=0,h=d.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class GA extends xo{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new tn(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),void 0!==this.target&&(e.object.target=this.target.uuid),e}}const RL=new hi,LY=new se,NY=new se;class OL{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new nt(512,512),this.map=null,this.mapPass=null,this.matrix=new hi,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new zS,this._frameExtents=new nt(1,1),this._viewportCount=1,this._viewports=[new Wr(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,i=this.matrix;LY.setFromMatrixPosition(t.matrixWorld),e.position.copy(LY),NY.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(NY),e.updateMatrixWorld(),RL.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(RL),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(RL)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.intensity=t.intensity,this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 1!==this.intensity&&(t.intensity=this.intensity),0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class aDe extends OL{constructor(){super(new GS(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class zw extends GA{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(xo.DEFAULT_UP),this.updateMatrix(),this.target=new xo,this.shadow=new aDe}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class NL extends GA{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class WY{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=$Y(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=$Y();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function $Y(){return(typeof performance>"u"?Date:performance).now()}const HL="\\[\\]\\.:\\/",_De=new RegExp("["+HL+"]","g"),VL="[^"+HL+"]",bDe="[^"+HL.replace("\\.","")+"]",CDe=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",VL)+/(WCOD+)?/.source.replace("WCOD",bDe)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",VL)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",VL)+"$"),MDe=["material","materials","bones","map"];class EDe{constructor(t,e,i){const r=i||Co.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(t,e)}setValue(t,e){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,o=i.length;r!==o;++r)i[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}let Co=(()=>{class n{constructor(e,i,r){this.path=i,this.parsedPath=r||n.parseTrackName(i),this.node=n.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,i,r){return e&&e.isAnimationObjectGroup?new n.Composite(e,i,r):new n(e,i,r)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(_De,"")}static parseTrackName(e){const i=CDe.exec(e);if(null===i)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const r={nodeName:i[2],objectName:i[3],objectIndex:i[4],propertyName:i[5],propertyIndex:i[6]},o=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==o&&-1!==o){const s=r.nodeName.substring(o+1);-1!==MDe.indexOf(s)&&(r.nodeName=r.nodeName.substring(0,o),r.objectName=s)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return r}static findNode(e,i){if(void 0===i||""===i||"."===i||-1===i||i===e.name||i===e.uuid)return e;if(e.skeleton){const r=e.skeleton.getBoneByName(i);if(void 0!==r)return r}if(e.children){const r=function(s){for(let a=0;a=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,nZ).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const PT=new Us;class kDe extends Yh{constructor(t,e=16776960){const i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),o=new gi;o.setIndex(new tr(i,1)),o.setAttribute("position",new tr(r,3)),super(o,new xa({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&PT.setFromObject(this.object),PT.isEmpty())return;const e=PT.min,i=PT.max,r=this.geometry.attributes.position,o=r.array;o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=e.x,o[4]=i.y,o[5]=i.z,o[6]=e.x,o[7]=e.y,o[8]=i.z,o[9]=i.x,o[10]=e.y,o[11]=i.z,o[12]=i.x,o[13]=i.y,o[14]=e.z,o[15]=e.x,o[16]=i.y,o[17]=e.z,o[18]=e.x,o[19]=e.y,o[20]=e.z,o[21]=i.x,o[22]=e.y,o[23]=e.z,r.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}}const dZ=new se;let RT,qL;class BDe extends xo{constructor(t=new se(0,0,1),e=new se(0,0,0),i=1,r=16776960,o=.2*i,s=.2*o){super(),this.type="ArrowHelper",void 0===RT&&(RT=new gi,RT.setAttribute("position",new Bn([0,0,0,0,1,0],3)),qL=new Nw(0,.5,1,5,1),qL.translate(0,-.5,0)),this.position.copy(e),this.line=new wd(RT,new xa({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new ki(qL,new jh({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,o,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{dZ.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(dZ,e)}}setLength(t,e=.2*t,i=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class PDe extends Yh{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],r=new gi;r.setAttribute("position",new Bn(e,3)),r.setAttribute("color",new Bn([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(r,new xa({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,i){const r=new tn,o=this.geometry.attributes.color.array;return r.set(t),r.toArray(o,0),r.toArray(o,3),r.set(e),r.toArray(o,6),r.toArray(o,9),r.set(i),r.toArray(o,12),r.toArray(o,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Om{constructor(){this.type="ShapePath",this.color=new tn,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new VA,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,i,r){return this.currentPath.quadraticCurveTo(t,e,i,r),this}bezierCurveTo(t,e,i,r,o,s){return this.currentPath.bezierCurveTo(t,e,i,r,o,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function i(b,M){const C=M.length;let E=!1;for(let L=C-1,N=0;NNumber.EPSILON){if(B<0&&(H=M[N],R=-R,j=M[L],B=-B),b.yj.y)continue;if(b.y===H.y){if(b.x===H.x)return!0}else{const ee=B*(b.x-H.x)-R*(b.y-H.y);if(0===ee)return!0;if(ee<0)continue;E=!E}}else{if(b.y!==H.y)continue;if(j.x<=b.x&&b.x<=H.x||H.x<=b.x&&b.x<=j.x)return!0}}return E}const r=yu.isClockWise,o=this.subPaths;if(0===o.length)return[];let s,a,l;const c=[];if(1===o.length)return a=o[0],l=new Bm,l.curves=a.curves,c.push(l),c;let d=!r(o[0].getPoints());d=t?!d:d;const u=[],h=[];let y,_,f=[],A=0;h[A]=void 0,f[A]=[];for(let b=0,M=o.length;b1){let b=!1,M=0;for(let C=0,E=h.length;C0&&!1===b&&(f=u)}for(let b=0,M=h.length;be+Math.round(i).toString(16).padStart(2,"0"),"#")}static hexToHSL(t){const e=uZ().hex.hsl(t);return new hZ(...e)}static colorToVector3(t){const e=lr.convertHexToNumber(t);return new se((e>>16&255)/255,(e>>8&255)/255,(255&e)/255)}static colorToVector3Array(t){const e=lr.convertHexToNumber(t);return[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255]}static vector3ToRGB(t){const e=Math.floor(255*t.x),i=Math.floor(255*t.y),r=Math.floor(255*t.z);return new tn(e,i,r)}static gradient(t,e,i){const r=this.convertHexToColorObject(t),s=this.convertHexToColorObject(e).sub(r),a=[];for(let l=0;l<=i;l++){const c=s.clone().multiplyScalar(1/i*l),d=r.clone().add(c);a[l]=this.convertColorToHex(d)}return a}static getImageDataUri(t){const e=this.encodeHex(t),i=this.encodeRGB(e[0],e[1],e[2]);return this.generatePixel(i)}static encodeHex(t){let e=t.slice(1);return 3===e.length&&(e=`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`),[Number.parseInt(`${e[0]}${e[1]}`,16),Number.parseInt(`${e[2]}${e[3]}`,16),Number.parseInt(`${e[4]}${e[5]}`,16)]}static encodeRGB(t,e,i){return this.encodeTriplet(0,t,e)+this.encodeTriplet(i,255,255)}static encodeTriplet(t,e,i){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s=(3&t)<<4|e>>4,a=(15&e)<<2|i>>6,l=63&i;return r.charAt(t>>2)+r.charAt(s)+r.charAt(a)+r.charAt(l)}static generatePixel(t){return`data:image/gif;base64,R0lGODlhAQABAPAA${t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`}}function LDe(n){n.x0=Math.round(n.x0),n.y0=Math.round(n.y0),n.x1=Math.round(n.x1),n.y1=Math.round(n.y1)}function NDe(n,t,e,i,r){for(var s,o=n.children,a=-1,l=o.length,c=n.value&&(i-t)/n.value;++aM&&(M=c),N=_*_*L,(C=Math.max(M/N,N/b))>E){_-=c;break}E=C}s.push(l={value:_,dice:f1?i:1)},e}((1+Math.sqrt(5))/2);function qw(){return 0}function Gw(n){return function(){return n}}function zDe(){var n=QDe,t=!1,e=1,i=1,r=[0],o=qw,s=qw,a=qw,l=qw,c=qw;function d(h){return h.x0=h.y0=0,h.x1=e,h.y1=i,h.eachBefore(u),r=[0],t&&h.eachBefore(LDe),h}function u(h){var f=r[h.depth],A=h.x0+f,y=h.y0+f,_=h.x1-f,b=h.y1-f;_n.dynamicSettings,hb=Kt(lc,n=>n.searchPattern),GDe=/_\d{4}(?:-\d{1,2}){2}_\d{1,2}-\d{1,2}\./;let Lm=(()=>{class n{static{this.JSON_EXTENSION=".json"}static getNewFileName(e,i){return`${this.getFileNameWithoutTimestamp(e,i)}_${this.getNewTimestamp()}`}static getNewTimestamp(){return n.getFormattedTimestamp(new Date)}static getFormattedTimestamp(e){return e.toISOString().slice(0,16).replace("T","_").replace(":","-")}static getFileNameWithoutTimestamp(e,i){if(!i){const r=GDe.exec(e);if(r)return e.slice(0,r.index);if(e.endsWith(f_.CC_FILE_EXTENSION))return e.slice(0,-f_.CC_FILE_EXTENSION.length);if(e.endsWith(n.JSON_EXTENSION))return e.slice(0,-n.JSON_EXTENSION.length)}return e}static withoutCCExtension(e){return e.replace(/(\.cc)?(\.json)?(\.gz)?$/,"")}}return n})();function mZ(n,t){return function WDe(n){return n.startsWith(`${mu.rootPath}/`)}(t)?Ww(n,t):t}function Ww(n,t){const e=mu.rootPath.length+1,i=t.length<=e?"":`/${t.slice(e)}`;return`${mu.rootPath}/${n}${i}`}function GL(n,t){do{t=t.slice(0,t.lastIndexOf("/"));const e=n.get(t);if(e)return e}while(t!==mu.rootPath&&t.length>0)}let pZ=(()=>{class n{static{this.projectNameArray=[]}static{this.fileNameArray=[]}static{this.fileChecksumArray=[]}static{this.fileSizesSum=0}static calculateAggregationFile(e){const i=lu(e.map(r=>r.file));if(1===i.length)return i[0];this.resetVariables();for(const r of i)this.projectNameArray.push(r.fileMeta.projectName.replace(" ","_")),this.fileNameArray.push(Lm.withoutCCExtension(r.fileMeta.fileName).replace(" ","_")),this.fileChecksumArray.push(r.fileMeta.fileChecksum),this.fileSizesSum+=r.fileMeta.exportedFileSize;return this.getNewAggregatedMap(i)}static getNewAggregatedMap(e){const i={fileMeta:{projectName:`project_aggregation_of_${this.projectNameArray.join("_and_")}`,fileName:`file_aggregation_of_${this.fileNameArray.join("_and_")}`,fileChecksum:this.fileChecksumArray.join(";"),apiVersion:X1.f4.X,exportedFileSize:this.fileSizesSum},map:{name:mu.rootName,type:qa.FOLDER,children:[],attributes:{},path:mu.rootPath},settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}};for(const r of e)i.map.children.push(this.extractNodeFromMap(r));return this.aggregateRootAttributes(i),i}static aggregateRootAttributes(e){for(const{attributes:i}of e.map.children)for(const r of Object.keys(i))void 0===e.map.attributes[r]&&(e.map.attributes[r]=0),e.map.attributes[r]+=i[r]}static extractNodeFromMap(e){const i={name:e.fileMeta.fileName,children:e.map.children,type:e.map.type};e.map.path&&(i.path=Ww(e.fileMeta.fileName,e.map.path));for(const r of Object.keys(e.map))"name"!==r&&"path"!==r&&"children"!==r&&(i[r]=e.map[r]);return this.updatePathOfAllChildren(e.fileMeta.fileName,i.children),i}static updatePathOfAllChildren(e,i){for(const r of i)r.path&&(r.path=Ww(e,r.path)),r.children&&this.updatePathOfAllChildren(e,r.children)}static resetVariables(){this.projectNameArray=[],this.fileNameArray=[],this.fileChecksumArray=[],this.fileSizesSum=0}}return n})();const $De=Kt(Xs,n=>n.edgeMetricData.map(t=>t.name));class jDe{static createCodeMapFromHashMap(t){let e;for(const[i,r]of t)i===mu.rootPath?e=r:GL(t,i).children.push(r);return e}static getDeltaFile(t,e){const i=this.getDeltaNodesByPath(t.map,e.map),r=this.createCodeMapFromHashMap(i),o=this.getFileMetaData(t,e);return this.getNewCCFileWithDeltas(r,o)}static getDeltaNodesByPath(t,e){const i=new Map,r=this.getReferenceNodesByPath(t);return this.addExistingAndNewNodesToDeltaMap(r,e,i),this.addDeletedNodesToDeltaMap(r,i),i}static getReferenceNodesByPath(t){const e=new Map;for(const{data:i}of yo(t))e.set(i.path,i);return e}static addExistingAndNewNodesToDeltaMap(t,e,i){for(const{data:r}of yo(e)){const o=t.get(r.path);if(o){(o.children||r.children)&&(o.children=[]);const{deltaList:a,differenceExists:l}=this.compareAttributeValues(o.attributes,r.attributes);o.deltas=a;const c=l?1:0;o.attributes=r.attributes,o.fileCount={added:0,removed:0,changed:c}}else r.children&&(r.children=[]),r.deltas={...r.attributes},r.fileCount={added:r.type===qa.FILE?1:0,removed:0,changed:0};const s=o??r;i.set(s.path,s),t.delete(s.path)}}static addDeletedNodesToDeltaMap(t,e){for(const i of t.values()){i.children&&(i.children=[]),i.deltas={},i.fileCount={added:0,removed:i.type===qa.FILE?1:0,changed:0};for(const[r,o]of Object.entries(i.attributes))i.deltas[r]=-o,i.attributes[r]=0;e.set(i.path,i)}}static compareAttributeValues(t,e){const i={};let r=!1;const o=new Set(Object.keys(t));for(const s of Object.keys(e))o.add(s);for(const s of o){const a=t[s]??0,l=e[s]??0;a!==l&&(r=!0),i[s]=l-a}return{deltaList:i,differenceExists:r}}static getFileMetaData(t,e){return{fileName:`delta_between_${Lm.withoutCCExtension(t.fileMeta.fileName)}_and_${Lm.withoutCCExtension(e.fileMeta.fileName)}`,fileChecksum:`${t.fileMeta.fileChecksum};${e.fileMeta.fileChecksum}`,apiVersion:X1.f4.X,projectName:`delta_between_${t.fileMeta.projectName}_and_${e.fileMeta.projectName}`,exportedFileSize:t.fileMeta.exportedFileSize+e.fileMeta.exportedFileSize}}static getNewCCFileWithDeltas(t,e){return{map:t,fileMeta:e,settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}}}}const KDe=(n,t,e)=>{const i=new Map;for(const r of e){const o=n.get(r);o&&i.set(r,o.get(t.data.path))}return i},WL=Kt(k1,n=>n.attributeTypes),AZ=Object.freeze({unifiedMapNode:void 0,unifiedFileMeta:void 0}),Hc=Kt(Xs,au,WL,su,$De,(n,t,e,i,r)=>{if(!xW(t)||!n.nodeMetricData)return AZ;const o=ZDe(lu(t));return o?.map?(XR.decorateMap(o.map,n,i),((n,t,e)=>{if(0!==e.length)for(const i of yo(t))if(No(i)){const r=KDe(n,i,e);for(const[o,s]of r)i.data.edgeAttributes[o]=s}})(n.nodeEdgeMetricsMap,o.map,r),XR.decorateParentNodesWithAggregatedAttributes(o.map,ou(t),e),{unifiedMapNode:o.map,unifiedFileMeta:o.fileMeta}):AZ}),ZDe=n=>{if(CW(n))return pZ.calculateAggregationFile(n);if(ou(n)){const[t,e]=n;return e&&t.file.map.name!==e.file.map.name?pZ.calculateAggregationFile(n):(n=>{if(2===n.length){let[t,e]=n;if(t.selectedAs!==er.Reference){const i=e;e=t,t=i}return jDe.getDeltaFile(t.file,e.file)}return n[0].file})(n)}},gZ=Kt(Hc,hb,(n,t)=>function qDe(n,t){if(0===(t=t.trimStart()).length||!n)return[];const e=TW(t),i=[];for(const{data:r}of yo(n))e.ignoredNodePaths.ignores(i_(r.path))===e.condition&&i.push(r);return i}(n.unifiedMapNode,t)),$L=Kt(gZ,n=>new Set(n.map(t=>t.path))),jL={getColorByTrueGradient(n,t,e,i){const r=(t.from+t.to)/2,o=lr.convertHexToColorObject(n.neutral);if(i<=r){const l=i/r,c=lr.convertHexToColorObject(n.positive);return lr.convertColorToHex((new tn).lerpColors(c,o,l))}const s=(i-r)/(e.maxValue-r),a=lr.convertHexToColorObject(n.negative);return lr.convertColorToHex((new tn).lerpColors(o,a,s))},getColorByFocusedGradient(n,t,e,i){const r=(t.from+t.to)/2,o=lr.convertHexToColorObject(n.neutral);if(i=t.to&&t.to!==e.maxValue)return n.negative;if(i===r)return n.neutral;if(in.colorMetric),Jh=Kt(Xs,Nm,(n,t)=>{const e=n.nodeMetricData.find(i=>i.name===t);return{values:e?.values??[],minValue:e?.minValue??0,maxValue:e?.maxValue??0}}),us=250;function yZ(n,t,e,i){const r=p2(n.files);if(i)return 2;let o=t.attributes[n.dynamicSettings.heightMetric]||0;o*=r;const s=n.dynamicSettings.heightMetric;return 1===n.fileSettings.attributeDescriptors[s]?.direction?n.appSettings.invertHeight?o:e-o:n.appSettings.invertHeight?e-o:o}function wZ(n,t,e,i){const r=e.deltas?.[i.dynamicSettings.heightMetric]?0:2;return Math.max(Math.abs(t*n),r)}function KL(n,t,e,i){return!(n.isExcluded||t&&e.appSettings.hideFlatBuildings&&i)&&(!(e.dynamicSettings.focusedNodePath.length>0)||n.path.startsWith(e.dynamicSettings.focusedNodePath[0]))}function LT(n,t,e,i,r){return n>e?new se(i.x-r+n/4,i.y+t,i.z-r+e/2):new se(i.x-r+n/2,i.y+t,i.z-r+e/4)}function xZ(n,t,e,i,r){return n>e?new se(i.x-r+.75*n,i.y+t,i.z-r+e/2):new se(i.x-r+n/2,i.y+t,i.z-r+.75*e)}function NT(n,t){if(n.isFlattened)return!0;const e=$L(t);return e&&t.dynamicSettings.searchPattern?.length>0?0===e.size||function i3e(n,t){return!$L(t).has(n.path)}(n,t):!(!t.appSettings.showOnlyBuildingsWithEdges||!t.fileSettings.edges.some(i=>i.visible))&&function n3e(n,t){return void 0===n.edgeAttributes[t.dynamicSettings.edgeMetric]||!t.fileSettings.edges.some(e=>n.path===e.fromNodeName||n.path===e.toNodeName)}(n,t)}function YL(n,{appSettings:t,dynamicSettings:e},i,r,o){const{mapColors:s}=t;if(r)return s.base;const a=n.attributes[e.colorMetric];if(void 0===a)return s.base;if(o)return s.flat;const{colorRange:l,colorMode:c}=e;return"unary"===e.colorMetric?s.positive:c===hm.absolute?a0)for(const i of n.children)e+=vZ(i,t);return e},buildNodeFrom:function t3e(n,t,e,i,r){const o=p2(i.files),{x0:s,x1:a,y0:l,y1:c,data:d}=n,u=No(n),h=NT(d,i),f=yZ(i,d,e,h),A=d.path.split("/").length-2,y=u?wZ(f,t,d,i)*o:2,_=a-s,b=c-l,M=2*n.depth,C=(d.deltas?.[i.dynamicSettings.heightMetric]??0)*t*o,E=y+(C<0?Math.abs(C):0);return{name:d.name,id:d.id,width:_,height:y,length:b,depth:A,mapNodeDepth:n.depth,x0:s,z0:M,y0:l,isLeaf:u,attributes:d.attributes,edgeAttributes:d.edgeAttributes,deltas:d.deltas,heightDelta:C,visible:KL(d,u,i,h),path:d.path,link:d.link,markingColor:f2(d,i.fileSettings.markedPackages),flat:h,color:YL(d,i,Jh(i),r,h),incomingEdgePoint:LT(_,E,b,new se(s,M,l),us),outgoingEdgePoint:xZ(_,E,b,new se(s,M,l),us)}},isNodeFlat:NT,resolveHeightValue:wZ,getHeightValue:yZ,FOLDER_HEIGHT:2,MIN_BUILDING_HEIGHT:2,HEIGHT_VALUE_WHEN_METRIC_NOT_FOUND:0},CZ=.4,MZ=120,EZ=95,r3e=.035,o3e=.028,ZL=3;function SZ(n,t,e,i,r,o,s,a,l,c,d){const u=[];for(const h of n.children){const f=h.data.fixedPosition,A=IZ(h.data,t,d,l);for(const y of A.treeMap.descendants()){const _=f.width/A.width,b=f.height/A.height;y.x0=(y.x0*_+f.left)*i,y.x1=(y.x1*_+f.left)*i,y.y0=(y.y0*b+f.top)*e,y.y1=(y.y1*b+f.top)*e,y.x0+=r,y.x1+=r,y.y0+=o,y.y1+=o;const M=Ca.buildNodeFrom(y,s,a,t,c);if(u.push(M),TZ(h.data)){Array.prototype.push.apply(u,SZ(h,t,M.length/100,M.width/100,y.x0,y.y0,s,a,l,c,d));break}}}return u}function TZ(n){return!!n.children[0]?.fixedPosition}function IZ(n,t,e,i){const r=yo(n),o=FZ(r),{enableFloorLabels:s}=t.appSettings,{margin:a}=t.dynamicSettings,l=a*CZ*e;let c,d;void 0!==n.fixedPosition?(c=n.fixedPosition.width,d=n.fixedPosition.height):(c=2*us,d=2*us);let u=0;r.eachAfter(_=>{!No(_)&&s&&(0===_.depth&&(u+=MZ),_.depth>0&&_.depth{if(!A&&null===_.parent&&(A=_),A&&s){if(0===_.depth)return Math.max((A.x1-A.x0)*r3e,MZ);if(_.depth>0&&_.depthfunction c3e(n,{dynamicSettings:t,appSettings:e,fileSettings:i},r){if(n.isExcluded)return 0;if(n.deltas&&function l3e(n,t){return 0===n.attributes[t.areaMetric]&&n.deltas[t.heightMetric]<0}(n,t))return Math.abs(n.deltas[t.areaMetric]);if(No(n)&&n.attributes?.[t.areaMetric]){const o=t.areaMetric;return 1===i.attributeDescriptors[o]?.direction?e.invertArea?n.attributes[t.areaMetric]:r-n.attributes[t.areaMetric]:e.invertArea?r-n.attributes[t.areaMetric]:n.attributes[t.areaMetric]}return 0}(_,t,i)*e)),height:f,width:h}}function FZ(n){let t=0,e=0;return n.each(({data:i})=>{(i.isExcluded||i.isFlattened)&&e++,t++}),2*Math.sqrt(t-e)}class $w{static getMapResolutionScaling(t){const{width:e}=document.getElementById("codeMapScene"),i=$w.getScalingThreshold(e);return t>i?i/t:1}static getScalingThreshold(t){return Math.min(4*t,10240)}static isLabelNode(t){return!t.isLeaf&&t.mapNodeDepthe&&(r=e,o=t),i.width=r,i.height=o;const s=i.getContext("2d");return s.fillStyle="white",s.textAlign="center",s.textBaseline="middle",{textCanvas:i,context:s}}writeLabelsOnCanvas(t,e,i){const{width:r,length:o}=this.rootNode;for(const s of e){let a=0===s.depth?Math.max(Math.floor(.03*r),120):Math.max(Math.floor(.023*r),95);a*=i,t.font=`${a}px Arial`;const l=fb.getLabelAndSetContextFont(s,t,i,a);t.fillText(l.labelText,(o-s.y0-s.length/2)*i,(s.x0+s.width)*i-l.fontSize/2)}}drawLevelPlaneGeometry(t,e,i,r,o){const s=new sFe(t);s.wrapS=x_,s.wrapT=x_,s.repeat.x=-1,s.needsUpdate=!0,s.rotation=90*Math.PI/180;const a=new Z_(e,i),l=new jh({side:1,map:s,transparent:!0}),c=new ki(a,l);c.rotateX(90*Math.PI/180),a.translate(e/2,i/2,-this.folderGeometryHeight*this.scaling.y*(r+1)-2),c.scale.set(this.scaling.x/o,this.scaling.z/o,1),c.position.set(-this.mapSize*this.scaling.x,0,-this.mapSize*this.scaling.z),this.floorLabelPlanes.push(c),this.floorLabelPlaneLevel.set(c,r)}static getLabelAndSetContextFont(t,e,i,r){const o=t.name,s=t.length*i;e.font=`${r}px Arial`;const a=e.measureText(o),l=fb.getFontScaleFactor(s,a.width);return l<=.5?(r*=.5,r=Math.floor(Math.min(r,t.width*i)),e.font=`${r}px Arial`,{labelText:fb.getFittingLabelText(e,s,o),fontSize:r}):(r=Math.floor(Math.min(r*l,t.width*i)),e.font=`${r}px Arial`,{labelText:o,fontSize:r})}static getFontScaleFactor(t,e){return e=e&&o>1;)o-=1,s=`${i.slice(0,o)}\u2026`;return s}}const JL=hn("SET_SELECTED_BUILDING_ID",{_as:"props",_p:void 0}),mb=Kt(Hc,n=>{if(!n.unifiedMapNode)return new Map;const t=new Map([[n.unifiedMapNode.id,n.unifiedMapNode]]);for(const{data:e}of yo(n.unifiedMapNode))t.set(e.id,e);return t}),pb=Kt(so,n=>n.mapColors),Xi=n=>(t,e)=>void 0===e.value?n:e.value,UT=n=>(t,e)=>void 0===e.value?n:{...t,...e.value},Cu={positive:"#69AE40",neutral:"#ddcc00",negative:"#820E0E",selected:"#EB8319",positiveDelta:"#64d051",negativeDelta:"#ff0E0E",base:"#666666",flat:"#AAAAAA",markingColors:["#FF1D8E","#1d8eff","#1DFFFF","#8eff1d","#8e1dff"],incomingEdge:"#00ffff",outgoingEdge:"#ff00ff",labelColorAndAlpha:{rgb:"#e0e0e0",alpha:.7}},d3e=wi(Cu,An(bh,UT(Cu)),An(YE,n=>({...n,positive:n.negative,negative:n.positive})),An(ZE,n=>({...n,positiveDelta:n.negativeDelta,negativeDelta:n.positiveDelta})));class eN{constructor(){this.listeners={}}on(t,e){this.listeners[t]??=[],this.listeners[t].push(e)}emit(t,e){if(!this.listeners[t]?.length)return!1;for(const i of this.listeners[t])i(e);return!0}}let jw=(()=>{class n{constructor(){this.idToBuilding=new Map}setIdToBuilding(e){this.idToBuilding=new Map;for(const i of e)this.idToBuilding.set(i.node.id,i)}get(e){return this.idToBuilding.get(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class HT{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const u3e=new GS(-1,1,1,-1,0,1),f3e=new class h3e extends gi{constructor(){super(),this.setAttribute("position",new Bn([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Bn([0,2,0,0,2,0],2))}};class m3e{constructor(t){this._mesh=new ki(f3e,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,u3e)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class p3e extends HT{constructor(t,e,i=null,r=null,o=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=i,this.clearColor=r,this.clearAlpha=o,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new tn}render(t,e,i){const r=t.autoClear;let o,s;t.autoClear=!1,null!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(o=t.getClearAlpha(),t.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:i),!0===this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),null!==this.clearColor&&t.setClearColor(this._oldClearColor),null!==this.clearAlpha&&t.setClearAlpha(o),null!==this.overrideMaterial&&(this.scene.overrideMaterial=s),t.autoClear=r}}const g3e=class A3e{static isWebGL2Available(){try{const t=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!t.getContext("webgl2"))}catch{return!1}}static isColorSpaceAvailable(t){try{const e=document.createElement("canvas"),i=window.WebGL2RenderingContext&&e.getContext("webgl2");return i.drawingBufferColorSpace=t,i.drawingBufferColorSpace===t}catch{return!1}}static getWebGL2ErrorMessage(){return this.getErrorMessage(2)}static getErrorMessage(t){const i={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext};let r='Your $0 does not seem to support
    $1';const o=document.createElement("div");return o.id="webglmessage",o.style.fontFamily="monospace",o.style.fontSize="13px",o.style.fontWeight="normal",o.style.textAlign="center",o.style.background="#fff",o.style.color="#000",o.style.padding="1.5em",o.style.width="400px",o.style.margin="5em auto 0",r=r.replace("$0",i[t]?"graphics card":"browser"),r=r.replace("$1",{1:"WebGL",2:"WebGL 2"}[t]),o.innerHTML=r,o}static isWebGLAvailable(){console.warn("isWebGLAvailable() has been deprecated and will be removed in r178. Use isWebGL2Available() instead.");try{const t=document.createElement("canvas");return!(!window.WebGLRenderingContext||!t.getContext("webgl")&&!t.getContext("experimental-webgl"))}catch{return!1}}static getWebGLErrorMessage(){return console.warn("getWebGLErrorMessage() has been deprecated and will be removed in r178. Use getWebGL2ErrorMessage() instead."),this.getErrorMessage(1)}};class DZ extends HT{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof Al?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=UO.clone(t.uniforms),this.material=new Al({name:void 0!==t.name?t.name:"unspecified",defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new m3e(this.material)}render(t,e,i){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=i.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class tN extends HT{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,i){const r=t.getContext(),o=t.state;let s,a;o.buffers.color.setMask(!1),o.buffers.depth.setMask(!1),o.buffers.color.setLocked(!0),o.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),o.buffers.stencil.setTest(!0),o.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),o.buffers.stencil.setFunc(r.ALWAYS,s,4294967295),o.buffers.stencil.setClear(a),o.buffers.stencil.setLocked(!0),t.setRenderTarget(i),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),o.buffers.color.setLocked(!1),o.buffers.depth.setLocked(!1),o.buffers.color.setMask(!0),o.buffers.depth.setMask(!0),o.buffers.stencil.setLocked(!1),o.buffers.stencil.setFunc(r.EQUAL,1,4294967295),o.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),o.buffers.stencil.setLocked(!0)}}class kZ extends HT{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}const _3e={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class b3e{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const i=t.getSize(new nt);this._width=i.width,this._height=i.height,(e=new Lc(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:C_})).texture.name="EffectComposer.rt1"}else this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new DZ(_3e),this.copyPass.material.blending=0,this.clock=new WY}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;en.isWhiteBackground);class v3e{constructor(){this.vertexShader=p(889),this.fragmentShader=p(6655),this.uniforms={tDiffuse:{value:null},resolution:{value:new nt(1/1024,1/512)}}}}class Ki{static{this.BACKGROUND_COLOR={white:16777215,normal:16053483}}static{this.CLEAR_COLOR=Ki.BACKGROUND_COLOR.normal}static{this.CLEAR_ALPHA=1}static{this.RENDER_OPTIONS={antialias:!0,preserveDrawingBuffer:!0,alpha:!0}}static{this.enableFXAA=!1}static{this.setPixelRatio=!1}constructor(t,e){this.store=t,this.state=e,this.setBackgroundColorToState=i=>{Ki.CLEAR_COLOR=i?Ki.BACKGROUND_COLOR.white:Ki.BACKGROUND_COLOR.normal,this.renderer?.setClearColor(Ki.CLEAR_COLOR,Ki.CLEAR_ALPHA)},this.initGL=(i,r)=>{if(this.setGLOptions(),this.renderer=new ZO(Ki.RENDER_OPTIONS),Ki.setPixelRatio&&this.renderer.setPixelRatio(window.devicePixelRatio),Ki.enableFXAA)if(g3e.isWebGL2Available){const o=this.renderer.getDrawingBufferSize(new nt),s=new Lc(o.width,o.height,{format:$a});this.composer=new BZ(this.renderer,s)}else this.composer=new BZ(this.renderer);this.renderer.setSize(i,r),this.renderer.domElement.id="codeMapScene",Ki.enableFXAA&&this.initComposer()},this.setGLOptions=()=>{switch(this.state.getValue().appSettings.sharpnessMode){case gA.Standard:Ki.RENDER_OPTIONS.antialias=!0,Ki.enableFXAA=!1,Ki.setPixelRatio=!1;break;case gA.PixelRatioNoAA:Ki.RENDER_OPTIONS.antialias=!1,Ki.enableFXAA=!1,Ki.setPixelRatio=!0;break;case gA.PixelRatioFXAA:Ki.RENDER_OPTIONS.antialias=!1,Ki.enableFXAA=!0,Ki.setPixelRatio=!0;break;case gA.PixelRatioAA:Ki.RENDER_OPTIONS.antialias=!0,Ki.enableFXAA=!1,Ki.setPixelRatio=!0}},this.initComposer=()=>{const i=this.renderer.getPixelRatio();this.composer.setSize(window.innerWidth*i,window.innerHeight*i);const r=new p3e(this.scene,this.camera);this.composer.addPass(r);const o=new DZ(new v3e);o.renderToScreen=!1,o.uniforms.resolution.value.x=1/(window.innerWidth*i),o.uniforms.resolution.value.y=1/(window.innerHeight*i),this.composer.addPass(o)},this.getInfo=()=>Ki.enableFXAA?this.composer.getInfo():this.renderer.info.render,this.getMemoryInfo=()=>Ki.enableFXAA?this.composer.getMemoryInfo():this.renderer.info.memory}init(t,e,i,r){this.scene=i,this.camera=r,this.initGL(t,e),this.store.select(PZ).subscribe(this.setBackgroundColorToState)}render(){const{scene:t,camera:e,composer:i,renderer:r}=this;Ki.enableFXAA?i?.render():r?.render(t,e)}static{this.\u0275fac=function(e){return new(e||Ki)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:Ki,factory:Ki.\u0275fac,providedIn:"root"})}}let Vc=(()=>{class n{constructor(e,i,r,o){this.store=e,this.state=i,this.idToBuilding=r,this.threeRendererService=o,this.eventEmitter=new eN,this.selected=null,this.highlighted=[],this.constantHighlight=new Map,this.folderLabelColorHighlighted=lr.convertHexToNumber("#FFFFFF"),this.folderLabelColorNotHighlighted=lr.convertHexToNumber("#7A7777"),this.rayPoint=new se(0,0,0),this.normedTransformVector=new se(0,0,0),this.highlightedLabel=null,this.highlightedLineIndex=-1,this.highlightedLine=null,this.subscription=this.store.select(pb).subscribe(s=>{this.folderLabelColorSelected=s.selected,this.numberSelectionColor=lr.convertHexToNumber(this.folderLabelColorSelected)}),this.scene=new KS,this.mapGeometry=new gl,this.lights=new gl,this.labels=new gl,this.floorLabelPlanes=new gl,this.edgeArrows=new gl,this.initLights(),this.scene.add(this.mapGeometry),this.scene.add(this.edgeArrows),this.scene.add(this.labels),this.scene.add(this.lights),this.scene.add(this.floorLabelPlanes)}ngOnDestroy(){this.subscription.unsubscribe()}initFloorLabels(e){this.floorLabelPlanes.clear();const{layoutAlgorithm:i,enableFloorLabels:r}=this.state.getValue().appSettings;if(i!==hu.SquarifiedTreeMap||!r)return;const o=this.getRootNode(e);if(!o)return;const s=this.state.getValue().appSettings.scaling,a=this.state.getValue().appSettings.experimentalFeaturesEnabled,l=new se(s.x,s.y,s.z);this.floorLabelDrawer=new fb(this.mapMesh.getNodes(),o,us,l,a);const c=this.floorLabelDrawer.draw(this.state.getValue());c.length>0&&(this.floorLabelPlanes.add(...c),this.scene.add(this.floorLabelPlanes))}getRootNode(e){return e.find(i=>0===i.id)}getConstantHighlight(){return this.constantHighlight}highlightBuildings(){const e=this.state.getValue();this.getMapMesh().highlightBuilding(this.highlighted,this.selected,e,this.constantHighlight),this.mapGeometry.children[0]&&this.highlightMaterial(this.mapGeometry.children[0].material),this.threeRendererService.render()}selectMaterial(e){e.find(({userData:r})=>r.id===this.selected.node.id)?.color.setHex(this.numberSelectionColor)}resetMaterial(e){const i=this.selected?this.selected.node.id:-1;for(const r of e)r.userData.id!==i&&r.color?.setHex(this.folderLabelColorHighlighted)}scaleHeight(){const e=this.state.getValue().appSettings.scaling;this.floorLabelDrawer?.translatePlaneCanvases(e),this.mapGeometry.scale.set(e.x,e.y,e.z),this.mapGeometry.position.set(-us*e.x,0,-us*e.z),this.mapMesh.setScale(e)}highlightMaterial(e){const i=new Set(this.highlighted.map(({node:o})=>o.id)),r=new Set;for(const{node:o}of this.constantHighlight.values())r.add(o.id);for(const o of e){const s=o.userData.id;this.selected&&s===this.selected.node.id?o.color.setHex(this.numberSelectionColor):i.has(s)||r.has(s)?o.color.setHex(this.folderLabelColorHighlighted):o.color?.setHex(this.folderLabelColorNotHighlighted)}}highlightSingleBuilding(e){this.highlighted=[],this.addBuildingToHighlightingList(e),this.highlightBuildings()}addBuildingToHighlightingList(e){this.highlighted.push(e)}clearHoverHighlight(){this.highlighted=[],this.highlightBuildings()}clearHighlight(){this.getMapMesh()&&(this.getMapMesh().clearHighlight(this.selected),this.highlighted=[],this.constantHighlight.clear(),this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material))}selectBuilding(e){e.id!==this.selected?.id&&this.store.dispatch(JL({value:e.node.id})),this.getMapMesh().selectBuilding(e,this.folderLabelColorSelected),this.selected=e,this.highlightBuildings(),this.eventEmitter.emit("onBuildingSelected",{building:this.selected}),this.mapGeometry.children[0]&&this.selectMaterial(this.mapGeometry.children[0].material)}animateLabel(e,i,r){if(null!==e&&null!==i){this.resetLabel(),e.material&&(e.material.opacity=1),this.highlightedLineIndex=this.getHoveredLabelLineIndex(r,e),this.highlightedLine=r[this.highlightedLineIndex],this.rayPoint=new se,this.rayPoint.subVectors(i.ray.origin,e.position);const o=Math.sqrt(this.rayPoint.x**2+this.rayPoint.y**2+this.rayPoint.z**2);this.normedTransformVector=new se(this.rayPoint.x/o,this.rayPoint.y/o,this.rayPoint.z/o);const a=this.calculateMaxDistance(e,r,i.ray.origin);this.normedTransformVector.multiplyScalar(a),e.position.add(this.normedTransformVector),this.toggleLineAnimation(e),this.highlightedLabel=e}}resetLineHighlight(){this.highlightedLineIndex=-1,this.highlightedLine=null}resetLabel(){null!==this.highlightedLabel&&(this.highlightedLabel.position.sub(this.normedTransformVector),this.highlightedLabel.material.opacity=Cu.labelColorAndAlpha.alpha,this.highlightedLine&&this.toggleLineAnimation(this.highlightedLabel),this.highlightedLabel=null)}getHoveredLabelLineIndex(e,i){const r=e.findIndex(({uuid:o})=>o===i.uuid);if(r>=0)return r+1}toggleLineAnimation(e){const i=new se(e.position.x,e.position.y,e.position.z),o=[...this.highlightedLine.geometry.attributes.position.array],s=(new gi).setFromPoints([new se(o[0],o[1],o[2]),i]),a=new wd(s,this.highlightedLine.material);this.labels.children.splice(this.highlightedLineIndex,1,a)}getLabelForHoveredNode(e,i){for(let r=0;r=i.min[r]&&i.max[r]>=e.min[r])}getIntersectionDistanceFunction(e,i){return r=>{const o=this.normedTransformVector.clone();o.multiplyScalar(r),e.translate(o);const s=this.isOverlapping(i,e,"x")+this.isOverlapping(i,e,"y");return 2===s||1===s&&this.isOverlapping(i,e,"z")?r:0}}calculateMaxDistance(e,i,r){const o=(new Us).setFromObject(e),s=new se;o.getCenter(s);const a=r.distanceTo(s);let l=a/20;for(let c=0;c0&&this.clearHighlight()}clearSelection(){this.selected&&(this.getMapMesh().clearSelection(this.selected),this.store.dispatch(JL({value:null})),this.eventEmitter.emit("onBuildingDeselected")),this.highlighted.length>0&&this.highlightBuildings(),this.selected=null,this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material)}initLights(){const e=new NL(7368816),i=new zw(14737632,1.5);i.position.set(50,10,8).normalize();const r=new zw(14737632,1.5);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r)}setMapMesh(e,i){this.mapMesh=i,this.initFloorLabels(e),this.mapGeometry.children.length=0,this.mapGeometry.position.x=-us,this.mapGeometry.position.y=0,this.mapGeometry.position.z=-us,this.mapGeometry.add(this.mapMesh.getThreeMesh()),this.idToBuilding.setIdToBuilding(this.mapMesh.getMeshDescription().buildings)}getMapMesh(){return this.mapMesh}getSelectedBuilding(){return this.selected}getHighlightedBuilding(){return this.highlighted[0]}dispose(){this.mapMesh?.dispose()}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(jw),ve(Ki))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VT=(()=>{class n{constructor(e){this.threeSceneService=e,this.isOpen=!1,this.threeSceneService.subscribe("onBuildingSelected",()=>{this.isOpen=!0}),this.threeSceneService.subscribe("onBuildingDeselected",()=>{this.isOpen=!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(Vc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Mu=(()=>{class n{static{this.VIEW_ANGLE=45}static{this.NEAR=50}static{this.FAR=2e5}init(e,i){this.camera=new Hs(n.VIEW_ANGLE,e/i,n.NEAR,n.FAR),this.setPosition(new se(0,300,1e3))}setPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const RZ={type:"change"},nN={type:"start"},OZ={type:"end"},QT=new BA,LZ=new Dm,y3e=Math.cos(70*hEe_DEG2RAD),zs=new se,bl=2*Math.PI,iN=1e-6;class rN extends RDe{constructor(t,e=null){super(t,e),this.state=-1,this.enabled=!0,this.target=new se,this.cursor=new se,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},this.touches={ONE:0,TWO:2},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new se,this._lastQuaternion=new Ka,this._lastTargetPosition=new se,this._quat=(new Ka).setFromUnitVectors(t.up,new se(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new eZ,this._sphericalDelta=new eZ,this._scale=1,this._panOffset=new se,this._rotateStart=new nt,this._rotateEnd=new nt,this._rotateDelta=new nt,this._panStart=new nt,this._panEnd=new nt,this._panDelta=new nt,this._dollyStart=new nt,this._dollyEnd=new nt,this._dollyDelta=new nt,this._dollyDirection=new se,this._mouse=new nt,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=x3e.bind(this),this._onPointerDown=w3e.bind(this),this._onPointerUp=C3e.bind(this),this._onContextMenu=D3e.bind(this),this._onMouseWheel=S3e.bind(this),this._onKeyDown=T3e.bind(this),this._onTouchStart=I3e.bind(this),this._onTouchMove=F3e.bind(this),this._onMouseDown=M3e.bind(this),this._onMouseMove=E3e.bind(this),this._interceptControlDown=k3e.bind(this),this._interceptControlUp=B3e.bind(this),null!==this.domElement&&this.connect(),this.update()}connect(){this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){null!==this._domElementKeyEvents&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(RZ),this.update(),this.state=-1}update(t=null){const e=this.object.position;zs.copy(e).sub(this.target),zs.applyQuaternion(this._quat),this._spherical.setFromVector3(zs),this.autoRotate&&-1===this.state&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(i)&&isFinite(r)&&(i<-Math.PI?i+=bl:i>Math.PI&&(i-=bl),r<-Math.PI?r+=bl:r>Math.PI&&(r-=bl),this._spherical.theta=i<=r?Math.max(i,Math.min(r,this._spherical.theta)):this._spherical.theta>(i+r)/2?Math.max(i,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let o=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const s=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),o=s!=this._spherical.radius}if(zs.setFromSpherical(this._spherical),zs.applyQuaternion(this._quatInverse),e.copy(this.target).add(zs),this.object.lookAt(this.target),!0===this.enableDamping?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let s=null;if(this.object.isPerspectiveCamera){const a=zs.length();s=this._clampDistance(a*this._scale);const l=a-s;this.object.position.addScaledVector(this._dollyDirection,l),this.object.updateMatrixWorld(),o=!!l}else if(this.object.isOrthographicCamera){const a=new se(this._mouse.x,this._mouse.y,0);a.unproject(this.object);const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),o=l!==this.object.zoom;const c=new se(this._mouse.x,this._mouse.y,0);c.unproject(this.object),this.object.position.sub(c).add(a),this.object.updateMatrixWorld(),s=zs.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==s&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position):(QT.origin.copy(this.object.position),QT.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(QT.direction))iN||8*(1-this._lastQuaternion.dot(this.object.quaternion))>iN||this._lastTargetPosition.distanceToSquared(this.target)>iN)&&(this.dispatchEvent(RZ),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?bl/60*this.autoRotateSpeed*t:bl/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(.01*t);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){zs.setFromMatrixColumn(e,0),zs.multiplyScalar(-t),this._panOffset.add(zs)}_panUp(t,e){!0===this.screenSpacePanning?zs.setFromMatrixColumn(e,1):(zs.setFromMatrixColumn(e,0),zs.crossVectors(this.object.up,zs)),zs.multiplyScalar(t),this._panOffset.add(zs)}_pan(t,e){const i=this.domElement;if(this.object.isPerspectiveCamera){zs.copy(this.object.position).sub(this.target);let o=zs.length();o*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*o/i.clientHeight,this.object.matrix),this._panUp(2*e*o/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const i=this.domElement.getBoundingClientRect(),o=e-i.top,a=i.height;this._mouse.x=(t-i.left)/i.width*2-1,this._mouse.y=-o/a*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(bl*this._rotateDelta.x/e.clientHeight),this._rotateUp(bl*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateUp(bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateUp(-bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateLeft(bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this._rotateLeft(-bl*this.rotateSpeed/this.domElement.clientHeight):this._pan(-this.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(1===this._pointers.length)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t);this._rotateStart.set(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}}_handleTouchStartPan(t){if(1===this._pointers.length)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t);this._panStart.set(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,r=t.pageY-e.y,o=Math.sqrt(i*i+r*r);this._dollyStart.set(0,o)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(1==this._pointers.length)this._rotateEnd.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t);this._rotateEnd.set(.5*(t.pageX+i.x),.5*(t.pageY+i.y))}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(bl*this._rotateDelta.x/e.clientHeight),this._rotateUp(bl*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(1===this._pointers.length)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t);this._panEnd.set(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),i=t.pageX-e.x,r=t.pageY-e.y,o=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,o),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd),this._updateZoomParameters(.5*(t.pageX+e.x),.5*(t.pageY+e.y))}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e{class n{static{this.CAMERA_CHANGED_EVENT_NAME="camera-changed"}constructor(e,i,r){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.MAX_ZOOM=200,this.MIN_ZOOM=10,this.eventEmitter=new eN,this.zoomPercentage$=new Ia(100)}setControlTarget(e){this.controls.target.set(e.x,e.y,e.z)}rotateCameraInVectorDirection(e,i,r){const o=this.getZoom();this.lookAtDirectionFromTarget(e,i,r),this.applyOldZoom(o),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)}autoFitTo(){setTimeout(()=>{const e=this.getBoundingSphere();if(!e||-1===e.radius)return;const i=this.cameraPerspectiveLengthCalculation(e);this.threeCameraService.camera.position.set(i,i,e.center.z),this.positionBeforeFocus=new se(i,i,e.center.z),this.controls.update(),this.focusCameraViewToCenter(e),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera),this.controls.maxDistance=4*i,this.controls.minDistance=e.radius/13,this.setZoomPercentage(140)})}cameraPerspectiveLengthCalculation(e){const o=this.threeCameraService.camera.fov*Math.PI/180*1.3,s=e.radius/Math.tan(o/2);return Math.sqrt(Math.pow(s,2)+Math.pow(s,2))}focusCameraViewToCenter(e){const i=e.center.clone();i.setY(0),this.controls.target.set(i.x,i.y,i.z),this.threeCameraService.camera.lookAt(i),this.threeCameraService.camera.updateProjectionMatrix()}getBoundingSphere(){return(new Us).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Ys)}lookAtDirectionFromTarget(e,i,r){this.threeCameraService.camera.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z);const o=new ki(new ac(20,20,20),new DY);this.threeSceneService.scene.add(o),o.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z),o.translateX(e),o.translateY(i),o.translateZ(r),this.threeCameraService.camera.lookAt(o.getWorldPosition(o.position)),this.threeSceneService.scene.remove(o)}getZoom(){return this.threeCameraService.camera.position.distanceTo(this.controls.target)}applyOldZoom(e){this.threeCameraService.camera.translateZ(e)}init(e){this.controls=new P3e(this.threeCameraService.camera,e),this.controls.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},window.addEventListener("wheel",i=>{this.controls.zoomToCursor=i.deltaY<=0}),this.controls.minPolarAngle=0,this.controls.maxPolarAngle=Math.PI/2,this.controls.listenToKeyEvents(window),this.controls.addEventListener("change",()=>{this.onInput(this.threeCameraService.camera),this.updateZoomPercentage(),this.threeRendererService.render()}),this.updateZoomPercentage()}onInput(e){this.setControlTarget(this.controls.target),this.eventEmitter.emit("onCameraChanged",{camera:e})}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}getZoomPercentage(e){const i=this.controls.minDistance,r=this.controls.maxDistance;return e<=i?this.MAX_ZOOM:e>=r?this.MIN_ZOOM:this.MAX_ZOOM-(e-i)/(r-i)*(this.MAX_ZOOM-this.MIN_ZOOM)}getDistanceFromZoomPercentage(e){const i=this.controls.minDistance;return i+(this.MAX_ZOOM-e)/(this.MAX_ZOOM-this.MIN_ZOOM)*(this.controls.maxDistance-i)}updateZoomPercentage(){const e=this.threeCameraService.camera.position.distanceTo(this.controls.target),i=this.getZoomPercentage(e);this.zoomPercentage$.next(i)}setZoomPercentage(e){const i=this.getDistanceFromZoomPercentage(e),r=(new se).subVectors(this.threeCameraService.camera.position,this.controls.target).normalize();this.threeCameraService.camera.position.copy(this.controls.target).add(r.multiplyScalar(i)),this.controls.update(),this.zoomPercentage$.next(e)}focusNode(e){this.positionBeforeFocus=this.threeCameraService.camera.position.clone();const o=this.threeSceneService.getMapMesh().getBuildingByPath(e).boundingBox.getBoundingSphere(new Ys);this.ensureProperDistanceAndFocus(o)}unfocusNode(e){if(!this.positionBeforeFocus)return;const i=this.threeCameraService.camera.position.clone(),r=this.positionBeforeFocus.clone(),o=performance.now(),a=l=>{const d=Math.min((l-o)/1e3,1),u=(new se).lerpVectors(i,r,d);this.moveCameraToPosition(u,this.controls.target,!1),d<1?requestAnimationFrame(a):e&&e()};requestAnimationFrame(a)}ensureProperDistanceAndFocus(e){const i=this.threeCameraService.camera.position.distanceTo(e.center),r=1.8*this.cameraPerspectiveLengthCalculation(e);if(i{this.animateCameraTransition(e,1e3)})}else this.animateCameraTransition(e,1e3)}animateCameraTransition(e,i,r){const{center:o,radius:s}=e,a=this.threeCameraService.camera.position.clone(),l=this.calculateCameraEndPosition(o,s,!0),c=performance.now(),d=u=>{const f=Math.min((u-c)/i,1),A=(new se).lerpVectors(a,l,f);this.moveCameraToPosition(A,o,!1),f<1?requestAnimationFrame(d):r&&r()};requestAnimationFrame(d)}calculateCameraEndPosition(e,i,r){const o=this.threeCameraService.camera.position.clone(),s=this.controls.target.clone().sub(o).normalize(),a=this.cameraPerspectiveLengthCalculation({center:e,radius:i})*(r?1.8:1);return e.clone().sub(s.multiplyScalar(a))}moveCameraToPosition(e,i,r=!0){const o=this.threeCameraService.camera;o.position.copy(e),o.lookAt(i),this.controls.target.copy(i),this.controls.update(),r&&this.threeRendererService.render(),this.onInput(o)}static{this.\u0275fac=function(i){return new(i||n)(ve(Mu),ve(Vc),ve(Ki))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Xw=function(){var n=0,t=document.createElement("div");function e(d){return t.appendChild(d.dom),d}function i(d){for(var u=0;u=o+1e3&&(a.update(1e3*s/(d-o),100),o=d,s=0,c)){var u=performance.memory;c.update(u.usedJSHeapSize/1048576,u.jsHeapSizeLimit/1048576)}return d},update:function(){r=this.end()},domElement:t,setMode:i}};Xw.Panel=function(n,t,e){var i=1/0,r=0,o=Math.round,s=o(window.devicePixelRatio||1),a=80*s,l=48*s,c=3*s,d=2*s,u=3*s,h=15*s,f=74*s,A=30*s,y=document.createElement("canvas");y.width=a,y.height=l,y.style.cssText="width:80px;height:48px";var _=y.getContext("2d");return _.font="bold "+9*s+"px Helvetica,Arial,sans-serif",_.textBaseline="top",_.fillStyle=e,_.fillRect(0,0,a,l),_.fillStyle=t,_.fillText(n,c,d),_.fillRect(u,h,f,A),_.fillStyle=e,_.globalAlpha=.9,_.fillRect(u,h,f,A),{dom:y,update:function(b,M){i=Math.min(i,b),r=Math.max(r,b),_.fillStyle=e,_.globalAlpha=1,_.fillRect(0,0,a,h),_.fillStyle=t,_.fillText(o(b)+" "+n+" ("+o(i)+"-"+o(r)+")",c,d),_.drawImage(y,u+s,h,f-s,A,u,h,f-s,A),_.fillRect(u+f-s,h,s,A),_.fillStyle=e,_.globalAlpha=.9,_.fillRect(u+f-s,h,s,o((1-b/M)*A))}}};const Kw=Xw;let NZ=(()=>{class n{constructor(e){this.threeRendererService=e,this.isDevelopmentMode=!1,this.init=i=>{this.isDevelopmentMode&&(this.stats=new Kw,this.stats.dom.style.position="absolute",this.stats.dom.style.left="0",this.stats.dom.style.top="0",i.append(this.stats.dom),this.generateStatPanels(),this.prevTime=this.getTimeFunctor().now())},this.getTimeFunctor=()=>typeof performance>"u"?Date:performance,this.generateStatPanels=()=>{this.trianglesPanel={panel:this.stats.addPanel(new Kw.Panel("triangles","#ff8","#221")),maxHeight:0},this.glCallsPanel={panel:this.stats.addPanel(new Kw.Panel("calls","#f8f","#212")),maxHeight:0},this.geometryMemoryPanel={panel:this.stats.addPanel(new Kw.Panel("geo. mem","#f08","#221")),maxHeight:0},this.textureMemoryPanel={panel:this.stats.addPanel(new Kw.Panel("tex. mem","#0f8","#221")),maxHeight:0},this.stats.showPanel(3)},this.updateStats=()=>{if(this.isDevelopmentMode){const i=this.getTimeFunctor().now();if(i>=this.prevTime+1e3){this.prevTime=i;const r=this.threeRendererService.getInfo(),o=this.threeRendererService.getMemoryInfo();this.processPanel(this.trianglesPanel,r.triangles),this.processPanel(this.glCallsPanel,r.calls),this.processPanel(this.geometryMemoryPanel,o.geometries),this.processPanel(this.textureMemoryPanel,o.textures)}this.stats.update()}},this.resetPanels=()=>{if(this.isDevelopmentMode)for(const i of[this.trianglesPanel,this.glCallsPanel,this.geometryMemoryPanel,this.textureMemoryPanel])void 0!==i&&(i.maxHeight=0)},this.processPanel=(i,r)=>{i.maxHeight=Math.max(i.maxHeight,r),i.panel.update(r,1.3*i.maxHeight)},this.destroy=()=>{this.isDevelopmentMode&&this.stats.dom.remove()}}static{this.\u0275fac=function(i){return new(i||n)(ve(Ki))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),UZ=(()=>{class n{constructor(e,i,r,o,s){this.threeSceneService=e,this.threeCameraService=i,this.threeMapControlsService=r,this.threeRendererService=o,this.threeStatsService=s,this.onWindowResize=()=>{this.threeSceneService.scene.updateMatrixWorld(!1),this.threeRendererService.renderer.setSize(window.innerWidth,window.innerHeight),this.threeCameraService.camera.aspect=window.innerWidth/window.innerHeight,this.threeCameraService.camera.updateProjectionMatrix(),this.animate()},this.onFocusIn=a=>{"INPUT"===a.target.nodeName&&this.threeMapControlsService.controls.stopListenToKeyEvents()},this.onFocusOut=a=>{"INPUT"===a.target.nodeName&&this.threeMapControlsService.controls.listenToKeyEvents(window)}}init(e){this.threeCameraService.init(window.innerWidth,window.innerHeight);const i=this.threeCameraService.camera,r=this.threeSceneService.scene;i.lookAt(r.position),r.add(i),this.threeRendererService.init(window.innerWidth,window.innerHeight,r,i),this.threeStatsService.init(e),this.threeMapControlsService.init(this.threeRendererService.renderer.domElement),e.append(this.threeRendererService.renderer.domElement),window.addEventListener("resize",this.onWindowResize),window.addEventListener("focusin",this.onFocusIn),window.addEventListener("focusout",this.onFocusOut),this.animate(),this.animateStats()}restart(e){this.stopAnimate(),this.destroy(),this.init(e),this.autoFitTo(),this.animate(),this.animateStats()}enableRotation(e){this.threeMapControlsService.controls.enableRotate=e}animate(){this.threeMapControlsService.controls.update(),this.threeRendererService.render()}animateStats(){this.animationFrameId=requestAnimationFrame(()=>this.animateStats()),this.threeStatsService.updateStats()}getRenderCanvas(){return this.threeRendererService.renderer.domElement}getRenderLoseExtention(){return this.threeRendererService.renderer.getContext().getExtension("WEBGL_lose_context")}autoFitTo(){this.threeMapControlsService.autoFitTo()}stopAnimate(){cancelAnimationFrame(this.animationFrameId)}dispose(){this.threeRendererService?.composer?.dispose(),this.threeRendererService?.renderer?.dispose()}destroy(){window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("focusin",this.onFocusIn),window.removeEventListener("focusout",this.onFocusOut),this.dispose(),this.threeStatsService.destroy(),this.getRenderCanvas().remove(),this.dispose()}static{this.\u0275fac=function(i){return new(i||n)(ve(Vc),ve(Mu),ve(cc),ve(Ki),ve(NZ))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Ab=hn("SET_HOVERED_NODE_ID",{_as:"props",_p:void 0}),gb=hn("SET_RIGHT_CLICKED_NODE_DATA",{_as:"props",_p:void 0}),oN=n=>n.appStatus,Yw=Kt(oN,n=>n.hoveredNodeId);function Eu(n,t=0){let e;return(...i)=>{clearTimeout(e),e=setTimeout(()=>{n.apply(this,i),e=null},t)}}let HZ=(()=>{class n{constructor(e,i,r,o){this.state=e,this.threeCameraService=i,this.threeSceneService=r,this.threeMapControlsService=o,this.mapLabelColors=Cu.labelColorAndAlpha,this.LABEL_COLOR_RGB=lr.convertHexToRgba(this.mapLabelColors.rgb),this.LABEL_WIDTH_DIVISOR=2100,this.LABEL_HEIGHT_DIVISOR=35,this.LABEL_CORNER_RADIUS=40,this.LABEL_SCALE_FACTOR=.7,this.LABEL_HEIGHT_COEFFICIENT=3.75,this.LABEL_HEIGHT_POSITION=60,this.previousScaling=new se(1,1,1),this.lineCount=1,this.nodeHeight=0,this.labels=new Array,this.threeMapControlsService.subscribe("onCameraChanged",()=>this.onCameraChanged())}addLeafLabel(e,i,r=!1){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),{scaling:a,layoutAlgorithm:l,showMetricLabelNodeName:c,showMetricLabelNameValue:d}=o,{margin:u,heightMetric:h}=s,f=new se(a.x,a.y,a.z);let A="";if(c||r&&!d)A=`${e.name}`;else if(!d)return;d&&(""!==A&&(A+="\n"),A+=`${e.attributes[h]} ${h}`);const y=this.makeText(A,30,e);let _=e.height+Math.abs(e.heightDelta??0);_=_*f.y>i*f.y?_:i,this.nodeHeight=this.nodeHeight>_?this.nodeHeight:_;const M=e.z0,E=(e.x0-us+e.width/2)*f.x,L=(M+this.nodeHeight)*f.y,N=(M+e.height)*f.y,H=(e.y0-us+e.length/2)*f.z,j=this.LABEL_HEIGHT_COEFFICIENT*u*this.LABEL_SCALE_FACTOR;let R=j+y.heightValue/2;switch(l){case hu.StreetMap:case hu.TreeMapStreet:R/=10,this.LABEL_HEIGHT_POSITION=0,y.line=this.makeLine(E,L+R,N,H);break;default:y.line=this.makeLine(E,L+j/2,N,H)}y.sprite.position.set(E,L+R,H),y.sprite.material.color=new tn(this.mapLabelColors.rgb),y.sprite.material.opacity=this.mapLabelColors.alpha,y.sprite.userData={node:e},this.threeSceneService.labels.add(y.sprite),this.threeSceneService.labels.add(y.line),this.labels.push(y)}clearLabels(){this.threeSceneService.resetLabel(),this.threeSceneService.resetLineHighlight(),this.dispose(this.labels),this.labels=[],this.nodeHeight=0,this.LABEL_HEIGHT_POSITION=60,this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children=[]}disposeSprite(e){e.material.dispose(),e.material.map.dispose(),e.geometry.dispose()}disposeLine(e){e.material.dispose(),e.geometry.dispose()}dispose(e){for(const i of e)i instanceof rL&&this.disposeSprite(i),i instanceof wd&&this.disposeLine(i),void 0!==i.sprite&&this.disposeSprite(i.sprite),void 0!==i.line&&this.disposeLine(i.line)}clearTemporaryLabel(e){const i=this.labels.findIndex(({node:r})=>r===e);i>-1&&(this.labels.splice(i,1),this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children.length-=2,this.threeSceneService.resetLineHighlight())}scale(){const{scaling:e}=this.state.getValue().appSettings,i=new se(e.x,e.y,e.z),{margin:r}=this.state.getValue().dynamicSettings,o=new se(0,this.LABEL_HEIGHT_COEFFICIENT*r*this.LABEL_SCALE_FACTOR,0);for(const s of this.labels){const a=i.clone();s.sprite.position.sub(o).divide(this.previousScaling).multiply(a).add(o),a.y>1&&(a.y=1);const c=s.line.geometry.attributes.position;c.setX(0,c.getX(0)*a.x),c.setY(0,c.getY(0)*a.y),c.setZ(0,c.getZ(0)*a.z),c.setX(1,s.sprite.position.x),c.setY(1,s.sprite.position.y),c.setZ(1,s.sprite.position.z),c.needsUpdate=!0}this.previousScaling.copy(i)}onCameraChanged(){for(const e of this.labels)this.setLabelSize(e.sprite,e,e.sprite.material.map.image.width)}makeText(e,i,r){const o=document.createElement("canvas"),s=o.getContext("2d");s.font=`${i}px Roboto`;const l=e.split("\n"),c=s.measureText(l[0]).width,d=s.measureText(l[1]).width;o.width=c>d?c+25:d+25,o.height=25+i*l.length,s.font=`${i}px Roboto`,s.fillStyle="rgba(255,255,255,1)",s.lineJoin="round",s.lineCap="round",s.lineWidth=5,n.drawRectangleWithRoundedCorners(s,0,0,o.width,o.height,this.LABEL_CORNER_RADIUS),s.fillStyle="rgba(0,0,0,1)",s.textAlign="center",s.textBaseline="middle";for(const[A,y]of l.entries())s.fillText(y,o.width/2,o.height*(A+1)/(l.length+1));const u=new Xa(o);u.minFilter=xs,u.needsUpdate=!0;const h=new nL({map:u}),f=new rL(h);return this.lineCount=l.length,this.setLabelSize(f,null,o.width),{sprite:f,heightValue:o.height,line:null,lineCount:l.length,node:r}}static drawRectangleWithRoundedCorners(e,i,r,o,s,a){o<2*a&&(a=o/2),s<2*a&&(a=s/2),e.beginPath(),e.moveTo(i+a,r),e.arcTo(i+o,r,i+o,r+s,a),e.arcTo(i+o,r+s,i,r+s,a),e.arcTo(i,r+s,i,r,a),e.arcTo(i,r,i+o,r,a),e.closePath(),e.fill()}setLabelSize(e,i,r=e.material.map.image.width){const o=(new Us).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Ys).center;if(this.threeCameraService.camera){const s=this.threeCameraService.camera.position.distanceTo(o);null!==i&&(this.lineCount=i.lineCount),e.scale.set(s/this.LABEL_WIDTH_DIVISOR*r,this.lineCount>1?s/25:s/this.LABEL_HEIGHT_DIVISOR,1)}}makeLine(e,i,r,o){const s=new xa({color:this.LABEL_COLOR_RGB,linewidth:2}),a=(new gi).setFromPoints([new se(e,r,o),new se(e,i+this.LABEL_HEIGHT_POSITION,o)]);return new wd(a,s)}static{this.\u0275fac=function(i){return new(i||n)(ve(Zr),ve(Mu),ve(Vc),ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VZ=(()=>{class n{constructor(e){this.threeMapControlsService=e,this.eventEmitter=new eN,this.currentlyHovered=null,this.isDragging=!1}init(e,i,r){this.cubeGroup=e,this.camera=i,this.renderer=r,this.initOrbitalControl(i,r),this.initRendererEventListeners(r)}resetIsDragging(){this.isDragging=!1}initOrbitalControl(e,i){this.controls=new rN(e,i.domElement),this.controls.maxPolarAngle=Math.PI/2,this.controls.enableZoom=!1,this.controls.enablePan=!1,this.controls.rotateSpeed=1}initRendererEventListeners(e){e.domElement.addEventListener("mousemove",i=>this.onDocumentMouseMove(i)),e.domElement.addEventListener("mouseup",i=>this.onDocumentMouseUp(i)),e.domElement.addEventListener("mousedown",i=>this.onDocumentMouseClick(i,"mousedown")),e.domElement.addEventListener("dblclick",i=>this.onDocumentMouseClick(i,"dblclick")),e.domElement.addEventListener("mouseleave",i=>this.onWindowMouseLeave(i)),e.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter())}onDocumentMouseClick(e,i){this.isDragging=!0,this.checkMouseIntersection(e,i)}onWindowMouseLeave(e){(null==e.relatedTarget||!(e.relatedTarget instanceof HTMLCanvasElement))&&this.enableRotation(!1)}onDocumentMouseEnter(){this.enableRotation(!0)}enableRotation(e){this.controls.enableRotate=e}checkMouseIntersection(e,i){this.getCubeIntersectedByMouse(e)||this.eventEmitter.emit("viewCubeEventPropagation",{type:i,event:e})}getCubeIntersectedByMouse(e){const i=this.transformIntoCanvasVector(e),r=new ZY;r.setFromCamera(i,this.camera);const o=[];for(const a of yo(this.cubeGroup))No(a)&&o.push(a.data);const[s]=r.intersectObjects(o);return s?s.object:null}transformIntoCanvasVector(e){const{domElement:i}=this.renderer,r=this.renderer.getPixelRatio(),o=i.getBoundingClientRect();return new nt((e.clientX-o.left)/i.width*r*2-1,-(e.clientY-o.top)/i.height*r*2+1)}propagateMovement(){if(this.isDragging){const e=this.camera.position;this.threeMapControlsService.rotateCameraInVectorDirection(-e.x,-e.y,-e.z)}return this.isDragging}onDocumentMouseMove(e){if(this.propagateMovement())return;const i=this.getCubeIntersectedByMouse(e);i?this.currentlyHovered&&i.uuid!==this.currentlyHovered.uuid?this.triggerViewCubeUnhoverEvent():this.currentlyHovered||this.triggerViewCubeHoverEvent(i):(this.currentlyHovered&&this.triggerViewCubeUnhoverEvent(),this.eventEmitter.emit("viewCubeEventPropagation",{type:"mousemove",event:e}))}onDocumentMouseUp(e){this.isDragging=!1;const i=this.getCubeIntersectedByMouse(e);i?this.eventEmitter.emit("viewCubeClicked",{cube:i}):this.eventEmitter.emit("viewCubeEventPropagation",{type:"mouseup",event:e})}triggerViewCubeHoverEvent(e){this.currentlyHovered=e,Zw.changeCursorIndicator(ef.Pointer),this.eventEmitter.emit("viewCubeHoveredEvent",{cube:e})}triggerViewCubeUnhoverEvent(){this.currentlyHovered=null,Zw.changeCursorIndicator(ef.Default),this.eventEmitter.emit("viewCubeUnHoveredEvent")}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var zT=function(n){return n[n.LeftClick=0]="LeftClick",n[n.RightClick=2]="RightClick",n}(zT||{}),ef=function(n){return n.Default="default",n.Grabbing="grabbing",n.Pointer="pointer",n.Moving="move",n}(ef||{});let Zw=(()=>{class n{constructor(e,i,r,o,s,a,l,c,d){this.threeCameraService=e,this.threeRendererService=i,this.threeSceneService=r,this.store=o,this.state=s,this.codeMapLabelService=a,this.viewCubeMouseEvents=l,this.threeViewerService=c,this.idToBuilding=d,this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING=3,this.mouse={x:0,y:0},this.oldMouse={x:0,y:0},this.mouseOnLastClick={x:0,y:0},this.isGrabbing=!1,this.isMoving=!1,this.raycaster=new ZY,this.labelHoveredBuilding=null,this.labelSelectedBuilding=null,this.subscriptions=[this.store.select(au).pipe(Dr(()=>this.onFilesSelectionChanged())).subscribe(),this.store.select(su).pipe(Dr(u=>this.onBlacklistChanged(u))).subscribe(),this.store.select(Yw).pipe(Dr(u=>{null!==u?this.hoverNode(u):this.unhoverNode(!1)})).subscribe()],this.onViewCubeEventPropagation=u=>{switch(u.type){case"mousemove":this.onDocumentMouseMove(u.event);break;case"mouseup":this.onDocumentMouseUp(u.event);break;case"mousedown":this.onDocumentMouseDown(u.event);break;case"dblclick":this.onDocumentDoubleClick()}},this.onDocumentMouseMove=u=>{this.mouse.x=u.clientX,this.mouse.y=u.clientY,this.updateHovering(),this.viewCubeMouseEvents.propagateMovement()}}ngOnDestroy(){for(const e of this.subscriptions)e.unsubscribe()}static changeCursorIndicator(e){document.body.style.cursor=e}start(){this.threeRendererService.renderer.domElement.addEventListener("mousemove",Eu(this.onDocumentMouseMove,1)),this.threeRendererService.renderer.domElement.addEventListener("mouseup",e=>this.onDocumentMouseUp(e)),this.threeRendererService.renderer.domElement.addEventListener("mousedown",e=>this.onDocumentMouseDown(e)),this.threeRendererService.renderer.domElement.addEventListener("dblclick",()=>this.onDocumentDoubleClick()),this.threeRendererService.renderer.domElement.addEventListener("mouseleave",e=>this.onDocumentMouseLeave(e)),this.threeRendererService.renderer.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter()),this.threeRendererService.renderer.domElement.addEventListener("wheel",Eu(()=>this.threeRendererService.render())),this.viewCubeMouseEvents.subscribe("viewCubeEventPropagation",this.onViewCubeEventPropagation)}hoverNode(e){if(this.isGrabbingOrMoving())return;const{buildings:i}=this.threeSceneService.getMapMesh().getMeshDescription();for(const r of i)if(r.node.id===e){this.hoverBuilding(r,!1);break}this.threeRendererService.render()}unhoverNode(e=!0){this.unhoverBuilding(e),this.threeRendererService.render()}onFilesSelectionChanged(){this.threeSceneService.clearSelection(),this.threeSceneService.clearConstantHighlight(),this.clearLabelHoveredBuilding()}onBlacklistChanged(e){const i=this.threeSceneService.getSelectedBuilding();this.clearLabelHoveredBuilding(),i&&function Zbe(n,t){return Ch(n,t,"exclude")||Ch(n,t,"flatten")}(i.node.path,e)&&this.threeSceneService.clearSelection(),this.unhoverBuilding()}updateHovering(){if(this.hasMouseMoved(this.oldMouse)){const e=this.threeSceneService.labels?.children;if(this.isGrabbingOrMoving())return this.threeSceneService.resetLabel(),this.clearLabelHoveredBuilding(),void this.threeRendererService.render();this.oldMouse.x=this.mouse.x,this.oldMouse.y=this.mouse.y;const i=this.threeSceneService.getMapMesh();if(i){this.threeCameraService.camera.updateMatrixWorld(!1);let r="";const o=this.transformHTMLToSceneCoordinates(),s=this.threeCameraService.camera;s.isPerspectiveCamera&&this.raycaster.setFromCamera(o,s);const a=this.calculateHoveredLabel(e);a&&(this.threeSceneService.animateLabel(a.object,this.raycaster,e),r=a.object.userData.node.path),this.intersectedBuilding=""!==r?i.getBuildingByPath(r):i.checkMouseRayMeshIntersection(o,s);const l=this.threeSceneService.getHighlightedBuilding(),c=this.intersectedBuilding;l?.id!==c?.id&&(this.clearLabelHoveredBuilding(),this.threeSceneService.resetLabel(),this.unhoverBuilding(),c&&!this.isGrabbingOrMoving()&&(this.setLabelHoveredLeaf(c,e),this.hoverBuilding(c)))}}}setLabelHoveredLeaf(e,i){if(e?.node?.isLeaf){const r=this.threeSceneService.getLabelForHoveredNode(e,i)??this.drawLabelHoveredBuilding(e);this.threeSceneService.animateLabel(r,this.raycaster,i)}}drawLabelHoveredBuilding(e){this.codeMapLabelService.addLeafLabel(e.node,0,!0);const r=this.threeSceneService.labels?.children,o=this.threeSceneService.getLabelForHoveredNode(e,r);return this.labelHoveredBuilding=e.node,o}drawLabelSelectedBuilding(e){if(this.clearLabelHoveredBuilding(),null!==this.labelSelectedBuilding&&this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),!e.node.isLeaf)return;this.codeMapLabelService.addLeafLabel(e.node,0,!0);const i=this.threeSceneService.labels?.children,r=this.threeSceneService.getLabelForHoveredNode(e,i);return this.threeSceneService.animateLabel(r,this.raycaster,i),this.labelSelectedBuilding=e.node,r}clearLabelHoveredBuilding(){null!==this.labelHoveredBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelHoveredBuilding),this.labelHoveredBuilding=null)}clearLabelSelectedBuilding(){null!==this.labelSelectedBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),this.labelSelectedBuilding=null)}EnableOrbitalsRotation(e){this.threeViewerService.enableRotation(e),this.viewCubeMouseEvents.enableRotation(e)}onDocumentMouseEnter(){this.EnableOrbitalsRotation(!0)}onDocumentMouseLeave(e){e.relatedTarget instanceof HTMLCanvasElement||this.EnableOrbitalsRotation(!1)}onDocumentDoubleClick(){const e=this.threeSceneService.getHighlightedBuilding(),i=this.threeSceneService.getSelectedBuilding(),r=e?.node.link;if(r&&!this.hasMouseMoved(this.mouseOnLastClick)&&window.open(r,"_blank"),i?.node.isLeaf){const o=i.node.link;if(o)return void window.open(o,"_blank")}}onDocumentMouseDown(e){e.button===zT.RightClick&&(this.isMoving=!0,n.changeCursorIndicator(ef.Moving)),e.button===zT.LeftClick&&(this.isGrabbing=!0,n.changeCursorIndicator(ef.Grabbing)),this.mouseOnLastClick={x:e.clientX,y:e.clientY},document.activeElement.blur()}onDocumentMouseUp(e){this.viewCubeMouseEvents.resetIsDragging(),e.button===zT.LeftClick?this.onLeftClick():this.onRightClick(),n.changeCursorIndicator(void 0!==this.intersectedBuilding?ef.Pointer:ef.Default)}calculateHoveredLabel(e){let i=null;for(let r=0;r0&&(i=null===i?o[0]:i.distancethis.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING||Math.abs(this.mouse.y-i)>this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING}hasMouseMoved({x:e,y:i}){return this.mouse.x!==e||this.mouse.y!==i}isGrabbingOrMoving(){return this.isGrabbing||this.isMoving}hoverBuilding(e,i=!0){n.changeCursorIndicator(ef.Pointer);const o=mb(this.state.getValue()).get(e.node.id);for(const{data:s}of yo(o)){const a=this.idToBuilding.get(s.id);a&&this.threeSceneService.addBuildingToHighlightingList(a)}this.threeSceneService.highlightBuildings(),i&&this.store.dispatch(Ab({value:e.node.id}))}transformHTMLToSceneCoordinates(){const{renderer:e,renderer:{domElement:i}}=this.threeRendererService,r=e.getPixelRatio(),o=i.getBoundingClientRect();return{x:this.mouse.x/i.width*r*2-1,y:-(this.mouse.y-o.top)/i.height*r*2+1}}unhoverBuilding(e=!0){this.isGrabbingOrMoving()||n.changeCursorIndicator(ef.Default),this.threeSceneService.getConstantHighlight().size>0?this.threeSceneService.clearHoverHighlight():this.threeSceneService.clearHighlight(),e&&this.store.dispatch(Ab({value:null}))}static{this.\u0275fac=function(i){return new(i||n)(ve(Mu),ve(Ki),ve(Vc),ve($t),ve(Zr),ve(HZ),ve(VZ),ve(UZ),ve(jw))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const YA=()=>new wT({color:16580095}),_b=()=>new wT({color:16580095}),qT=()=>new wT({color:16580095});class Jw{static buildCube(t){const e=1/t,i=(1-e)/2,r=new ac(e,i,i),o=new ac(i,e+i,i),s=new ac(i,i,i),a=new ac(e,e,i),l=new ac(e,e+i,i);return Jw.newBuildCubeGroup(r,o,s,a,l)}static newBuildCubeGroup(t,e,i,r,o){const s=new gl,{group:a,frontLeft:l,frontCenter:c,frontRight:d,middleLeft:u,middleCenter:h,middleRight:f,backLeft:A,backCenter:y,backRight:_}=Jw.buildCubeTopFace(t,i,r);s.add(a);const{group:b,frontLeftEdge:M,frontCenterFace:C,frontRightEdge:E,middleLeftFace:L,middleRightFace:N,backLeftEdge:H,backCenterFace:j,backRightEdge:R}=Jw.buildCubeSides(e,o);return s.add(b),{group:s,top:{front:{left:l,center:c,right:d},middle:{left:u,center:h,right:f},back:{left:A,center:y,right:_}},sides:{front:{left:M,center:C,right:E},middle:{left:L,right:N},back:{left:H,center:j,right:R}}}}static buildCubeTopFace(t,e,i){const r=new ki(e,qT()),o=new ki(t,YA()),s=new ki(e,qT()),a=new ki(t,YA()),l=new ki(i,_b()),c=new ki(t,_b()),d=new ki(e,qT()),u=new ki(t,YA()),h=new ki(e,qT()),f=i.parameters.height/2+e.parameters.height/2;r.position.x-=f,r.position.y-=f,o.position.y-=f,s.position.x+=f,s.position.y-=f,a.position.x-=f,a.rotation.z=Math.PI/2,c.position.x+=f,c.rotation.z=Math.PI/2,d.position.x-=f,d.position.y+=f,u.position.y+=f,h.position.x+=f,h.position.y+=f;const A=new gl;return A.rotation.x=Math.PI/2,A.position.y+=f,A.add(r),A.add(o),A.add(s),A.add(a),A.add(l),A.add(c),A.add(d),A.add(u),A.add(h),{group:A,frontLeft:r,frontCenter:o,frontRight:s,middleLeft:a,middleCenter:l,middleRight:c,backLeft:d,backCenter:u,backRight:h}}static buildCubeSides(t,e){const i=new ki(t,YA()),r=new ki(e,_b()),o=new ki(t,YA()),s=new ki(e,_b()),a=new ki(e,_b()),l=new ki(t,YA()),c=new ki(e,_b()),d=new ki(t,YA()),u=e.parameters.width/2+t.parameters.width/2,h=t.parameters.width/2;i.position.x-=u,i.position.z+=u,r.position.z+=u,o.position.x+=u,o.position.z+=u,s.position.x-=u,s.rotation.y=Math.PI/2,a.position.x+=u,a.rotation.y=Math.PI/2,l.position.x-=u,l.position.z-=u,c.position.z-=u,d.position.x+=u,d.position.z-=u;const f=new gl;return f.position.y-=h,f.add(i),f.add(r),f.add(o),f.add(s),f.add(a),f.add(l),f.add(c),f.add(d),{group:f,frontLeftEdge:i,frontCenterFace:r,frontRightEdge:o,middleLeftFace:s,middleRightFace:a,backLeftEdge:l,backCenterFace:c,backRightEdge:d}}}let O3e=(()=>{class n{constructor(e){this.threeMapControlsService=e}centerMap(){this.threeMapControlsService.autoFitTo()}static{this.\u0275fac=function(i){return new(i||n)($(cc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-center-map-button"]],decls:2,vars:0,consts:[["aria-label","Center map in View","title","Center map",1,"cc-shadow",3,"click"],[1,"fa","fa-compass"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.centerMap()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{position:absolute;right:15px;width:36px;height:36px;font-size:28px;border-radius:100%;color:#fff;background-color:#1b9cfc}button.cc-shadow[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0003!important}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-top:2px}button[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#0374c9}"]})}}return n})(),L3e=(()=>{class n{constructor(e,i){this.threeMapControlsService=e,this.cdr=i}ngOnInit(){this.maxZoom=this.threeMapControlsService.MAX_ZOOM,this.minZoom=this.threeMapControlsService.MIN_ZOOM,this.threeMapControlsService.zoomPercentage$.subscribe(e=>{this.zoomPercentage=e,this.cdr.detectChanges()})}onInput(e){const r=Number.parseFloat(e.target.value);this.threeMapControlsService.setZoomPercentage(r)}zoomIn(){this.threeMapControlsService.setZoomPercentage(Math.min(this.zoomPercentage+10,this.maxZoom))}zoomOut(){this.threeMapControlsService.setZoomPercentage(Math.max(this.zoomPercentage-10,this.minZoom))}static{this.\u0275fac=function(i){return new(i||n)($(cc),$(vo))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-zoom-slider"]],decls:8,vars:4,consts:[[1,"zoom-slider"],["data-testid","zoomOut",1,"zoom-button",3,"click"],["type","range","id","zoomRange","data-testid","zoomRange",3,"input","min","max","value"],["data-testid","zoomIn",1,"zoom-button",3,"click"],["id","zoomValue"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"button",1),ze("click",function(){return r.zoomOut()}),ye(2,"-"),U(),D(3,"input",2),ze("input",function(s){return r.onInput(s)}),U(),D(4,"button",3),ze("click",function(){return r.zoomIn()}),ye(5,"+"),U(),D(6,"span",4),ye(7),U()()),2&i&&(Q(3),_e("min",r.minZoom)("max",r.maxZoom)("value",r.zoomPercentage),Q(4),sn("",null==r.zoomPercentage?null:r.zoomPercentage.toFixed(0),"%"))},styles:['.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active[_ngcontent-%COMP%] .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl][_ngcontent-%COMP%] .cdk-visually-hidden[_ngcontent-%COMP%]{left:auto;right:0}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%] .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:#00000052}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%]{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation[_ngcontent-%COMP%]{transition:none}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-start{}@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:_ngcontent-%COMP%_cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:_ngcontent-%COMP%_cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-focus-indicator[_ngcontent-%COMP%]:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator[_ngcontent-%COMP%]:focus:before{content:""}.cdk-high-contrast-active[_ngcontent-%COMP%]{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator[_ngcontent-%COMP%]:focus:before{content:""}.cdk-high-contrast-active[_ngcontent-%COMP%]{--mat-mdc-focus-indicator-display: block}.mat-app-background[_ngcontent-%COMP%]{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}[_ngcontent-%COMP%]:root{--mat-dialog-container-min-width: 500px;--mat-dialog-actions-alignment: flex-end;--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: #fff;--mat-text-button-horizontal-padding: 8px}[_ngcontent-%COMP%]:root .mat-mdc-checkbox.mat-accent[_ngcontent-%COMP%]{--mdc-checkbox-selected-checkmark-color: #fff !important}[_ngcontent-%COMP%]:root .cdk-overlay-pane.cc-incompatible-maps-dialog[_ngcontent-%COMP%]{--mdc-dialog-supporting-text-color: $cc-font-color}.zoom-slider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;width:150px;position:absolute;top:190px;right:26px;margin:10px}.zoom-slider[_ngcontent-%COMP%] .zoom-button[_ngcontent-%COMP%], .zoom-slider[_ngcontent-%COMP%] #zoomValue[_ngcontent-%COMP%]{font-size:10px;color:#737373}.zoom-slider[_ngcontent-%COMP%] .zoom-button.zoom-button[_ngcontent-%COMP%], .zoom-slider[_ngcontent-%COMP%] #zoomValue.zoom-button[_ngcontent-%COMP%]{background:none;border:none;font-size:16px;cursor:pointer;padding:0;margin:0}input[type=range][_ngcontent-%COMP%]{-webkit-appearance:none;color:#737373;width:100px;height:3px;background:#737373;outline:none;opacity:.7;transition:opacity .2s}input[type=range][_ngcontent-%COMP%]::-webkit-slider-thumb{appearance:none;width:3px;height:10px;background:#737373;cursor:pointer}input[type=range][_ngcontent-%COMP%]::-moz-range-thumb{width:3px;height:10px;background:#737373;cursor:pointer}'],changeDetection:0})}}return n})(),N3e=(()=>{class n{constructor(e,i,r){this.elementReference=e,this.threeMapControlsService=i,this.viewCubeMouseEvents=r,this.WIDTH=200,this.HEIGHT=200,this.LENGTH_VIEWCUBE=1,this.hoverInfo={cube:null,originalMaterial:null},this.cubeDefinition={top:null,sides:null},this.onCameraChanged=o=>{const s=this.calculateCameraPosition(o.camera);this.setCameraPosition(s),this.renderer.render(this.scene,this.camera)},this.onCubeHovered=o=>{this.hoverInfo={cube:o.cube,originalMaterial:o.cube.material},this.hoverInfo.cube.material.emissive=new tn(16777215),this.renderer.render(this.scene,this.camera)},this.onCubeUnhovered=()=>{this.hoverInfo.cube.material.emissive=new tn(0),this.hoverInfo.cube=null,this.renderer.render(this.scene,this.camera)},this.onCubeClicked=o=>{switch(o.cube){case this.cubeDefinition.top.front.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,1);break;case this.cubeDefinition.top.front.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,1);break;case this.cubeDefinition.top.front.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,1);break;case this.cubeDefinition.top.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,0);break;case this.cubeDefinition.top.middle.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,0);break;case this.cubeDefinition.top.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,0);break;case this.cubeDefinition.top.back.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,-1);break;case this.cubeDefinition.top.back.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,-1);break;case this.cubeDefinition.top.back.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,-1);break;case this.cubeDefinition.sides.front.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,-1);break;case this.cubeDefinition.sides.front.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,0,0);break;case this.cubeDefinition.sides.front.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,-1);break;case this.cubeDefinition.sides.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,0);break;case this.cubeDefinition.sides.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,0);break;case this.cubeDefinition.sides.back.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,1);break;case this.cubeDefinition.sides.back.center:this.threeMapControlsService.rotateCameraInVectorDirection(0,0,1);break;case this.cubeDefinition.sides.back.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,1)}}}ngOnInit(){this.initScene(),this.initLights(),this.initRenderer(this.elementReference.nativeElement),this.initCube(),this.initAxesHelper(),this.initCamera(),this.viewCubeMouseEvents.init(this.cubeGroup,this.camera,this.renderer),this.threeMapControlsService.subscribe("onCameraChanged",this.onCameraChanged),this.viewCubeMouseEvents.subscribe("viewCubeHoveredEvent",this.onCubeHovered),this.viewCubeMouseEvents.subscribe("viewCubeUnHoveredEvent",this.onCubeUnhovered),this.viewCubeMouseEvents.subscribe("viewCubeClicked",this.onCubeClicked)}initAxesHelper(){const e=new PDe(1.3),i=-this.LENGTH_VIEWCUBE/2+.01;e.position.x+=i,e.position.y+=i,e.position.z+=i,this.scene.add(e)}initCube(){const{group:e,top:i,sides:r}=Jw.buildCube(1.9);this.cubeGroup=e,this.cubeDefinition.top=i,this.cubeDefinition.sides=r;const o=new kDe(this.cubeGroup,new tn(0));this.scene.add(this.cubeGroup),this.scene.add(o)}setCameraPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix()}calculateCameraPosition(e){const i=this.threeMapControlsService.controls.target.clone();return e.position.clone().sub(i).normalize().multiplyScalar(3)}initScene(){this.scene=new KS}initRenderer(e){this.renderer=new ZO({alpha:!0,antialias:!0}),this.renderer.setSize(this.WIDTH,this.HEIGHT),this.renderer.setPixelRatio(window.devicePixelRatio),e.appendChild(this.renderer.domElement)}initCamera(){this.camera=new Hs(45,this.WIDTH/this.HEIGHT,.1,1e3),this.camera.position.z=4}initLights(){this.lights=new gl;const e=new NL(7368816,2.8),i=new zw(14737632,1.8);i.position.set(50,10,8).normalize();const r=new zw(14737632,1.8);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r),this.scene.add(this.lights)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(cc),$(VZ))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-view-cube"]],decls:2,vars:0,template:function(i,r){1&i&&xe(0,"cc-center-map-button")(1,"cc-zoom-slider")},dependencies:[O3e,L3e],styles:["[_nghost-%COMP%]{transition:right .3s ease;position:absolute;z-index:11;right:0;top:10px}.sideBarVisible[_nghost-%COMP%]{right:350px}"]})}}return n})();const U3e=Kt(oN,n=>n.selectedBuildingId),Um=Kt(U3e,mb,(n,t)=>t?.get(n)),H3e=["tooltip"],zZ=new dt("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),Q3e={provide:zZ,deps:[Ls],useFactory:function V3e(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},q3e=new dt("mat-tooltip-default-options",{providedIn:"root",factory:function z3e(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),qZ="tooltip-panel",GZ=dA({passive:!0});let WZ=(()=>{class n{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=sa(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=sa(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=cm(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=cm(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,r,o,s,a,l,c,d,u,h,f){this._overlay=e,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=o,this._ngZone=s,this._platform=a,this._ariaDescriber=l,this._focusMonitor=c,this._dir=u,this._defaultOptions=h,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=X3e,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new Ln,this._scrollStrategy=d,this._document=f,h&&(this._showDelay=h.showDelay,this._hideDelay=h.hideDelay,h.position&&(this.position=h.position),h.positionAtOrigin&&(this.positionAtOrigin=h.positionAtOrigin),h.touchGestures&&(this.touchGestures=h.touchGestures)),u.change.pipe(oo(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(oo(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,GZ)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const r=this._createOverlay(i);this._detach(),this._portal=this._portal||new H1(this._tooltipComponent,this._viewContainerRef);const o=this._tooltipInstance=r.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(oo(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const o=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&o._origin instanceof Nn)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(oo(this._destroyed)).subscribe(o=>{this._updateCurrentPositionClass(o.connectionPair),this._tooltipInstance&&o.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${qZ}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(oo(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(oo(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(oo(this._destroyed)).subscribe(o=>{this._isTooltipVisible()&&27===o.keyCode&&!Ad(o)&&(o.preventDefault(),o.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,r=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...o.main}),this._addOffset({...r.fallback,...o.fallback})])}_addOffset(e){const r=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=r?-8:8:"end"===e.originX&&(e.offsetX=r?8:-8),e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i||"below"==i?r={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={originX:"end",originY:"center"});const{x:o,y:s}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:o,originY:s}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i?r={overlayX:"center",overlayY:"bottom"}:"below"==i?r={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={overlayX:"start",overlayY:"center"});const{x:o,y:s}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe($o(1),oo(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:r,originY:o}=e;let s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===o?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${qZ}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,r),this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,GZ)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,r=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),("on"===e||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}static{this.\u0275fac=function(i){return new(i||n)($(Ls),$(Nn),$(LW),$(oa),$(In),$(ro),$(bye),$(Th),$(zZ),$(Eh),$(q3e,8),$(Li))}}static{this.\u0275dir=Wt({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[Ct.None,"matTooltipPosition","position"],positionAtOrigin:[Ct.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[Ct.None,"matTooltipDisabled","disabled"],showDelay:[Ct.None,"matTooltipShowDelay","showDelay"],hideDelay:[Ct.None,"matTooltipHideDelay","hideDelay"],touchGestures:[Ct.None,"matTooltipTouchGestures","touchGestures"],message:[Ct.None,"matTooltip","message"],tooltipClass:[Ct.None,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return n})(),X3e=(()=>{class n{constructor(e,i,r){this._changeDetectorRef=e,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Ln,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===r}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,r=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(e?o:r),i.classList.add(e?r:o),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static{this.\u0275fac=function(i){return new(i||n)($(vo),$(Nn),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&ti(H3e,7),2&i){let o;an(o=ln())&&(r._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,r){1&i&&ze("mouseleave",function(s){return r._handleMouseLeave(s)}),2&i&&zi("zoom",r.isVisible()?1:null)},standalone:!0,features:[Nr],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,r){if(1&i){const o=Dn();D(0,"div",1,0),ze("animationend",function(a){return Ot(o),Rt(r._handleAnimationEnd(a))}),D(2,"div",2),ye(3),U()()}2&i&&(Un("mdc-tooltip--multiline",r._isMultiline),_e("ngClass",r.tooltipClass),Q(3),br(r.message))},dependencies:[nu],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - 2*8px);margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - 2*8px);align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}}return n})(),$Z=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Q3e],imports:[PR,mn,q1,fr,fr,U1]})}}return n})();const Hm=Kt(xh,n=>ou(n)),K3e=Kt(Um,n=>{if(n)return{all:n.attributes?.unary??0,added:n.fileCount?.added??0,removed:n.fileCount?.removed??0,changed:n.fileCount?.changed??0}});function Y3e(n,t){if(1&n&&(D(0,"span",2),ye(1," | "),D(2,"span",3),ye(3),U(),ye(4," | "),D(5,"span",4),ye(6),U(),ye(7," | "),D(8,"span",5),ye(9),U()()),2&n){const e=Le();Q(3),sn(" \u0394",e.added,""),Q(3),sn(" \u0394",e.removed>0?-e.removed:0,""),Q(3),sn(" \u0394",e.changed,"")}}function Z3e(n,t){if(1&n&&(D(0,"span",2),ye(1),pt(2,Y3e,10,3,"span",2),qe(3,"async"),ye(4," ) "),U()),2&n){const e=t,i=Le(2);Q(),Jd(" ( ",e.all," ",1===e.all?"file":"files"," "),Q(),Tt(2,null!=i.node.children&&i.node.children.length&&rt(3,3,i.isDeltaMode$)?2:-1)}}function J3e(n,t){if(1&n&&(D(0,"span",1),ye(1),pt(2,Z3e,5,5,"span",2),qe(3,"async"),U()),2&n){let e;const i=Le();Q(),sn(" ",i.node.path," "),Q(),Tt(2,(e=rt(3,2,(null==i.node.children?null:i.node.children.length)&&i.fileCount$))?2:-1,e)}}let eke=(()=>{class n{constructor(e){this.fileCount$=e.select(K3e),this.isDeltaMode$=e.select(Hm)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-node-path"]],inputs:{node:"node"},decls:2,vars:1,consts:[[1,"cc-node-path"],[1,"file-path"],[1,"cc-node-file-count"],["title","Number of added files",1,"added-files"],["title","Number of removed files",1,"removed-files"],["title","Number of files with metric changes",1,"files-with-metric-changes"]],template:function(i,r){1&i&&(D(0,"p",0),pt(1,J3e,4,4,"span",1),U()),2&i&&(Q(),Tt(1,r.node?1:-1))},dependencies:[Kn],styles:[".cc-node-path[_ngcontent-%COMP%]{color:gray;margin:5px 0}.cc-node-path[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{word-wrap:break-word}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%]{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%]{color:#64d051}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%]{color:#ff0e0e}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%]{color:#0e2eff}"]})}}return n})(),sN=(()=>{class n{transform(e){return Lm.withoutCCExtension(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"removeExtension",type:n,pure:!0})}}return n})();function tke(n,t){if(1&n&&(D(0,"div",1)(1,"a",4)(2,"h2"),ye(3),U(),xe(4,"i",5),U()()),2&n){const e=Le(2);Ua("matTooltip",e.node.link),_e("matTooltipShowDelay",200),Q(),Ua("href",e.node.link,Vp),Q(2),sn("",e.node.name,"\xa0")}}function nke(n,t){if(1&n){const e=Dn();D(0,"i",0),ze("click",function(){return Ot(e),Rt(Le().closeSideBar())}),U(),pt(1,tke,5,4,"div",1),D(2,"p",2),ye(3),qe(4,"removeExtension"),U(),xe(5,"cc-node-path",3)}if(2&n){const e=Le();Q(),Tt(1,e.node.link?1:-1),Q(2),br(rt(4,3,e.fileName)),Q(2),_e("node",e.node)}}let ike=(()=>{class n{constructor(e){this.isAttributeSideBarVisibleService=e}closeSideBar(){this.isAttributeSideBarVisibleService.isOpen=!1}static{this.\u0275fac=function(i){return new(i||n)($(VT))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-header-section"]],inputs:{node:"node",fileName:"fileName"},decls:1,vars:1,consts:[[1,"close-icon","fa","fa-times",3,"click"],["data-testid","file-link",1,"node-name",3,"matTooltip","matTooltipShowDelay"],[1,"node-origin"],[3,"node"],["target","_blank","rel","noopener noreferrer",1,"node-link",3,"href"],[1,"fa","fa-external-link"]],template:function(i,r){1&i&&pt(0,nke,6,5),2&i&&Tt(0,r.node?0:-1)},dependencies:[WZ,eke,sN],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%], [_nghost-%COMP%] .node-link[_ngcontent-%COMP%]{color:gray;padding:0;cursor:pointer;outline:none;transition:.2s}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .node-link[_ngcontent-%COMP%]:hover{color:#444}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%]{align-self:flex-end;font-size:20px}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%]{width:90%;cursor:pointer}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%] .node-link[_ngcontent-%COMP%]{font-size:11pt}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%] .node-link[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:#000;display:inline}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%]{color:gray;margin:5px 0}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{word-wrap:break-word}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%]{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%]{color:#64d051}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%]{color:#ff0e0e}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%]{color:#0e2eff}"]})}}return n})();const aN=Kt(Um,n=>n&&!No(n)),bb=Kt(lc,n=>n.areaMetric),tf=Kt(lc,n=>n.edgeMetric),ex=Kt(lc,n=>n.heightMetric),GT=Kt(bb,ex,Nm,tf,(n,t,e,i)=>({areaMetric:n,heightMetric:t,colorMetric:e,edgeMetric:i})),rke=Kt(Um,GT,(n,t)=>{if(n)return{area:{name:t.areaMetric,value:n.attributes[t.areaMetric]},height:{name:t.heightMetric,value:n.attributes[t.heightMetric]},color:{name:t.colorMetric,value:n.attributes[t.colorMetric]},edge:oke(t.edgeMetric,n)}});function oke(n,t){return null==n?null:{name:n,incoming:t.edgeAttributes[n]?t.edgeAttributes[n].incoming??0:0,outgoing:t.edgeAttributes[n]?t.edgeAttributes[n].outgoing??0:0}}const WT=Kt(k1,n=>n.attributeDescriptors);class $T{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new Ln,e&&e.length&&(t?e.forEach(o=>this._markSelected(o)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);const e=this.selected,i=new Set(t);t.forEach(o=>this._markSelected(o)),e.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));const r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();const e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}return t}}let jZ=(()=>{class n{constructor(){this._listeners=[]}notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const lke=["button"],cke=["*"];function dke(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&_e("disabled",Le().disabled)}function uke(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&_e("disabled",Le().disabled)}const XZ=new dt("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function hke(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1}}}),KZ=new dt("MatButtonToggleGroup"),fke={provide:js,useExisting:ei(()=>lN),multi:!0};let YZ=0;class ZZ{constructor(t,e){this.source=t,this.value=e}}let lN=(()=>{class n{get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}get value(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(i=>i.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}get selected(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}constructor(e,i){this._changeDetector=e,this._multiple=!1,this._disabled=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+YZ++,this.valueChange=new Fn,this.change=new Fn,this.appearance=i&&i.appearance?i.appearance:"standard",this.hideSingleSelectionIndicator=i?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=i?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new $T(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked))}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_emitChangeEvent(e){const i=new ZZ(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,r=!1,o=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(e,r)):this._updateModelValue(e,r)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return!(typeof this._rawValue>"u")&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>null!=e.value&&i===e.value):e.value===this._rawValue)}_setSelectionByValue(e){this._rawValue=e,this._buttonToggles&&(this.multiple&&e?(Array.isArray(e),this._clearSelection(),e.forEach(i=>this._selectValue(i))):(this._clearSelection(),this._selectValue(e)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>e.checked=!1)}_selectValue(e){const i=this._buttonToggles.find(r=>null!=r.value&&r.value===e);i&&(i.checked=!0,this._selectionModel.select(i))}_updateModelValue(e,i){i&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static{this.\u0275fac=function(i){return new(i||n)($(vo),$(XZ,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,tx,5),2&i){let s;an(s=ln())&&(r._buttonToggles=s)}},hostAttrs:["role","group",1,"mat-button-toggle-group"],hostVars:5,hostBindings:function(i,r){2&i&&(pi("aria-disabled",r.disabled),Un("mat-button-toggle-vertical",r.vertical)("mat-button-toggle-group-appearance-standard","standard"===r.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[Ct.HasDecoratorInputTransform,"vertical","vertical",Jn],value:"value",multiple:[Ct.HasDecoratorInputTransform,"multiple","multiple",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],hideSingleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Jn],hideMultipleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",Jn]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[ui([fke,{provide:KZ,useExisting:n}]),rs]})}}return n})(),tx=(()=>{class n{get buttonId(){return`${this.id}-button`}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}constructor(e,i,r,o,s,a){this._changeDetectorRef=i,this._elementRef=r,this._focusMonitor=o,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new Fn;const l=Number(s);this.tabIndex=l||0===l?l:null,this.buttonToggleGroup=e,this.appearance=a&&a.appearance?a.appearance:"standard"}ngOnInit(){const e=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+YZ++,e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){const e=!!this._isSingleSelector()||!this._checked;e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.change.emit(new ZZ(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this._isSingleSelector()?this.buttonToggleGroup.name:this.name||null}_isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static{this.\u0275fac=function(i){return new(i||n)($(KZ,8),$(vo),$(Nn),$(Th),zl("tabindex"),$(XZ,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-button-toggle"]],viewQuery:function(i,r){if(1&i&&ti(lke,5),2&i){let o;an(o=ln())&&(r._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:12,hostBindings:function(i,r){1&i&&ze("focus",function(){return r.focus()}),2&i&&(pi("aria-label",null)("aria-labelledby",null)("id",r.id)("name",null),Un("mat-button-toggle-standalone",!r.buttonToggleGroup)("mat-button-toggle-checked",r.checked)("mat-button-toggle-disabled",r.disabled)("mat-button-toggle-appearance-standard","standard"===r.appearance))},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],appearance:"appearance",checked:[Ct.HasDecoratorInputTransform,"checked","checked",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[rs,Nr],ngContentSelectors:cke,decls:8,vars:11,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-label-content"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){if(1&i){const o=Dn();Yr(),D(0,"button",1,0),ze("click",function(){return Ot(o),Rt(r._onButtonClick())}),D(2,"span",2),pt(3,dke,1,1,"mat-pseudo-checkbox",3)(4,uke,1,1,"mat-pseudo-checkbox",3),Vn(5),U()(),xe(6,"span",4)(7,"span",5)}if(2&i){const o=Lo(1);_e("id",r.buttonId)("disabled",r.disabled||null),pi("tabindex",r.disabled?-1:r.tabIndex)("aria-pressed",r.checked)("name",r._getButtonName())("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),Q(3),Tt(3,r.buttonToggleGroup&&r.checked&&!r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),Q(),Tt(4,r.buttonToggleGroup&&r.checked&&r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),Q(3),_e("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)}},dependencies:[Ih,C$],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape);border:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-standard-button-toggle-selected-state-text-color )}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-legacy-button-toggle-selected-state-text-color )}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle .mat-pseudo-checkbox{margin-right:12px}[dir=rtl] .mat-button-toggle .mat-pseudo-checkbox{margin-right:0;margin-left:12px}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-legacy-button-toggle-disabled-state-text-color )}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color);background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font);font-size:var(--mat-standard-button-toggle-label-text-size);line-height:var(--mat-standard-button-toggle-label-text-line-height);font-weight:var(--mat-standard-button-toggle-label-text-weight);letter-spacing:var(--mat-standard-button-toggle-label-text-tracking)}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color);background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-standard-button-toggle-disabled-selected-state-text-color )}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color)}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity)}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity)}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape);border-bottom-right-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape);border-bottom-left-radius:var(--mat-standard-button-toggle-shape)}"],encapsulation:2,changeDetection:0})}}return n})(),JZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,u_,tx,fr]})}}return n})(),cN=(()=>{class n{constructor(e){this.store=e,this.attributeTypes$=this.store.select(WL)}setToAbsolute(){this.setAttributeType(um.absolute)}setToRelative(){this.setAttributeType(um.relative)}setAttributeType(e){this.store.dispatch(LP({category:this.metricType,name:this.metricName,attributeType:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-type-selector"]],inputs:{metricName:"metricName",metricType:"metricType"},decls:6,vars:3,consts:[[3,"value"],["title","Select Sum","value","absolute",3,"click"],["title","Select Median","value","relative",3,"click"]],template:function(i,r){if(1&i&&(D(0,"mat-button-toggle-group",0),qe(1,"async"),D(2,"mat-button-toggle",1),ze("click",function(){return r.setToAbsolute()}),ye(3,"\u03a3"),U(),D(4,"mat-button-toggle",2),ze("click",function(){return r.setToRelative()}),ye(5,"x\u0342"),U()()),2&i){let o;_e("value",null!==(o=rt(1,1,r.attributeTypes$)[r.metricType][r.metricName])&&void 0!==o?o:"absolute")}},dependencies:[lN,tx,Kn],encapsulation:2})}}return n})();function mke(n,t){if(1&n&&(D(0,"span"),qe(1,"async"),ye(2),qe(3,"number"),U()),2&n){const e=t;zi("color",rt(1,3,Le().mapColors$)[e>0?"positiveDelta":"negativeDelta"]),Q(2),sn(" \u0394",Io(3,5,e,"1.1-2")," ")}}let eJ=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.selectedNode$=this.store.select(Um),this.mapColors$=this.store.select(pb)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-delta-selected"]],inputs:{metricName:"metricName"},decls:2,vars:3,consts:[[3,"color"]],template:function(i,r){if(1&i&&(pt(0,mke,4,8,"span",0),qe(1,"async")),2&i){let o;Tt(0,(o=null==(o=rt(1,1,r.selectedNode$))||null==o.deltas?null:o.deltas[r.metricName])?0:-1,o)}},dependencies:[Kn,qy],styles:["[_nghost-%COMP%]:has(span){margin-top:5px}"]})}}return n})();function pke(n,t){1&n&&xe(0,"cc-attribute-type-selector",2),2&n&&_e("metricName",Le().metric.name)("metricType","nodes")}function Ake(n,t){if(1&n&&(D(0,"a",5),ye(1),xe(2,"i",6),U()),2&n){const e=Le();_e("href",t,Vp),Q(),sn(" ",e.metric.name," ")}}function gke(n,t){if(1&n&&(D(0,"span",7),ye(1),U()),2&n){const e=Le();Q(),br(e.metric.name)}}let _ke=(()=>{class n{constructor(e){this.showAttributeTypeSelector$=e.select(aN)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-primary-metric"]],inputs:{iconName:"iconName",metric:"metric",metricLink:"metricLink"},decls:11,vars:11,consts:[[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"primary-metric-value"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(D(0,"div",0)(1,"div",1),xe(2,"i"),pt(3,pke,1,2,"cc-attribute-type-selector",2),qe(4,"async"),D(5,"span",3),ye(6),qe(7,"number"),U()(),xe(8,"cc-metric-delta-selected",4),pt(9,Ake,3,2,"a",5)(10,gke,2,1),U()),2&i){let o;Q(2),cl(r.iconName),Q(),Tt(3,rt(4,6,r.showAttributeTypeSelector$)?3:-1),Q(3),br(Io(7,8,r.metric.value,"1.0-0")),Q(2),_e("metricName",r.metric.name),Q(),Tt(9,(o=r.metricLink)?9:10,o)}},dependencies:[cN,eJ,Kn,qy],styles:[".primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-name[_ngcontent-%COMP%]{margin-top:5px;color:gray;word-break:break-word;vertical-align:middle}.primary-metric-value[_ngcontent-%COMP%]{margin-right:-5px}i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}"]})}}return n})();const vb=new Map([["loc","Lines of Code"],["rloc","Real Lines of Code"],["comment_lines","Number of Code Lines with Comments"],["complexity","Cyclomatic Complexity"],["sonar_complexity","Cyclomatic Complexity"],["mcc","McCabe Complexity"],["avgCommits","Average Number of Commits from this file"],["functions","Number of Functions"],["pairingRate","Pairing Rate of selected building"],["unary","-"],["line_coverage","Number of Code Lines covered by tests"],["sonar_code_smells","Number of Smells Sonar has identified"],["avg_code_churn","Average Number of Lines added or removed from this file"],["number_of_authors","Number of Authors that have edited this file"],["statements","Number of Statements"]]);let jT=(()=>{class n{transform(e,i){if(null==e)return vb.get(i)??"";const r=e.title?`${e.title} (${i})`:`${i}`;let o=e.description?`\n${e.description}`:"";return o+=e.hintHighValue?`\nHigh Values: ${e.hintHighValue}`:"",o+=e.hintLowValue?`\nLow Values: ${e.hintLowValue}`:"",o.length>0?`${r}:${o}`:r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"attributeDescriptorTooltip",type:n,pure:!0})}}return n})();function bke(n,t){1&n&&xe(0,"cc-attribute-type-selector",8),2&n&&_e("metricName",Le().name)("metricType","edges")}function vke(n,t){if(1&n&&(D(0,"a",10),ye(1),xe(2,"i",11),U()),2&n){const e=Le();_e("href",t,Vp),Q(),sn(" ",e.name," (in/out) ")}}function yke(n,t){if(1&n&&(D(0,"span",12),ye(1),U()),2&n){const e=Le();Q(),sn("",e.name," (in/out)")}}function wke(n,t){if(1&n&&(D(0,"td",3),qe(1,"attributeDescriptorTooltip"),D(2,"div",5)(3,"div",6),xe(4,"i",7),pt(5,bke,1,2,"cc-attribute-type-selector",8),qe(6,"async"),D(7,"span",9),ye(8),qe(9,"number"),D(10,"span"),ye(11,"/"),U(),ye(12),qe(13,"number"),U()(),pt(14,vke,3,2,"a",10)(15,yke,2,1),U()()),2&n){let e;const i=t,r=Le(2),o=Le();_e("title",Io(1,5,r[i.name],i.name)),Q(5),Tt(5,rt(6,8,o.showAttributeTypeSelector$)?5:-1),Q(3),sn(" ",Io(9,10,i.incoming,"1.0-0")," "),Q(4),sn(" ",Io(13,13,i.outgoing,"1.0-0")," "),Q(2),Tt(14,(e=null==r[i.name]?null:r[i.name].link)?14:15,e)}}function xke(n,t){1&n&&(D(0,"td")(1,"span",12),ye(2,"No edge metric available"),U()())}function Cke(n,t){if(1&n&&(D(0,"table",1)(1,"th",2),ye(2,"Primary Metrics"),U(),D(3,"tr")(4,"td",3),qe(5,"attributeDescriptorTooltip"),xe(6,"cc-attribute-side-bar-primary-metric",4),U(),D(7,"td",3),qe(8,"attributeDescriptorTooltip"),xe(9,"cc-attribute-side-bar-primary-metric",4),U()(),D(10,"tr")(11,"td",3),qe(12,"attributeDescriptorTooltip"),xe(13,"cc-attribute-side-bar-primary-metric",4),U(),pt(14,wke,16,16,"td",3)(15,xke,3,0),U()()),2&n){let e;const i=t,r=Le();Q(4),_e("title",Io(5,13,r[i.area.name],i.area.name)),Q(2),_e("iconName","fa fa-arrows-alt")("metric",i.area)("metricLink",null==r[i.area.name]?null:r[i.area.name].link),Q(),_e("title",Io(8,16,r[i.height.name],i.height.name)),Q(2),_e("iconName","fa fa-arrows-v")("metric",i.height)("metricLink",null==r[i.height.name]?null:r[i.height.name].link),Q(2),_e("title",Io(12,19,r[i.color.name],i.color.name)),Q(2),_e("iconName","fa fa-paint-brush")("metric",i.color)("metricLink",null==r[i.color.name]?null:r[i.color.name].link),Q(),Tt(14,(e=i.edge)?14:15,e)}}function Mke(n,t){if(1&n&&(D(0,"div",0),pt(1,Cke,16,22,"table",1),qe(2,"async"),U()),2&n){let e;const i=Le();Q(),Tt(1,(e=rt(2,1,i.primaryMetrics$))?1:-1,e)}}let Eke=(()=>{class n{constructor(e){this.store=e,this.primaryMetrics$=this.store.select(rke),this.showAttributeTypeSelector$=this.store.select(aN),this.attributeDescriptors$=this.store.select(WT)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-primary-metrics"]],decls:2,vars:3,consts:[[1,"metric-box"],["aria-hidden","true",1,"primary-metrics"],["scope","col"],[3,"title"],[3,"iconName","metric","metricLink"],[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"fa","fa-exchange"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"text-content"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(pt(0,Mke,3,3,"div",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[cN,_ke,Kn,qy,jT],styles:["[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%], [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active{color:red}.metric-box[_ngcontent-%COMP%]{border-radius:5px;background-color:#f0f0f0;padding:5px}.metric-box.scrollable-content[_ngcontent-%COMP%]{max-height:100%;overflow:auto}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%]{table-layout:fixed;width:100%;border-collapse:collapse}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-left:5px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{padding-left:4px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-box[_ngcontent-%COMP%]{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-row[_ngcontent-%COMP%]{flex-wrap:nowrap}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .metric-name[_ngcontent-%COMP%]{color:gray;word-break:break-word;vertical-align:middle;margin-top:5px}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .delta-value-box[_ngcontent-%COMP%]{vertical-align:middle}.secondary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}"]})}}return n})();const Ske=Kt(Um,n=>!!n?.deltas),Tke=Kt(GT,Um,(n,t)=>{if(!t)return[];const e=Object.values(n);return Object.keys(t.attributes).filter(r=>"unary"!==r&&!e.includes(r)).sort((r,o)=>r.localeCompare(o)).map(r=>({name:r,value:t.attributes[r]}))});function Ike(n,t){1&n&&xe(0,"cc-attribute-type-selector",8),2&n&&_e("metricName",Le().$implicit.name)("metricType","nodes")}function Fke(n,t){if(1&n&&(D(0,"a",12),ye(1),xe(2,"i",13),U()),2&n){const e=Le().$implicit;_e("href",t,Vp),Q(),sn(" ",e.name," ")}}function Dke(n,t){if(1&n&&(D(0,"span",14),ye(1),U()),2&n){const e=Le().$implicit;Q(),br(e.name)}}function kke(n,t){if(1&n&&(D(0,"tr",5),qe(1,"attributeDescriptorTooltip"),D(2,"td",6)(3,"div",7),pt(4,Ike,1,2,"cc-attribute-type-selector",8),qe(5,"async"),D(6,"span",9),ye(7),qe(8,"number"),U()()(),D(9,"td",10),qe(10,"async"),xe(11,"cc-metric-delta-selected",11),U(),D(12,"td"),pt(13,Fke,3,2,"a",12)(14,Dke,2,1),U()()),2&n){let e;const i=t.$implicit,r=Le(),o=Le();_e("title",Io(1,6,r[i.name],i.name)),Q(4),Tt(4,rt(5,9,o.showAttributeTypeSelector$)?4:-1),Q(3),br(Io(8,11,i.value,"1.0-0")),Q(2),_e("hidden",!rt(10,14,o.showDeltaValue$)),Q(2),_e("metricName",i.name),Q(2),Tt(13,(e=null==r[i.name]?null:r[i.name].link)?13:14,e)}}function Bke(n,t){if(1&n&&(D(0,"div",2)(1,"table",3)(2,"tr")(3,"th",4),ye(4,"Secondary Metrics"),U()(),Or(5,kke,15,16,"tr",5,qr),qe(7,"async"),U()()),2&n){const e=Le();Q(5),Lr(rt(7,0,e.secondaryMetrics$))}}let Pke=(()=>{class n{constructor(e){this.store=e,this.secondaryMetrics$=this.store.select(Tke),this.showAttributeTypeSelector$=this.store.select(aN),this.showDeltaValue$=this.store.select(Ske),this.attributeDescriptors$=this.store.select(WT)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar-secondary-metrics"]],decls:4,vars:3,consts:[[1,"secondary-metrics-wrapper"],[1,"metrics-wrapper"],[1,"metric-box","scrollable-content"],["aria-hidden","true",1,"secondary-metrics"],["scope","col","colspan","2"],[3,"title"],[1,"secondary-metric-box"],[1,"secondary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"metric-value"],[1,"delta-value-box",3,"hidden"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(D(0,"div",0)(1,"div",1),pt(2,Bke,8,2,"div",2),qe(3,"async"),U()()),2&i){let o;Q(2),Tt(2,(o=rt(3,1,r.attributeDescriptors$))?2:-1,o)}},dependencies:[cN,eJ,Kn,qy,jT],styles:["[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%], [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active{color:red}.metric-box[_ngcontent-%COMP%]{border-radius:5px;background-color:#f0f0f0;padding:5px}.metric-box.scrollable-content[_ngcontent-%COMP%]{max-height:100%;overflow:auto}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%]{table-layout:fixed;width:100%;border-collapse:collapse}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-left:5px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{padding-left:4px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-box[_ngcontent-%COMP%]{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-row[_ngcontent-%COMP%]{flex-wrap:nowrap}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .metric-name[_ngcontent-%COMP%]{color:gray;word-break:break-word;vertical-align:middle;margin-top:5px}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .delta-value-box[_ngcontent-%COMP%]{vertical-align:middle}.secondary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}",'.secondary-metrics-wrapper[_ngcontent-%COMP%]{position:relative}.secondary-metrics-wrapper[_ngcontent-%COMP%]:after{content:"";clear:both;display:block}.secondary-metrics-wrapper[_ngcontent-%COMP%] .metrics-wrapper[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;padding-top:12px}']})}}return n})(),Rke=(()=>{class n{constructor(e,i){this.isAttributeSideBarVisibleService=e,this.store=i,this.selectedNode$=this.store.select(Um),this.fileName$=this.store.select(Hc).pipe(Qe(r=>r.unifiedFileMeta?.fileName??""))}static{this.\u0275fac=function(i){return new(i||n)($(VT),$($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-attribute-side-bar"]],decls:6,vars:8,consts:[[1,"side-bar-container","cc-shadow"],[3,"node","fileName"]],template:function(i,r){1&i&&(D(0,"div",0),xe(1,"cc-attribute-side-bar-header-section",1),qe(2,"async"),qe(3,"async"),xe(4,"cc-attribute-side-bar-primary-metrics")(5,"cc-attribute-side-bar-secondary-metrics"),U()),2&i&&(Un("expanded",r.isAttributeSideBarVisibleService.isOpen),Q(),_e("node",rt(2,4,r.selectedNode$))("fileName",rt(3,6,r.fileName$)))},dependencies:[ike,Eke,Pke,Kn],styles:['[_nghost-%COMP%] .side-bar-container[_ngcontent-%COMP%]{transition:right .3s ease;width:350px;height:calc(100% - 98px);padding:8px;font-size:11pt;position:absolute;right:-355px;background:#fff}[_nghost-%COMP%] .side-bar-container.expanded[_ngcontent-%COMP%]{display:block;right:0}[_nghost-%COMP%] .side-bar-container.cc-shadow[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0003!important}[_nghost-%COMP%] .side-bar-container[_ngcontent-%COMP%]:before{content:"";height:100%;float:left}']})}}return n})(),Oke=(()=>{class n{constructor(e,i,r,o,s){this.isAttributeSideBarVisibleService=e,this.store=i,this.threeViewerService=r,this.codeMapMouseEventService=o,this.elementReference=s,this.isLoadingFile$=this.store.select(k4),this.restartOnSharpnessModeChangesSubscription=this.store.select(xX).pipe(G1(1),Dr(()=>{this.threeViewerService.restart(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()})).subscribe()}ngAfterViewInit(){this.threeViewerService.init(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()}ngOnDestroy(){this.restartOnSharpnessModeChangesSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(VT),$($t),$(UZ),$(Zw),$(Nn))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-code-map"]],decls:4,vars:6,consts:[["id","codeMap"]],template:function(i,r){1&i&&(D(0,"div",0),qe(1,"async"),xe(2,"cc-view-cube")(3,"cc-attribute-side-bar"),U()),2&i&&(Un("hidden",rt(1,4,r.isLoadingFile$)),Q(2),Un("sideBarVisible",r.isAttributeSideBarVisibleService.isOpen))},dependencies:[N3e,Rke,Kn],styles:["[_nghost-%COMP%] .hidden[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] #codeMap[_ngcontent-%COMP%]{position:fixed;z-index:0;top:98px;left:0;width:100%;height:100%}"]})}}return n})();const tJ=Kt(k1,n=>n.markedPackages),Lke=Kt(tJ,n=>n.reduce((t,{color:e,path:i})=>(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),t[e].push(i),t),{}));function ca(n,t){(function Nke(n){return"string"==typeof n&&-1!==n.indexOf(".")&&1===parseFloat(n)})(n)&&(n="100%");var e=function Uke(n){return"string"==typeof n&&-1!==n.indexOf("%")}(n);return n=360===t?n:Math.min(t,Math.max(0,parseFloat(n))),e&&(n=parseInt(String(n*t),10)/100),Math.abs(n-t)<1e-6?1:n=360===t?(n<0?n%t+t:n%t)/parseFloat(String(t)):n%t/parseFloat(String(t))}function XT(n){return Math.min(1,Math.max(0,n))}function nJ(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function KT(n){return n<=1?"".concat(100*Number(n),"%"):n}function ZA(n){return 1===n.length?"0"+n:String(n)}function iJ(n,t,e){n=ca(n,255),t=ca(t,255),e=ca(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),o=0,s=0,a=(i+r)/2;if(i===r)s=0,o=0;else{var l=i-r;switch(s=a>.5?l/(2-i-r):l/(i+r),i){case n:o=(t-e)/l+(t1&&(e-=1),e<1/6?n+6*e*(t-n):e<.5?t:e<2/3?n+(t-n)*(2/3-e)*6:n}function rJ(n,t,e){n=ca(n,255),t=ca(t,255),e=ca(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),o=0,s=i,a=i-r,l=0===i?0:a/i;if(i===r)o=0;else{switch(i){case n:o=(t-e)/a+(t>16,g:(65280&n)>>8,b:255&n}}(t)),this.originalInput=t;var r=function Gke(n){var t={r:0,g:0,b:0},e=1,i=null,r=null,o=null,s=!1,a=!1;return"string"==typeof n&&(n=function jke(n){if(0===(n=n.trim().toLowerCase()).length)return!1;var t=!1;if(uN[n])n=uN[n],t=!0;else if("transparent"===n)return{r:0,g:0,b:0,a:0,format:"name"};var e=xd.rgb.exec(n);return e?{r:e[1],g:e[2],b:e[3]}:(e=xd.rgba.exec(n))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=xd.hsl.exec(n))?{h:e[1],s:e[2],l:e[3]}:(e=xd.hsla.exec(n))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=xd.hsv.exec(n))?{h:e[1],s:e[2],v:e[3]}:(e=xd.hsva.exec(n))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=xd.hex8.exec(n))?{r:dc(e[1]),g:dc(e[2]),b:dc(e[3]),a:aJ(e[4]),format:t?"name":"hex8"}:(e=xd.hex6.exec(n))?{r:dc(e[1]),g:dc(e[2]),b:dc(e[3]),format:t?"name":"hex"}:(e=xd.hex4.exec(n))?{r:dc(e[1]+e[1]),g:dc(e[2]+e[2]),b:dc(e[3]+e[3]),a:aJ(e[4]+e[4]),format:t?"name":"hex8"}:!!(e=xd.hex3.exec(n))&&{r:dc(e[1]+e[1]),g:dc(e[2]+e[2]),b:dc(e[3]+e[3]),format:t?"name":"hex"}}(n)),"object"==typeof n&&(nf(n.r)&&nf(n.g)&&nf(n.b)?(t=function Hke(n,t,e){return{r:255*ca(n,255),g:255*ca(t,255),b:255*ca(e,255)}}(n.r,n.g,n.b),s=!0,a="%"===String(n.r).substr(-1)?"prgb":"rgb"):nf(n.h)&&nf(n.s)&&nf(n.v)?(i=KT(n.s),r=KT(n.v),t=function Qke(n,t,e){n=6*ca(n,360),t=ca(t,100),e=ca(e,100);var i=Math.floor(n),r=n-i,o=e*(1-t),s=e*(1-r*t),a=e*(1-(1-r)*t),l=i%6;return{r:255*[e,s,o,o,a,e][l],g:255*[a,e,e,s,o,o][l],b:255*[o,o,a,e,e,s][l]}}(n.h,i,r),s=!0,a="hsv"):nf(n.h)&&nf(n.s)&&nf(n.l)&&(i=KT(n.s),o=KT(n.l),t=function Vke(n,t,e){var i,r,o;if(n=ca(n,360),t=ca(t,100),e=ca(e,100),0===t)r=e,o=e,i=e;else{var s=e<.5?e*(1+t):e+t-e*t,a=2*e-s;i=dN(a,s,n+1/3),r=dN(a,s,n),o=dN(a,s,n-1/3)}return{r:255*i,g:255*r,b:255*o}}(n.h,i,o),s=!0,a="hsl"),Object.prototype.hasOwnProperty.call(n,"a")&&(e=n.a)),e=nJ(e),{ok:s,format:n.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:e}}(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(i=e.format)&&void 0!==i?i:r.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return n.prototype.isDark=function(){return this.getBrightness()<128},n.prototype.isLight=function(){return!this.isDark()},n.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},n.prototype.getLuminance=function(){var t=this.toRgb(),o=t.r/255,s=t.g/255,a=t.b/255;return.2126*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.7152*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.0722*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))},n.prototype.getAlpha=function(){return this.a},n.prototype.setAlpha=function(t){return this.a=nJ(t),this.roundA=Math.round(100*this.a)/100,this},n.prototype.isMonochrome=function(){return 0===this.toHsl().s},n.prototype.toHsv=function(){var t=rJ(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},n.prototype.toHsvString=function(){var t=rJ(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),r=Math.round(100*t.v);return 1===this.a?"hsv(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsva(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHsl=function(){var t=iJ(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},n.prototype.toHslString=function(){var t=iJ(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),r=Math.round(100*t.l);return 1===this.a?"hsl(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsla(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHex=function(t){return void 0===t&&(t=!1),oJ(this.r,this.g,this.b,t)},n.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},n.prototype.toHex8=function(t){return void 0===t&&(t=!1),function zke(n,t,e,i,r){var o=[ZA(Math.round(n).toString(16)),ZA(Math.round(t).toString(16)),ZA(Math.round(e).toString(16)),ZA(sJ(i))];return r&&o[0].startsWith(o[0].charAt(1))&&o[1].startsWith(o[1].charAt(1))&&o[2].startsWith(o[2].charAt(1))&&o[3].startsWith(o[3].charAt(1))?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}(this.r,this.g,this.b,this.a,t)},n.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},n.prototype.toHexShortString=function(t){return void 0===t&&(t=!1),1===this.a?this.toHexString(t):this.toHex8String(t)},n.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},n.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb(".concat(t,", ").concat(e,", ").concat(i,")"):"rgba(".concat(t,", ").concat(e,", ").concat(i,", ").concat(this.roundA,")")},n.prototype.toPercentageRgb=function(){var t=function(e){return"".concat(Math.round(100*ca(e,255)),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},n.prototype.toPercentageRgbString=function(){var t=function(e){return Math.round(100*ca(e,255))};return 1===this.a?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},n.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+oJ(this.r,this.g,this.b,!1),e=0,i=Object.entries(uN);e=0&&(t.startsWith("hex")||"name"===t)?"name"===t&&0===this.a?this.toName():this.toRgbString():("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString())},n.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},n.prototype.clone=function(){return new n(this.toString())},n.prototype.lighten=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l+=t/100,e.l=XT(e.l),new n(e)},n.prototype.brighten=function(t){void 0===t&&(t=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-t/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-t/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-t/100*255))),new n(e)},n.prototype.darken=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l-=t/100,e.l=XT(e.l),new n(e)},n.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},n.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},n.prototype.desaturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s-=t/100,e.s=XT(e.s),new n(e)},n.prototype.saturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s+=t/100,e.s=XT(e.s),new n(e)},n.prototype.greyscale=function(){return this.desaturate(100)},n.prototype.spin=function(t){var e=this.toHsl(),i=(e.h+t)%360;return e.h=i<0?360+i:i,new n(e)},n.prototype.mix=function(t,e){void 0===e&&(e=50);var i=this.toRgb(),r=new n(t).toRgb(),o=e/100;return new n({r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a})},n.prototype.analogous=function(t,e){void 0===t&&(t=6),void 0===e&&(e=30);var i=this.toHsl(),r=360/e,o=[this];for(i.h=(i.h-(r*t>>1)+720)%360;--t;)i.h=(i.h+r)%360,o.push(new n(i));return o},n.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new n(t)},n.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var e=this.toHsv(),i=e.h,r=e.s,o=e.v,s=[],a=1/t;t--;)s.push(new n({h:i,s:r,v:o})),o=(o+a)%1;return s},n.prototype.splitcomplement=function(){var t=this.toHsl(),e=t.h;return[this,new n({h:(e+72)%360,s:t.s,l:t.l}),new n({h:(e+216)%360,s:t.s,l:t.l})]},n.prototype.onBackground=function(t){var e=this.toRgb(),i=new n(t).toRgb(),r=e.a+i.a*(1-e.a);return new n({r:(e.r*e.a+i.r*i.a*(1-e.a))/r,g:(e.g*e.a+i.g*i.a*(1-e.a))/r,b:(e.b*e.a+i.b*i.a*(1-e.a))/r,a:r})},n.prototype.triad=function(){return this.polyad(3)},n.prototype.tetrad=function(){return this.polyad(4)},n.prototype.polyad=function(t){for(var e=this.toHsl(),i=e.h,r=[this],o=360/t,s=1;s{class n{constructor(){this.white="transparent",this.size=8,this.grey="rgba(0,0,0,.08)"}ngOnInit(){const e=function Zke(n,t,e){const i=`${n}-${t}-${e}`;if(mN[i])return mN[i];const r=function Yke(n,t,e){if(typeof document>"u")return null;const i=document.createElement("canvas");i.width=2*e,i.height=2*e;const r=i.getContext("2d");return r?(r.fillStyle=n,r.fillRect(0,0,i.width,i.height),r.fillStyle=t,r.fillRect(0,0,e,e),r.translate(e,e),r.fillRect(0,0,e,e),i.toDataURL()):null}(n,t,e);return r?(mN[i]=r,r):null}(this.white,this.grey,this.size);this.gridStyles={borderRadius:this.borderRadius,boxShadow:this.boxShadow,background:`url(${e}) center left`}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-checkboard"]],inputs:{white:"white",size:"size",grey:"grey",boxShadow:"boxShadow",borderRadius:"borderRadius"},decls:1,vars:1,consts:[[1,"grid",3,"ngStyle"]],template:function(e,i){1&e&&xe(0,"div",0),2&e&&_e("ngStyle",i.gridStyles)},dependencies:[G0],styles:[".grid[_ngcontent-%COMP%]{top:0px;right:0px;bottom:0px;left:0px;position:absolute}"],changeDetection:0}),n})(),cJ=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn]]}),n})(),pN=(()=>{class n{constructor(e){this.el=e,this.coordinatesChange=new Ln,this.mousechange=new Ln,this.mouseListening=!1}mousemove(e,i,r,o=!1){this.mouseListening&&(e.preventDefault(),this.mousechange.next({$event:e,x:i,y:r,isTouch:o}))}mouseup(){this.mouseListening=!1}mousedown(e,i,r,o=!1){e.preventDefault(),this.mouseListening=!0,this.mousechange.next({$event:e,x:i,y:r,isTouch:o})}ngOnInit(){this.sub=this.mousechange.pipe(d1((e,i)=>e.x===i.x&&e.y===i.y)).subscribe(e=>this.handleChange(e.x,e.y,e.$event,e.isTouch))}ngOnDestroy(){this.sub.unsubscribe()}handleChange(e,i,r,o){const s=this.el.nativeElement.clientWidth,a=this.el.nativeElement.clientHeight,l=e-(this.el.nativeElement.getBoundingClientRect().left+window.pageXOffset);let c=i-this.el.nativeElement.getBoundingClientRect().top;o||(c-=window.pageYOffset),this.coordinatesChange.next({x:e,y:i,top:c,left:l,containerWidth:s,containerHeight:a,$event:r})}}return n.\u0275fac=function(e){return new(e||n)($(Nn))},n.\u0275dir=Wt({type:n,selectors:[["","ngx-color-coordinates",""]],hostBindings:function(e,i){1&e&&ze("mousemove",function(o){return i.mousemove(o,o.pageX,o.pageY)},0,oy)("touchmove",function(o){return i.mousemove(o,o.touches[0].clientX,o.touches[0].clientY,!0)},!1,oy)("mouseup",function(){return i.mouseup()},!1,oy)("touchend",function(){return i.mouseup()},!1,oy)("mousedown",function(o){return i.mousedown(o,o.pageX,o.pageY)})("touchstart",function(o){return i.mousedown(o,o.touches[0].clientX,o.touches[0].clientY,!0)})},outputs:{coordinatesChange:"coordinatesChange"}}),n})(),AN=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({}),n})(),Jke=(()=>{class n{constructor(){this.direction="horizontal",this.onChange=new Fn}ngOnChanges(){"vertical"===this.direction?(this.pointerLeft=0,this.pointerTop=100*this.rgb.a,this.gradient={background:`linear-gradient(to bottom, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`}):(this.gradient={background:`linear-gradient(to right, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`},this.pointerLeft=100*this.rgb.a)}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?0:e>r?1:Math.round(100*e/r)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}else{let l;l=i<0?0:i>o?1:Math.round(100*i/o)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-alpha"]],inputs:{hsl:"hsl",rgb:"rgb",pointer:"pointer",shadow:"shadow",radius:"radius",direction:"direction"},outputs:{onChange:"onChange"},features:[xr],decls:7,vars:15,consts:[[1,"alpha"],[1,"alpha-checkboard"],[1,"alpha-gradient",3,"ngStyle"],["ngx-color-coordinates","",3,"coordinatesChange"],[1,"alpha-pointer"],[1,"alpha-slider",3,"ngStyle"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),xe(2,"color-checkboard"),U(),xe(3,"div",2),D(4,"div",3),ze("coordinatesChange",function(o){return i.handleChange(o)}),D(5,"div",4),xe(6,"div",5),U()()()),2&e&&(zi("border-radius",i.radius),Q(3),zi("box-shadow",i.shadow)("border-radius",i.radius),_e("ngStyle",i.gradient),Q(),hh("alpha-container color-alpha-",i.direction,""),Q(),zi("left",i.pointerLeft,"%")("top",i.pointerTop,"%"),Q(),_e("ngStyle",i.pointer))},dependencies:[lJ,G0,pN],styles:[".alpha[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-checkboard[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.alpha-gradient[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-container[_ngcontent-%COMP%]{position:relative;height:100%;margin:0 3px}.alpha-pointer[_ngcontent-%COMP%]{position:absolute}.alpha-slider[_ngcontent-%COMP%]{width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;margin-top:1px;transform:translate(-2px)}"],changeDetection:0}),n})(),eBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,cJ,AN]]}),n})();function dJ(n){let e=0,i=0;return["r","g","b","a","h","s","l","v"].forEach(r=>{n[r]&&(e+=1,isNaN(n[r])||(i+=1),("s"===r||"l"===r)&&/^\d+%$/.test(n[r])&&(i+=1))}),e===i&&n}function ix(n,t,e){const i=new nx(n.hex?n.hex:n);e&&i.setAlpha(1);const r=i.toHsl(),o=i.toHsv(),s=i.toRgb(),a=i.toHex();return 0===r.s&&(r.h=t||0,o.h=t||0),{hsl:r,hex:"000000"===a&&0===s.a?"transparent":i.toHexString(),rgb:s,hsv:o,oldHue:n.h||t||r.h,source:n.source}}var yb=function(n){return n.HEX="hex",n.HSL="hsl",n.HSV="hsv",n.RGB="rgb",n}(yb||{});let uJ=(()=>{class n{constructor(){this.mode=yb.HEX,this.color={h:250,s:.5,l:.2,a:1},this.colorChange=new Fn,this.onChange=new Fn,this.onChangeComplete=new Fn,this.onSwatchHover=new Fn,this._onChangeCompleteSubscription=new Xn,this._onSwatchHoverSubscription=new Xn}ngOnInit(){this.changes=this.onChange.pipe(n_(100),Dr(e=>{switch(this.onChangeComplete.emit(e),this.mode){case yb.HEX:this.colorChange.emit(e.color.hex);break;case yb.HSL:this.colorChange.emit(e.color.hsl);break;case yb.HSV:this.colorChange.emit(e.color.hsv);break;case yb.RGB:this.colorChange.emit(e.color.rgb);break;default:console.warn(`The mode '${this.mode}' is not supported`)}})).subscribe(),this.setState(ix(this.color,0)),this.currentColor=this.hex}ngOnChanges(){this.setState(ix(this.color,this.oldHue))}ngOnDestroy(){this.changes?.unsubscribe(),this._onChangeCompleteSubscription.unsubscribe(),this._onSwatchHoverSubscription.unsubscribe()}setState(e){this.oldHue=e.oldHue,this.hsl=e.hsl,this.hsv=e.hsv,this.rgb=e.rgb,this.hex=e.hex,this.source=e.source,this.afterValidChange()}handleChange(e,i){if(dJ(e)){const o=ix(e,e.h||this.oldHue,this.disableAlpha);this.setState(o),this.onChange.emit({color:o,$event:i}),this.afterValidChange()}}afterValidChange(){}handleSwatchHover(e,i){if(dJ(e)){const o=ix(e,e.h||this.oldHue);this.setState(o),this.onSwatchHover.emit({color:o,$event:i})}}registerOnChange(e){this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(Dr(i=>e(i.color.hex))).subscribe())}registerOnTouched(e){this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(Dr(()=>e())).subscribe())}setDisabledState(e){}writeValue(e){this.color=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-wrap"]],inputs:{className:"className",mode:"mode",color:"color"},outputs:{colorChange:"colorChange",onChange:"onChange",onChangeComplete:"onChangeComplete",onSwatchHover:"onSwatchHover"},features:[ui([{provide:js,useExisting:ei(()=>n),multi:!0}]),xr],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})(),nBe=0,iBe=(()=>{class n{constructor(){this.placeholder="",this.onChange=new Fn,this.focus=!1,this.uniqueId="editableInput-"+ ++nBe}ngOnInit(){this.wrapStyle=this.style&&this.style.wrap?this.style.wrap:{},this.inputStyle=this.style&&this.style.input?this.style.input:{},this.labelStyle=this.style&&this.style.label?this.style.label:{},this.dragLabel&&(this.labelStyle.cursor="ew-resize")}handleFocus(e){this.focus=!0}handleFocusOut(e){this.focus=!1,this.currentValue=this.blurValue}handleKeydown(e){const i=String(e.target.value),r=i.indexOf("%")>-1,o=Number(i.replace(/%/g,""));if(isNaN(o))return;const s=this.arrowOffset||1;38===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o+s},$event:e}:{data:o+s,$event:e}),this.currentValue=r?`${o+s}%`:o+s),40===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o-s},$event:e}:{data:o-s,$event:e}),this.currentValue=r?o-s+"%":o-s)}handleKeyup(e){40===e.keyCode||38===e.keyCode||`${this.currentValue}`!==e.target.value&&this.onChange.emit(this.label?{data:{[this.label]:e.target.value},$event:e}:{data:e.target.value,$event:e})}ngOnChanges(){this.focus||(this.currentValue=String(this.value).toUpperCase()),this.blurValue=String(this.value).toUpperCase()}ngOnDestroy(){this.unsubscribe()}subscribe(){this.mousemove=o_(document,"mousemove").subscribe(e=>this.handleDrag(e)),this.mouseup=o_(document,"mouseup").subscribe(()=>this.unsubscribe())}unsubscribe(){this.mousemove&&this.mousemove.unsubscribe(),this.mouseup&&this.mouseup.unsubscribe()}handleMousedown(e){this.dragLabel&&(e.preventDefault(),this.handleDrag(e),this.subscribe())}handleDrag(e){if(this.dragLabel){const i=Math.round(this.value+e.movementX);i>=0&&i<=this.dragMax&&this.onChange.emit({data:{[this.label]:i},$event:e})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-editable-input"]],inputs:{style:"style",label:"label",value:"value",arrowOffset:"arrowOffset",dragLabel:"dragLabel",dragMax:"dragMax",placeholder:"placeholder"},outputs:{onChange:"onChange"},features:[xr],decls:3,vars:6,consts:[[1,"wrap",3,"ngStyle"],["spellCheck","false",3,"keydown","keyup","focus","focusout","ngStyle","value","placeholder"],[3,"id","ngStyle","mousedown",4,"ngIf"],[3,"mousedown","id","ngStyle"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"input",1),ze("keydown",function(o){return i.handleKeydown(o)})("keyup",function(o){return i.handleKeyup(o)})("focus",function(o){return i.handleFocus(o)})("focusout",function(o){return i.handleFocusOut(o)}),U(),pt(2,Xke,2,3,"span",2),U()),2&e&&(_e("ngStyle",i.wrapStyle),Q(),_e("ngStyle",i.inputStyle)("value",i.currentValue)("placeholder",i.placeholder),pi("aria-labelledby",i.uniqueId),Q(),_e("ngIf",i.label))},dependencies:[G0,eA],styles:["[_nghost-%COMP%]{display:flex}.wrap[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),n})(),rBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn]]}),n})(),oBe=(()=>{class n{constructor(){this.hidePointer=!1,this.direction="horizontal",this.onChange=new Fn,this.left="0px",this.top=""}ngOnChanges(){"horizontal"===this.direction?this.left=100*this.hsl.h/360+"%":this.top=-100*this.hsl.h/360+100+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?359:e>r?0:360*(-100*e/r+100)/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}else{let l;l=i<0?0:i>o?359:100*i/o*360/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-hue"]],inputs:{hsl:"hsl",pointer:"pointer",radius:"radius",shadow:"shadow",hidePointer:"hidePointer",direction:"direction"},outputs:{onChange:"onChange"},features:[xr],decls:3,vars:8,consts:[["ngx-color-coordinates","",1,"color-hue-container",3,"coordinatesChange"],["class","color-hue-pointer",3,"left","top",4,"ngIf"],[1,"color-hue-pointer"],[1,"color-hue-slider",3,"ngStyle"]],template:function(e,i){1&e&&(D(0,"div")(1,"div",0),ze("coordinatesChange",function(o){return i.handleChange(o)}),pt(2,Kke,2,5,"div",1),U()()),2&e&&(hh("color-hue color-hue-",i.direction,""),zi("border-radius",i.radius,"px")("box-shadow",i.shadow),Q(2),_e("ngIf",!i.hidePointer))},dependencies:[pN,eA,G0],styles:[".color-hue[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.color-hue-container[_ngcontent-%COMP%]{margin:0 2px;position:relative;height:100%}.color-hue-pointer[_ngcontent-%COMP%]{position:absolute}.color-hue-slider[_ngcontent-%COMP%]{margin-top:1px;width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;transform:translate(-2px)}.color-hue-horizontal[_ngcontent-%COMP%]{background:linear-gradient(to right,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}.color-hue-vertical[_ngcontent-%COMP%]{background:linear-gradient(to top,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}"],changeDetection:0}),n})(),sBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,AN]]}),n})(),aBe=(()=>{class n{constructor(){this.onChange=new Fn}ngOnChanges(){this.background=`hsl(${this.hsl.h}, 100%, 50%)`,this.pointerTop=-100*this.hsv.v+1+100+"%",this.pointerLeft=100*this.hsv.s+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){i<0?i=0:i>o?i=o:e<0?e=0:e>r&&(e=r);let l=-e/r+1;l=l>0?l:0,l=l>1?1:l,this.onChange.emit({data:{h:this.hsl.h,s:i/o,v:l,a:this.hsl.a,source:"hsva"},$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-saturation"]],inputs:{hsl:"hsl",hsv:"hsv",radius:"radius",pointer:"pointer",circle:"circle"},outputs:{onChange:"onChange"},features:[xr],decls:5,vars:8,consts:[["ngx-color-coordinates","",1,"color-saturation",3,"coordinatesChange"],[1,"saturation-white"],[1,"saturation-black"],[1,"saturation-pointer",3,"ngStyle"],[1,"saturation-circle",3,"ngStyle"]],template:function(e,i){1&e&&(D(0,"div",0),ze("coordinatesChange",function(o){return i.handleChange(o)}),D(1,"div",1),xe(2,"div",2),D(3,"div",3),xe(4,"div",4),U()()()),2&e&&(zi("background",i.background),Q(3),zi("top",i.pointerTop)("left",i.pointerLeft),_e("ngStyle",i.pointer),Q(),_e("ngStyle",i.circle))},dependencies:[pN,G0],styles:[".saturation-white[_ngcontent-%COMP%]{background:linear-gradient(to right,#fff,rgba(255,255,255,0));position:absolute;top:0;bottom:0;left:0;right:0}.saturation-black[_ngcontent-%COMP%]{background:linear-gradient(to top,#000,rgba(0,0,0,0));position:absolute;top:0;bottom:0;left:0;right:0}.color-saturation[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.saturation-pointer[_ngcontent-%COMP%]{position:absolute;cursor:default}.saturation-circle[_ngcontent-%COMP%]{width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;cursor:hand;transform:translate(-2px,-4px)}"],changeDetection:0}),n})(),lBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,AN]]}),n})();const rf=(n,t)=>({input:n,label:t});function cBe(n,t){if(1&n){const e=Dn();D(0,"div",11)(1,"color-editable-input",12),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()()}if(2&n){const e=Le();Q(),Rs(ul(3,rf,e.input,e.label)),_e("value",e.hex)}}function dBe(n,t){if(1&n){const e=Dn();D(0,"color-editable-input",17),ze("onChange",function(r){return Ot(e),Rt(Le(2).handleChange(r))}),U()}if(2&n){const e=Le(2);Rs(ul(4,rf,e.input,e.label)),_e("value",e.rgb.a)("arrowOffset",.01)}}function uBe(n,t){if(1&n){const e=Dn();D(0,"div",11)(1,"color-editable-input",13),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(2,"div",11)(3,"color-editable-input",14),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(4,"div",11)(5,"color-editable-input",15),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(6,"div",11),pt(7,dBe,1,7,"color-editable-input",16),U()}if(2&n){const e=Le();Q(),Rs(ul(10,rf,e.input,e.label)),_e("value",e.rgb.r),Q(2),Rs(ul(13,rf,e.input,e.label)),_e("value",e.rgb.g),Q(2),Rs(ul(16,rf,e.input,e.label)),_e("value",e.rgb.b),Q(2),_e("ngIf",!e.disableAlpha)}}function hBe(n,t){if(1&n){const e=Dn();D(0,"color-editable-input",17),ze("onChange",function(r){return Ot(e),Rt(Le(2).handleChange(r))}),U()}if(2&n){const e=Le(2);Rs(ul(4,rf,e.input,e.label)),_e("value",e.hsl.a)("arrowOffset",.01)}}function fBe(n,t){if(1&n){const e=Dn();D(0,"div",11)(1,"color-editable-input",18),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(2,"div",11)(3,"color-editable-input",19),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(4,"div",11)(5,"color-editable-input",20),ze("onChange",function(r){return Ot(e),Rt(Le().handleChange(r))}),U()(),D(6,"div",11),pt(7,hBe,1,7,"color-editable-input",16),U()}if(2&n){const e=Le();Q(),Rs(ul(10,rf,e.input,e.label)),_e("value",e.round(e.hsl.h)),Q(2),Rs(ul(13,rf,e.input,e.label)),_e("value",e.round(100*e.hsl.s)+"%"),Q(2),Rs(ul(16,rf,e.input,e.label)),_e("value",e.round(100*e.hsl.l)+"%"),Q(2),_e("ngIf",!e.disableAlpha)}}function mBe(n,t){if(1&n){const e=Dn();D(0,"div",12)(1,"color-alpha",13),ze("onChange",function(r){return Ot(e),Rt(Le().handleValueChange(r))}),U()()}if(2&n){const e=Le();Q(),_e("radius",2)("rgb",e.rgb)("hsl",e.hsl)("pointer",e.pointer)}}let pBe=(()=>{class n{constructor(){this.onChange=new Fn,this.view="",this.input={fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px","text-align":"center"},this.label={"text-transform":"uppercase",fontSize:"11px","line-height":"11px",color:"#969696","text-align":"center",display:"block",marginTop:"12px"}}ngOnInit(){1===this.hsl.a&&"hex"!==this.view?this.view="hex":"rgb"!==this.view&&"hsl"!==this.view&&(this.view="rgb")}toggleViews(){"hex"===this.view?this.view="rgb":"rgb"===this.view?this.view="hsl":"hsl"===this.view&&(this.view=1===this.hsl.a?"hex":"rgb")}round(e){return Math.round(e)}handleChange({data:e,$event:i}){if(e.hex){if(function tBe(n){return new nx(n).isValid}(e.hex)){const r=new nx(e.hex);this.onChange.emit({data:{hex:this.disableAlpha?r.toHex():r.toHex8(),source:"hex"},$event:i})}}else if(e.r||e.g||e.b)this.onChange.emit({data:{r:e.r||this.rgb.r,g:e.g||this.rgb.g,b:e.b||this.rgb.b,source:"rgb"},$event:i});else if(e.a)e.a<0?e.a=0:e.a>1&&(e.a=1),this.disableAlpha&&(e.a=1),this.onChange.emit({data:{h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},$event:i});else if(e.h||e.s||e.l){const r=e.s&&e.s.replace("%",""),o=e.l&&e.l.replace("%","");this.onChange.emit({data:{h:e.h||this.hsl.h,s:Number(r||this.hsl.s),l:Number(o||this.hsl.l),source:"hsl"},$event:i})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-chrome-fields"]],inputs:{disableAlpha:"disableAlpha",hsl:"hsl",rgb:"rgb",hex:"hex"},outputs:{onChange:"onChange"},decls:13,vars:3,consts:[["icon",""],["iconUp",""],["iconDown",""],[1,"chrome-wrap"],[1,"chrome-fields"],[3,"ngIf"],[1,"chrome-toggle"],[1,"chrome-icon",3,"click"],["viewBox","0 0 24 24",1,"chrome-toggle-svg"],["fill","#333","d","M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"],["fill","#333","d","M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"],[1,"chrome-field"],["label","hex",3,"onChange","value"],["label","r",3,"onChange","value"],["label","g",3,"onChange","value"],["label","b",3,"onChange","value"],["label","a",3,"style","value","arrowOffset","onChange",4,"ngIf"],["label","a",3,"onChange","value","arrowOffset"],["label","h",3,"onChange","value"],["label","s",3,"onChange","value"],["label","l",3,"onChange","value"]],template:function(e,i){if(1&e){const r=Dn();D(0,"div",3)(1,"div",4),pt(2,cBe,2,6,"ng-template",5)(3,uBe,8,19,"ng-template",5)(4,fBe,8,19,"ng-template",5),U(),D(5,"div",6)(6,"div",7,0),ze("click",function(){return Ot(r),Rt(i.toggleViews())}),Ul(),D(8,"svg",8),xe(9,"path",9,1)(11,"path",10,2),U()()()()}2&e&&(Q(2),_e("ngIf","hex"===i.view),Q(),_e("ngIf","rgb"===i.view),Q(),_e("ngIf","hsl"===i.view))},dependencies:[iBe,eA],styles:[".chrome-wrap[_ngcontent-%COMP%]{padding-top:16px;display:flex}.chrome-fields[_ngcontent-%COMP%]{flex:1;display:flex;margin-left:-6px}.chrome-field[_ngcontent-%COMP%]{padding-left:6px;width:100%}.chrome-toggle[_ngcontent-%COMP%]{width:32px;text-align:right;position:relative}.chrome-icon[_ngcontent-%COMP%]{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative}.chrome-toggle-svg[_ngcontent-%COMP%]{width:24px;height:24px;border:1px transparent solid;border-radius:5px}.chrome-toggle-svg[_ngcontent-%COMP%]:hover{background:#eee}"],changeDetection:0}),n})(),ABe=(()=>{class n extends uJ{constructor(){super(),this.disableAlpha=!1,this.circle={width:"12px",height:"12px",borderRadius:"6px",boxShadow:"rgb(255, 255, 255) 0px 0px 0px 1px inset",transform:"translate(-6px, -8px)"},this.pointer={width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -2px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}afterValidChange(){this.activeBackground=`rgba(${this.rgb.r}, ${this.rgb.g}, ${this.rgb.b}, ${this.disableAlpha?1:this.rgb.a})`}handleValueChange({data:e,$event:i}){this.handleChange(e,i)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=bt({type:n,selectors:[["color-chrome"]],inputs:{disableAlpha:"disableAlpha"},features:[ui([{provide:js,useExisting:ei(()=>n),multi:!0},{provide:uJ,useExisting:ei(()=>n)}]),yi],decls:14,vars:16,consts:[[1,"saturation"],[3,"onChange","hsl","hsv","circle"],[1,"chrome-body"],[1,"chrome-controls"],[1,"chrome-color"],[1,"chrome-swatch"],[1,"chrome-active"],[1,"chrome-toggles"],[1,"chrome-hue"],[3,"onChange","radius","hsl","pointer"],["class","chrome-alpha",4,"ngIf"],[3,"onChange","rgb","hsl","hex","disableAlpha"],[1,"chrome-alpha"],[3,"onChange","radius","rgb","hsl","pointer"]],template:function(e,i){1&e&&(D(0,"div")(1,"div",0)(2,"color-saturation",1),ze("onChange",function(o){return i.handleValueChange(o)}),U()(),D(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),xe(7,"div",6)(8,"color-checkboard"),U()(),D(9,"div",7)(10,"div",8)(11,"color-hue",9),ze("onChange",function(o){return i.handleValueChange(o)}),U()(),pt(12,mBe,2,4,"div",10),U()(),D(13,"color-chrome-fields",11),ze("onChange",function(o){return i.handleValueChange(o)}),U()()()),2&e&&(hh("chrome-picker ",i.className,""),Q(2),_e("hsl",i.hsl)("hsv",i.hsv)("circle",i.circle),Q(5),zi("background",i.activeBackground),Q(4),_e("radius",2)("hsl",i.hsl)("pointer",i.pointer),Q(),_e("ngIf",!i.disableAlpha),Q(),_e("rgb",i.rgb)("hsl",i.hsl)("hex",i.hex)("disableAlpha",i.disableAlpha))},dependencies:()=>[aBe,lJ,oBe,Jke,pBe,eA],styles:['.chrome-picker[_ngcontent-%COMP%]{background:#fff;border-radius:2px;box-shadow:0 0 2px #0000004d,0 4px 8px #0000004d;box-sizing:initial;width:225px;font-family:"Menlo"}.chrome-controls[_ngcontent-%COMP%]{display:flex}.chrome-color[_ngcontent-%COMP%]{width:42px}.chrome-body[_ngcontent-%COMP%]{padding:14px 14px 12px}.chrome-active[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;border-radius:20px;box-shadow:inset 0 0 0 1px #0000001a;z-index:2}.chrome-swatch[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:15px;position:relative;overflow:hidden}.saturation[_ngcontent-%COMP%]{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.chrome-toggles[_ngcontent-%COMP%]{flex:1}.chrome-hue[_ngcontent-%COMP%]{height:10px;position:relative;margin-bottom:8px}.chrome-alpha[_ngcontent-%COMP%]{height:10px;position:relative}'],changeDetection:0}),n})(),gBe=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=kt({type:n}),n.\u0275inj=It({imports:[[mn,eBe,cJ,rBe,sBe,lBe]]}),n})();function hJ(n,t){return t?e=>k2(t.pipe($o(1),_G()),e.pipe(hJ(n))):Jf((e,i)=>ls(n(e,i)).pipe($o(1),function _Be(n){return Qe(()=>n)}(e)))}function fJ(n,t=t_){const e=mR(n,t);return hJ(()=>e)}const bBe=["mat-menu-item",""],vBe=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],yBe=["mat-icon, [matMenuItemIcon]","*"];function wBe(n,t){1&n&&(Ul(),D(0,"svg",2),xe(1,"polygon",3),U())}const xBe=["*"];function CBe(n,t){if(1&n){const e=Dn();D(0,"div",0),ze("keydown",function(r){return Ot(e),Rt(Le()._handleKeydown(r))})("click",function(){return Ot(e),Rt(Le().closed.emit("click"))})("@transformMenu.start",function(r){return Ot(e),Rt(Le()._onAnimationStart(r))})("@transformMenu.done",function(r){return Ot(e),Rt(Le()._onAnimationDone(r))}),D(1,"div",1),Vn(2),U()()}if(2&n){const e=Le();_e("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),pi("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const gN=new dt("MAT_MENU_PANEL");let YT=(()=>{class n{constructor(e,i,r,o,s){this._elementRef=e,this._document=i,this._focusMonitor=r,this._parentMenu=o,this._changeDetectorRef=s,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new Ln,this._focused=new Ln,this._highlighted=!1,this._triggersSubmenu=!1,o?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",Fc("120ms cubic-bezier(0, 0, 0.2, 1)",jo({opacity:1,transform:"scale(1)"}))),Zl("* => void",Fc("100ms 25ms linear",jo({opacity:0})))]),fadeInItems:Dh("fadeInItems",[Dc("showing",jo({opacity:1})),Zl("void => *",[jo({opacity:0}),Fc("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let EBe=0;const SBe=new dt("mat-menu-default-options",{providedIn:"root",factory:function TBe(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let Su=(()=>{class n{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(r=>{this._classList[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{this._classList[r]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,r,o){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=o,this._elevationPrefix="mat-elevation-z",this._baseElevation=8,this._directDescendantItems=new sh,this._classList={},this._panelAnimationState="void",this._animationDone=new Ln,this.closed=new Fn,this.close=this.closed,this.panelId="mat-menu-panel-"+EBe++,this.overlayPanelClass=r.overlayPanelClass||"",this._xPosition=r.xPosition,this._yPosition=r.yPosition,this.backdropClass=r.backdropClass,this.overlapTrigger=r.overlapTrigger,this.hasBackdrop=r.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new IR(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(gd(this._directDescendantItems),gh(e=>Yl(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const r=e.toArray(),o=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[o]&&!r[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(gd(this._directDescendantItems),gh(i=>Yl(...i.map(r=>r._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,r=this._keyManager;switch(i){case 27:Ad(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&r.setFocusOrigin("keyboard"),void r.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe($o(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const r=this._keyManager;r.setFocusOrigin(e).setFirstItemActive(),!r.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),r=`${this._elevationPrefix}${i}`,o=Object.keys(this._classList).find(s=>s.startsWith(this._elevationPrefix));(!o||o===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[r]=!0,this._previousElevation=r)}setPositionClasses(e=this.xPosition,i=this.yPosition){const r=this._classList;r["mat-menu-before"]="before"===e,r["mat-menu-after"]="after"===e,r["mat-menu-above"]="above"===i,r["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(gd(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(SBe),$(vo))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,MBe,5),Gr(o,YT,5),Gr(o,YT,4)),2&i){let s;an(s=ln())&&(r.lazyContent=s.first),an(s=ln())&&(r._allItems=s),an(s=ln())&&(r.items=s)}},viewQuery:function(i,r){if(1&i&&ti(jl,5),2&i){let o;an(o=ln())&&(r.templateRef=o.first)}},hostVars:3,hostBindings:function(i,r){2&i&&pi("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[Ct.HasDecoratorInputTransform,"overlapTrigger","overlapTrigger",Jn],hasBackdrop:[Ct.HasDecoratorInputTransform,"hasBackdrop","hasBackdrop",e=>null==e?null:Jn(e)],panelClass:[Ct.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[ui([{provide:gN,useExisting:n}]),rs,Nr],ngContentSelectors:xBe,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id","ngClass"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(Yr(),pt(0,CBe,3,6,"ng-template"))},dependencies:[nu],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;padding-right:var(--mat-menu-item-spacing);padding-left:0}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[ZT.transformMenu,ZT.fadeInItems]},changeDetection:0})}}return n})();const mJ=new dt("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition()}}),FBe={provide:mJ,deps:[Ls],useFactory:function IBe(n){return()=>n.scrollStrategies.reposition()}},pJ=dA({passive:!0});let wb=(()=>{class n{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,r,o,s,a,l,c,d){this._overlay=e,this._element=i,this._viewContainerRef=r,this._menuItemInstance=a,this._dir=l,this._focusMonitor=c,this._ngZone=d,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=Xn.EMPTY,this._hoverSubscription=Xn.EMPTY,this._menuCloseSubscription=Xn.EMPTY,this._changeDetectorRef=Qt(vo),this._handleTouchStart=u=>{kR(u)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Fn,this.onMenuOpen=this.menuOpened,this.menuClosed=new Fn,this.onMenuClose=this.menuClosed,this._scrollStrategy=o,this._parentMaterialMenu=s instanceof Su?s:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,pJ)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,pJ),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),r=i.getConfig(),o=r.positionStrategy;this._setPosition(e,o),r.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof Su&&(e._startAnimation(),e._directDescendantItems.changes.pipe(oo(e.close)).subscribe(()=>{o.withLockedPosition(!1).reapplyLastPosition(),o.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof Su?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(qi(r=>"void"===r.toState),$o(1),oo(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,r=e.parentMenu;for(;r;)i++,r=r.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new I2({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(r=>{const o="start"===r.connectionPair.overlayX?"after":"before",s="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(o,s)):e.setPositionClasses(o,s)})}_setPosition(e,i){let[r,o]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[d,u]=[r,o],h=0;if(this.triggersSubmenu()){if(u=r="before"===e.xPosition?"start":"end",o=d="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const f=this._parentMaterialMenu.items.first;this._parentInnerPadding=f?f._getHostElement().offsetTop:0}h="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:r,originY:l,overlayX:d,overlayY:s,offsetY:h},{originX:o,originY:l,overlayX:u,overlayY:s,offsetY:h},{originX:r,originY:c,overlayX:d,overlayY:a,offsetY:-h},{originX:o,originY:c,overlayX:u,overlayY:a,offsetY:-h}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Yl(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:hl(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(qi(s=>s!==this._menuItemInstance),qi(()=>this._menuOpen)):hl(),i)}_handleMousedown(e){DR(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(qi(e=>e===this._menuItemInstance&&!e.disabled),fJ(0,fR)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof Su&&this.menu._isAnimating?this.menu._animationDone.pipe($o(1),fJ(0,fR),oo(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new V1(e.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||n)($(Ls),$(Nn),$(oa),$(mJ),$(gN,8),$(YT,10),$(Eh,8),$(Th),$(In))}}static{this.\u0275dir=Wt({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&ze("click",function(s){return r._handleClick(s)})("mousedown",function(s){return r._handleMousedown(s)})("keydown",function(s){return r._handleKeydown(s)}),2&i&&pi("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[Ct.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[Ct.None,"matMenuTriggerFor","menu"],menuData:[Ct.None,"matMenuTriggerData","menuData"],restoreFocus:[Ct.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}}return n})(),_N=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[FBe],imports:[mn,u_,fr,q1,U1,fr]})}}return n})();const DBe=["colorPickerMenuTrigger"],kBe=(n,t)=>({isOpen:n,isHovered:t});let AJ=(()=>{class n{constructor(){this.openXPosition="after",this.onColorChange=new Fn,this.isHovered=!1,this.isClickInside=!1}handleChangeComplete(e){this.onColorChange.emit(e)}onMouseEnter(){this.isHovered=!0}onMouseLeave(){this.isHovered=!1}onClick(){this.isClickInside=!0,this.colorPickerMenuTrigger.openMenu()}handleDocumentClick(){!this.isClickInside&&this.colorPickerMenuTrigger.menuOpen&&this.colorPickerMenuTrigger.closeMenu(),this.isClickInside=!1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-picker"]],viewQuery:function(i,r){if(1&i&&ti(DBe,5),2&i){let o;an(o=ln())&&(r.colorPickerMenuTrigger=o.first)}},hostBindings:function(i,r){1&i&&ze("mouseenter",function(){return r.onMouseEnter()})("mouseleave",function(){return r.onMouseLeave()})("click",function(){return r.onClick()})("click",function(){return r.handleDocumentClick()},!1,T6)},inputs:{hexColor:"hexColor",openXPosition:"openXPosition",triggerTemplate:"triggerTemplate"},outputs:{onColorChange:"onColorChange"},decls:6,vars:10,consts:[["colorPickerMenuTrigger","matMenuTrigger"],["menu","matMenu"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"matMenuTriggerFor"],[1,"cc-color-picker-menu",3,"xPosition","hasBackdrop"],["role","colorpicker",3,"click","onChangeComplete","disableAlpha","color"]],template:function(i,r){if(1&i){const o=Dn();L0(0,2),xe(1,"span",3,0),D(3,"mat-menu",4,1)(5,"color-chrome",5),ze("click",function(a){return Ot(o),Rt(a.stopPropagation())})("onChangeComplete",function(a){return Ot(o),Rt(r.handleChangeComplete(a.color.hex))}),U()()}if(2&i){const o=Lo(2),s=Lo(4);_e("ngTemplateOutlet",r.triggerTemplate)("ngTemplateOutletContext",ul(7,kBe,o.menuOpen,r.isHovered)),Q(),_e("matMenuTriggerFor",s),Q(2),_e("xPosition",r.openXPosition)("hasBackdrop",!1),Q(2),_e("disableAlpha",!0)("color",r.hexColor)}},dependencies:[zy,ABe,Su,wb],encapsulation:2})}}return n})(),PBe=(()=>{class n{transform(e){return(n=>(299*Number.parseInt(n.slice(1,3),16)+587*Number.parseInt(n.slice(3,5),16)+114*Number.parseInt(n.slice(5,7),16))/1e3>=128?"black":"white")(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"readableColorForBackground",type:n,pure:!0})}}return n})();function RBe(n,t){1&n&&xe(0,"br")}function OBe(n,t){if(1&n&&(D(0,"span"),ye(1),pt(2,RBe,1,0,"br"),U()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;Q(),sn(" ",e," "),Q(),Tt(2,i!==r-1?2:-1)}}function LBe(n,t){if(1&n&&(D(0,"div",2)(1,"div",3),xe(2,"span",4)(3,"span",5),qe(4,"readableColorForBackground"),U(),D(5,"div",6),Or(6,OBe,3,2,"span",null,qr),U()()),2&n){const e=t.isOpen,i=t.isHovered,r=Le();Q(2),zi("background-color",r.hexColor),Q(),zi("color",rt(4,6,r.hexColor))("opacity",i||e?"1":"0"),Q(3),Lr(r.labels)}}let bN=(()=>{class n{constructor(){this.onColorChange=new Fn}handleColorChange(e){this.onColorChange.emit(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-labelled-color-picker"]],inputs:{hexColor:"hexColor",labels:"labels"},outputs:{onColorChange:"onColorChange"},decls:3,vars:3,consts:[["colorPickerTriggerTemplate",""],[3,"onColorChange","hexColor","openXPosition","triggerTemplate"],[1,"cc-labelled-color-picker-container"],[1,"cc-color-swatch-container"],[1,"cc-color-swatch"],[1,"cc-color-brush","fa","fa-paint-brush"],[1,"cc-labelled-color-picker-label"]],template:function(i,r){if(1&i){const o=Dn();D(0,"cc-color-picker",1),ze("onColorChange",function(a){return Ot(o),Rt(r.handleColorChange(a))}),U(),pt(1,LBe,8,8,"ng-template",null,0,jf)}if(2&i){const o=Lo(2);_e("hexColor",r.hexColor)("openXPosition","before")("triggerTemplate",o)}},dependencies:[AJ,PBe],styles:[".cc-labelled-color-picker-container[_ngcontent-%COMP%]{display:flex;height:40px;align-items:center}.cc-labelled-color-picker-container[_ngcontent-%COMP%]:hover{cursor:pointer}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%]{position:relative;margin:0 11px;width:18px;height:18px}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%] .cc-color-swatch[_ngcontent-%COMP%]{display:inline-block;width:inherit;height:inherit;border-radius:2px;border:1px solid black}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%] .cc-color-brush[_ngcontent-%COMP%]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0}.cc-labelled-color-picker-container[_ngcontent-%COMP%] > .cc-labelled-color-picker-label[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;direction:rtl}.cc-labelled-color-picker-container[_ngcontent-%COMP%] > .cc-labelled-color-picker-label[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{unicode-bidi:plaintext}"]})}}return n})();function NBe(n,t){if(1&n){const e=Dn();D(0,"cc-labelled-color-picker",1),ze("onColorChange",function(r){const o=Ot(e).$implicit;return Rt(Le(2).handleColorChange(r,o.value))}),U()}if(2&n){const e=t.$implicit;_e("hexColor",e.key)("labels",e.value)}}function UBe(n,t){if(1&n&&(xe(0,"hr"),Or(1,NBe,1,2,"cc-labelled-color-picker",0,function oH(){return Dt()[bo][Xr]}().trackMarkedPackage,!0),qe(3,"async"),qe(4,"keyvalue")),2&n){const e=Le();Q(),Lr(Io(4,2,rt(3,0,e.markedPackagesMap$),e.sortMarkedPackagesMap))}}let HBe=(()=>{class n{constructor(e){this.store=e,this.markedPackagesMap$=e.select(Lke),this.hasMarkedPackages$=this.markedPackagesMap$.pipe(Qe(i=>Object.keys(i).length>0))}handleColorChange(e,i){this.store.dispatch(I1({packages:i.map(r=>({color:e,path:r}))}))}trackMarkedPackage(e,{value:i}){return i.join(",")}sortMarkedPackagesMap(e,i){return e.value[0].localeCompare(i.value[0])}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-legend-marked-packages"]],decls:2,vars:3,consts:[[3,"hexColor","labels"],[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(pt(0,UBe,5,5),qe(1,"async")),2&i&&Tt(0,rt(1,1,r.hasMarkedPackages$)?0:-1)},dependencies:[bN,Kn,_E],styles:["[_nghost-%COMP%] cc-labelled-color-picker[_ngcontent-%COMP%]{display:block}"]})}}return n})();const gJ=Kt(lc,n=>n.colorRange);let VBe=(()=>{class n{transform(e,i,r,o){switch(e){case"positive":return"unary"===o?`${r.minValue} - ${r.maxValue}`:r.minValue===i.from?"-":r.maxValue===i.from?`${r.minValue} to ${this.formatNumber(i.from)}`:`${r.minValue} to ${this.formatNumber(i.from-1)}`;case"neutral":return i.from===i.to?"-":i.to===r.maxValue?`${this.formatNumber(i.from)} to ${this.formatNumber(i.to)}`:`${this.formatNumber(i.from)} to ${this.formatNumber(i.to-1)}`;case"negative":return r.maxValue===i.to?"-":`${this.formatNumber(i.to)} to ${this.formatNumber(r.maxValue)}`;case"positiveDelta":return"+\u0394 positive delta";case"negativeDelta":return"\u2013\u0394 negative delta";case"selected":return"selected";case"outgoingEdge":return"Outgoing Edge";case"incomingEdge":return"Incoming Edge"}}formatNumber(e){return(e||0).toLocaleString()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"mapColorLabel",type:n,pure:!0})}}return n})();const QBe=n=>[n];let vN=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Nm),this.mapColors$=this.store.select(pb),this.colorRange$=this.store.select(gJ),this.nodeMetricRange$=this.store.select(Jh)}handleColorChange(e){this.store.dispatch(bh({value:{[this.mapColorFor]:e}}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-picker-for-map-color"]],inputs:{mapColorFor:"mapColorFor"},decls:6,vars:17,consts:[[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(D(0,"cc-labelled-color-picker",0),qe(1,"async"),qe(2,"async"),qe(3,"async"),qe(4,"async"),qe(5,"mapColorLabel"),ze("onColorChange",function(s){return r.handleColorChange(s)}),U()),2&i&&_e("hexColor",rt(1,2,r.mapColors$)[r.mapColorFor])("labels",function pV(n,t,e,i){return AV(Dt(),Ws(),n,t,e,i)}(15,QBe,yV(5,10,r.mapColorFor,rt(2,4,r.colorRange$),rt(3,6,r.nodeMetricRange$),rt(4,8,r.colorMetric$))))},dependencies:[bN,Kn,VBe],encapsulation:2})}}return n})();function zBe(n,t){if(1&n&&(D(0,"a",2)(1,"span",3),ye(2),U(),ye(3),xe(4,"i",4),U()),2&n){const e=Le(),i=Le(2);_e("href",t,Vp),Q(2),br(e),Q(),sn(" (",i.metricName,") ")}}function qBe(n,t){if(1&n&&(D(0,"span",3),ye(1),U(),ye(2)),2&n){const e=Le(),i=Le(2);Q(),br(e),Q(),sn(" (",i.metricName,") ")}}function GBe(n,t){if(1&n&&(UM(0,0),D(1,"div",1),qe(2,"attributeDescriptorTooltip"),ye(3),pt(4,zBe,5,3,"a",2)(5,qBe,3,2),U(),HM()),2&n){let e;const i=Le(),r=Le();Q(),_e("title",Io(2,3,i[r.metricName],r.metricName)),Q(2),sn(" ",r.metricSpecification," metric: "),Q(),Tt(4,(e=i[r.metricName].link)?4:5,e)}}function WBe(n,t){if(1&n&&(D(0,"span",3),ye(1),U(),ye(2)),2&n){const e=Le(3);Q(),br(t),Q(),sn(" (",e.metricName,") ")}}function $Be(n,t){if(1&n&&(D(0,"span",3),ye(1),U()),2&n){const e=Le(3);Q(),sn(" ",e.metricName," ")}}function jBe(n,t){if(1&n&&(D(0,"div"),ye(1),pt(2,WBe,3,2)(3,$Be,2,1),U()),2&n){let e;const i=Le(2);Q(),sn(" ",i.metricSpecification," metric: "),Q(),Tt(2,(e=i.fallbackTitles.get(i.metricName))?2:3,e)}}function XBe(n,t){if(1&n&&pt(0,GBe,6,6,"ng-container",0)(1,jBe,4,2),2&n){let e;const i=t,r=Le();Tt(0,(e=null==i[r.metricName]?null:i[r.metricName].title)?0:1,e)}}let KBe=(()=>{class n{constructor(e){this.store=e,this.attributeDescriptors$=this.store.select(WT),this.fallbackTitles=vb}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-legend-block"]],inputs:{metricName:"metricName",metricSpecification:"metricSpecification"},decls:2,vars:3,consts:[[1,"legend-block"],[3,"title"],["target","_blank",3,"href"],[1,"bold"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(pt(0,XBe,2,1),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[Kn,jT],styles:["[_nghost-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none;color:#000}[_nghost-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] a[_ngcontent-%COMP%]:active{color:red}[_nghost-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] span.bold[_ngcontent-%COMP%]{font-weight:600}"]})}}return n})();function YBe(n,t){1&n&&xe(0,"cc-legend-block",5),2&n&&_e("metricName",t)}function ZBe(n,t){if(1&n&&(D(0,"div"),xe(1,"cc-legend-block",3),qe(2,"async"),xe(3,"cc-legend-block",4),qe(4,"async"),pt(5,YBe,1,1,"cc-legend-block",5),qe(6,"async"),xe(7,"hr")(8,"cc-legend-block",6),qe(9,"async"),xe(10,"cc-color-picker-for-map-color",1)(11,"cc-color-picker-for-map-color",1)(12,"cc-color-picker-for-map-color",1),U()),2&n){let e;const i=Le();Q(),_e("metricName",rt(2,7,i.areaMetric$)),Q(2),_e("metricName",rt(4,9,i.heightMetric$)),Q(2),Tt(5,(e=rt(6,11,i.edgeMetric$))?5:-1,e),Q(3),_e("metricName",rt(9,13,i.colorMetric$)),Q(2),_e("mapColorFor","positive"),Q(),_e("mapColorFor","neutral"),Q(),_e("mapColorFor","negative")}}function JBe(n,t){1&n&&(D(0,"div"),xe(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),U()),2&n&&(Q(),_e("mapColorFor","positiveDelta"),Q(),_e("mapColorFor","negativeDelta"))}function ePe(n,t){1&n&&xe(0,"hr")(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),2&n&&(Q(),_e("mapColorFor","outgoingEdge"),Q(),_e("mapColorFor","incomingEdge"))}let tPe=(()=>{class n{constructor(e,i,r){this.store=e,this.isAttributeSideBarVisibleService=i,this.viewReference=r,this.isLegendVisible=!1,this.isDeltaState$=this.store.select(Hm),this.heightMetric$=this.store.select(ex),this.areaMetric$=this.store.select(bb),this.colorMetric$=this.store.select(Nm),this.edgeMetric$=this.store.select(tf)}ngOnInit(){this.mouseDownListener=e=>this.collapseOnOutsideClick(e),document.addEventListener("mousedown",this.mouseDownListener)}ngOnDestroy(){this.mouseDownListener&&document.removeEventListener("mousedown",this.mouseDownListener)}toggleIsLegendVisible(){this.isLegendVisible=!this.isLegendVisible}collapseOnOutsideClick(e){const i=e.target;if(this.isLegendVisible){const r=this.viewReference.element.nativeElement.contains(i),o=document.querySelector(".cdk-overlay-container"),s=!!o&&o.contains(i);!r&&!s&&(this.isLegendVisible=!1)}}static{this.\u0275fac=function(i){return new(i||n)($($t),$(VT),$(oa))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-legend-panel"]],decls:11,vars:14,consts:[["id","legend-panel",1,"block-wrapper"],[3,"mapColorFor"],["mat-button","","id","legend-panel-button",1,"panel-button",3,"click","title"],["metricSpecification","Area",3,"metricName"],["metricSpecification","Height",3,"metricName"],["metricSpecification","Edge",3,"metricName"],["metricSpecification","Color",3,"metricName"]],template:function(i,r){1&i&&(D(0,"div",0),pt(1,ZBe,13,15,"div"),qe(2,"async"),pt(3,JBe,3,2),xe(4,"hr")(5,"cc-color-picker-for-map-color",1),pt(6,ePe,3,2),qe(7,"async"),xe(8,"cc-legend-marked-packages"),U(),D(9,"button",2),ze("click",function(){return r.toggleIsLegendVisible()}),ye(10," LEGEND\n"),U()),2&i&&(Un("visible",r.isLegendVisible)("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),Q(),Tt(1,rt(2,10,r.isDeltaState$)?3:1),Q(4),_e("mapColorFor","selected"),Q(),Tt(6,rt(7,12,r.edgeMetric$)?6:-1),Q(3),Un("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),Ua("title",r.isLegendVisible?"Hide panel":"Show panel"))},dependencies:[cs,HBe,vN,KBe,Kn],styles:["[_nghost-%COMP%] .rotated-button[_ngcontent-%COMP%], [_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]{position:fixed;transform:rotate(90deg);border-radius:0 0 5px 5px;height:36px;right:-35px;color:#fff;-webkit-user-select:none;user-select:none;background-color:#1b9cfc}[_nghost-%COMP%] .rotated-button[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]:hover{background-color:#0374c9}[_nghost-%COMP%] .rotated-button.isAttributeSideBarVisible[_ngcontent-%COMP%], [_nghost-%COMP%] .isAttributeSideBarVisible.panel-button[_ngcontent-%COMP%]{right:316px}[_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]{margin:6px 8px;bottom:55px;width:88px;font-size:10pt;transition:right .3s ease}[_nghost-%COMP%] .block-wrapper[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #cdcdcd;position:fixed;bottom:35px;padding:10px;right:40px;visibility:hidden;border-radius:5px;min-width:200px;max-width:30%;transition:right .3s ease}[_nghost-%COMP%] .block-wrapper.isAttributeSideBarVisible[_ngcontent-%COMP%]{right:390px}[_nghost-%COMP%] .block-wrapper.visible[_ngcontent-%COMP%]{visibility:visible}[_nghost-%COMP%] .block-wrapper[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-right-style:none;border-left-style:none;border-bottom-style:none;color:#000}"]})}}return n})();const nPe=["*"],oPe=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],sPe=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],aPe=new dt("MAT_CARD_CONFIG");let rx=(()=>{class n{constructor(e){this.appearance=e?.appearance||"raised"}static{this.\u0275fac=function(i){return new(i||n)($(aPe,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){2&i&&Un("mat-mdc-card-outlined","outlined"===r.appearance)("mdc-card--outlined","outlined"===r.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],standalone:!0,features:[Nr],ngContentSelectors:nPe,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation)}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}}return n})(),_J=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"],standalone:!0})}}return n})(),bJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],standalone:!0,features:[Nr],ngContentSelectors:sPe,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){1&i&&(Yr(oPe),Vn(0),D(1,"div",0),Vn(2,1),U(),Vn(3,2))},encapsulation:2,changeDetection:0})}}return n})(),vJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,mn,fr]})}}return n})();const yJ=Kt(so,n=>n.isSearchPanelPinned),hPe=["*"];let yN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar-panel-settings"]],ngContentSelectors:hPe,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:6px;position:absolute;left:6px;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}"]})}}return n})();const fPe=["toggle"],mPe=["toggleHeader"],pPe=[[["cc-ribbon-bar-panel-settings"]],[["",8,"toggleheader"]],"*"],APe=["cc-ribbon-bar-panel-settings",".toggleHeader","*"];function gPe(n,t){if(1&n){const e=Dn();D(0,"div",6,0),ze("click",function(){return Ot(e),Rt(Le().toggleSettings())}),Vn(2,1),U()}}function _Pe(n,t){1&n&&(D(0,"div",4),Vn(1,2),U())}function bPe(n,t){1&n&&xe(0,"i"),2&n&&cl("fa fa-angle-"+(Le(2).isExpanded?"up":"down"))}function vPe(n,t){if(1&n){const e=Dn();D(0,"div",7,1),ze("click",function(){return Ot(e),Rt(Le().toggleSettings())}),ye(2),pt(3,bPe,1,2,"i",8),U()}if(2&n){const e=Le();Q(2),sn(" ",e.title," "),Q(),Tt(3,e.hasSettings?3:-1)}}let wN=(()=>{class n{get hasSettings(){return!!this.settingsRef}constructor(e){this.viewReference=e,this.collapseOnPanelClick=!0,this.separator=!1,this.isExpanded=!1,this.isHeaderExpandable=!1,this.isPinned=!1,this.onToggleSettings=new Fn}ngOnInit(){this.mouseDownListener=e=>this.collapseOnOutsideClick(e),document.addEventListener("mousedown",this.mouseDownListener)}ngOnDestroy(){this.mouseDownListener&&document.removeEventListener("mousedown",this.mouseDownListener)}toggleSettings(){this.isExpanded=!this.isExpanded,this.onToggleSettings.emit(this.isExpanded)}collapseOnOutsideClick(e){if(this.isPinned)return;const i=e.target,r=document.querySelector(".cdk-overlay-container"),o=this.viewReference.element.nativeElement.contains(i),s=!!r&&r.contains(i),a=this.settingsRef?.nativeElement?.contains(i)??!1,l=this.toggleSettingsRef.nativeElement.contains(i),c=this.toggleHeaderRef?.nativeElement.contains(i)??!1;!s&&!a&&!l&&!c&&(!o||this.collapseOnPanelClick)&&(this.isExpanded=!1)}static{this.\u0275fac=function(i){return new(i||n)($(oa))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar-panel"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,yN,5,Nn),2&i){let s;an(s=ln())&&(r.settingsRef=s.first)}},viewQuery:function(i,r){if(1&i&&(ti(fPe,5),ti(mPe,5)),2&i){let o;an(o=ln())&&(r.toggleSettingsRef=o.first),an(o=ln())&&(r.toggleHeaderRef=o.first)}},hostVars:6,hostBindings:function(i,r){2&i&&Un("separator",r.separator)("expanded",r.isExpanded)("expandable",r.hasSettings)},inputs:{title:"title",collapseOnPanelClick:"collapseOnPanelClick",separator:"separator",isHeaderExpandable:"isHeaderExpandable",isPinned:"isPinned"},outputs:{onToggleSettings:"onToggleSettings"},ngContentSelectors:APe,decls:6,vars:2,consts:[["toggleHeader",""],["toggle",""],["appearance","outlined"],[1,"section"],[1,"section-header"],[1,"section-title"],[1,"section-header",3,"click"],[1,"section-title",3,"click"],[3,"class"]],template:function(i,r){1&i&&(Yr(pPe),D(0,"mat-card",2)(1,"div",3),pt(2,gPe,3,0,"div",4)(3,_Pe,2,0)(4,vPe,4,2,"div",5),U(),Vn(5),U()),2&i&&(Q(2),Tt(2,r.isHeaderExpandable?2:3),Q(2),Tt(4,r.title||r.hasSettings?4:-1))},dependencies:[rx],styles:["mat-card[_ngcontent-%COMP%]{padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd;flex:1 1 0}[_nghost-%COMP%]:not(.expanded) mat-card[_ngcontent-%COMP%]{overflow:hidden}.section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{margin:0 5px;height:31px;color:#444;overflow:hidden;padding:5px}.section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{font-size:8pt;color:gray;text-align:center;transition:background-color .4s;border-bottom:1px solid transparent;white-space:nowrap;margin:0 5px}.separator[_nghost-%COMP%] .section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.12)}.expandable[_nghost-%COMP%] .section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]:hover{background-color:#e0e0e0;cursor:pointer}"]})}}return n})(),wJ=(()=>{class n{constructor(e){this.store=e,this.searchPanelMode="minimized",this.updateSearchPanelMode=i=>{this.searchPanelMode=this.searchPanelMode===i?"minimized":i,this.panelRef.isExpanded="minimized"!==this.searchPanelMode}}ngOnInit(){this.isSearchPanelPinnedSubscription=this.store.select(yJ).subscribe(e=>{this.isSearchPanelPinned=e})}ngOnDestroy(){this.isSearchPanelPinnedSubscription.unsubscribe()}openSearchPanel(){this.searchPanelMode="treeView",this.panelRef.isExpanded=!0}onToggleSettings(e){this.searchPanelMode=e?"treeView":"minimized"}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-search-panel"]],viewQuery:function(i,r){if(1&i&&ti(wN,5),2&i){let o;an(o=ln())&&(r.panelRef=o.first)}},decls:7,vars:7,consts:[["title","File/Node Explorer",3,"onToggleSettings","isPinned","collapseOnPanelClick"],[3,"click"],[3,"searchPanelMode","updateSearchPanelMode"],[3,"hidden"]],template:function(i,r){1&i&&(D(0,"cc-ribbon-bar-panel",0),ze("onToggleSettings",function(s){return r.onToggleSettings(s)}),D(1,"cc-search-bar",1),ze("click",function(){return r.openSearchPanel()}),U(),xe(2,"cc-search-panel-mode-selector",2),D(3,"cc-ribbon-bar-panel-settings"),xe(4,"cc-blacklist-panel",3)(5,"cc-matching-files-counter",3)(6,"cc-map-tree-view",3),U()()),2&i&&(_e("isPinned",r.isSearchPanelPinned)("collapseOnPanelClick",!1),Q(2),_e("searchPanelMode",r.searchPanelMode)("updateSearchPanelMode",r.updateSearchPanelMode),Q(2),_e("hidden","blacklist"!==r.searchPanelMode),Q(),_e("hidden","treeView"!==r.searchPanelMode),Q(),_e("hidden","treeView"!==r.searchPanelMode))},styles:["cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%]{border-left:none;width:100%}cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%] .section-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:6px;position:absolute;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%] .section-body.hidden[_ngcontent-%COMP%]{display:none;pointer-events:none}"]})}}return n})();function wPe(n=xPe){return fe((t,e)=>{let i=!1;t.subscribe(De(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(n())))})}function xPe(){return new JR}function ox(n,t){const e=arguments.length>=2;return i=>i.pipe(n?qi((r,o)=>n(r,o,i)):ma,$o(1),e?function yPe(n){return fe((t,e)=>{let i=!1;t.subscribe(De(e,r=>{i=!0,e.next(r)},()=>{i||e.next(n),e.complete()}))})}(t):wPe(()=>new JR))}const CPe=wi(1,An(sm,Xi(1))),xN=n=>{const t=Math.floor(n.length/100);return t<=1?1:Math.min(t,10)},JT=Kt(Hc,n=>function Ybe(n){const t=[];if(void 0!==n)for(const{data:e}of yo(n))"Folder"!==e.type&&t.push(e);return t}(n.unifiedMapNode)),ax=hn("SET_AMOUNT_OF_EDGE_PREVIEWS",{_as:"props",_p:void 0}),SPe=wi(1,An(ax,Xi(1))),TPe=wi(4,An(Y0,Xi(4))),nI={x:1,y:1,z:1},IPe=wi(nI,An(Z0,UT(nI))),iI=n=>{const e=Math.round((n.maxValue-n.minValue)/3);return{from:e+n.minValue,to:2*e+n.minValue}},FPe=wi(50,An(e_,Xi(50))),xb=hn("SET_STATE",{_as:"props",_p:void 0});function CN(n){for(const e of Object.keys(n))if("object"==typeof n[e]&&null!==n[e]){const{x:i,y:r,z:o}=n[e];void 0!==i||void 0!==r||void 0!==o?n[e]=new se(i??1,r??1,o??1):CN(n[e])}}const kPe=JSON.parse('[{"name":"Complexity","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"sonar_complexity","colorMetric":"sonar_complexity","distributionMetric":"rloc"}}},{"name":"Average Complexity*","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"unary","heightMetric":"Average Complexity*","colorMetric":"Average Complexity*","distributionMetric":"unary"}}},{"name":"Coverage","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"sonar_complexity","colorMetric":"line_coverage","distributionMetric":"rloc"}}},{"name":"Code Churn","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"abs_code_churn","colorMetric":"weeks_with_commits","distributionMetric":"rloc"}}}]');class sf{static{this.SCENARIOS_LOCAL_STORAGE_VERSION="1.0.0"}static{this.SCENARIOS_LOCAL_STORAGE_ELEMENT="scenarios"}static{this.scenarios=sf.loadScenarios()}static getScenarioItems(t){const e=[];for(const i of this.scenarios.values())e.push({scenarioName:i.name,isScenarioApplicable:this.isScenarioApplicable(i,t),icons:[{faIconClass:"fa-video-camera",isSaved:!!i.camera,tooltip:"Camera angle"},{faIconClass:"fa-arrows-alt",isSaved:!!i.area,tooltip:"Area metric"},{faIconClass:"fa-arrows-v",isSaved:!!i.height,tooltip:"Height metric"},{faIconClass:"fa-paint-brush",isSaved:!!i.color,tooltip:"Color metric"},{faIconClass:"fa-exchange",isSaved:!!i.edge,tooltip:"Edge metric"}]});return e}static isScenarioApplicable(t,e){const{area:i,color:r,height:o,edge:s}=t;if(i||r||o){const a=new Set(e.nodeMetricData.map(l=>l.name));if(i&&!a.has(i.areaMetric)||r&&!a.has(r.colorMetric)||o&&!a.has(o.heightMetric))return!1}return!(s&&!e.edgeMetricData.some(a=>a.name===s.edgeMetric))}static getPreLoadScenarios(){const t=this.importScenarios(kPe),e=new Map;for(const i of t)e.set(i.name,this.transformScenarioAsSettingsToScenario(i));return e}static transformScenarioAsSettingsToScenario(t){const e={name:t.name},{dynamicSettings:i,appSettings:r}=t.settings;return void 0!==i.areaMetric&&(e.area={areaMetric:i.areaMetric,margin:i.margin}),void 0!==i.heightMetric&&(e.height={heightMetric:i.heightMetric,labelSlider:r.amountOfTopLabels,heightSlider:r.scaling}),void 0!==i.colorMetric&&(e.color={colorMetric:i.colorMetric,colorRange:i.colorRange,mapColors:r.mapColors}),void 0!==i.edgeMetric&&(e.edge={edgeMetric:i.edgeMetric,edgeHeight:r.edgeHeight,edgePreview:r.amountOfEdgePreviews}),e}static setScenariosToLocalStorage(t){const e={version:this.SCENARIOS_LOCAL_STORAGE_VERSION,scenarios:[...t]};localStorage.setItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT,JSON.stringify(e))}static loadScenarios(){const t=JSON.parse(localStorage.getItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT));if(t)return new Map(t.scenarios);const e=this.getPreLoadScenarios();return this.setScenariosToLocalStorage(e),e}static addScenario(t,e){const i=sf.createNewScenario(t,e);this.scenarios.set(i.name,i),this.setScenariosToLocalStorage(this.scenarios)}static createNewScenario(t,e){const i={name:t};for(const r of e.filter(o=>o.isSelected))switch(r.metricType){case"Camera-Position":i.camera={camera:r.savedValues.camera,cameraTarget:r.savedValues.cameraTarget};break;case"Area-Metric":i.area={areaMetric:r.metricName,margin:r.savedValues};break;case"Height-Metric":i.height={heightMetric:r.metricName,heightSlider:r.savedValues.heightSlider,labelSlider:r.savedValues.labelSlider};break;case"Color-Metric":i.color={colorMetric:r.metricName,colorRange:r.savedValues.colorRange,mapColors:r.savedValues.mapColors};break;case"Edge-Metric":i.edge={edgeMetric:r.metricName,edgePreview:r.savedValues.edgePreview,edgeHeight:r.savedValues.edgeHeight};break;default:throw new Error(`Unknown metric type "${r.metricType}" detected`)}return i}static deleteScenario(t){this.scenarios.delete(t),this.setScenariosToLocalStorage(this.scenarios)}static getScenarioSettings(t){const e={},i={};return t&&(t.area&&(e.areaMetric=t.area.areaMetric,e.margin=t.area.margin),t.height&&(e.heightMetric=t.height.heightMetric,i.amountOfTopLabels=t.height.labelSlider,i.scaling=t.height.heightSlider),t.color&&(e.colorMetric=t.color.colorMetric,e.colorRange=t.color.colorRange,i.mapColors=t.color.mapColors),t.edge&&(e.edgeMetric=t.edge.edgeMetric,i.edgeHeight=t.edge.edgeHeight,i.amountOfEdgePreviews=t.edge.edgePreview)),{appSettings:i,dynamicSettings:e}}static importScenarios(t){for(const e of t)CN(e.settings),e.camera&&(e.camera.camera=new se(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z),e.camera.cameraTarget=new se(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z));return t}static isScenarioExisting(t){return this.scenarios.has(t)}}let MN=(()=>{class n{constructor(e,i,r,o,s){this.state=e,this.store=i,this.dialog=r,this.threeCameraService=o,this.threeOrbitControlsService=s}getScenarios(){return sf.getScenarioItems(Xs(this.state.getValue()))}applyScenario(e){const i=sf.scenarios.get(e),r=sf.getScenarioSettings(i);this.store.dispatch(xb({value:r})),r.appSettings.amountOfTopLabels||this.store.select(JT).pipe(ox()).subscribe(o=>{const s=xN(o);this.store.dispatch(sm({value:s}))}),r.appSettings.mapColors||this.store.dispatch(bh({value:Cu})),r.appSettings.edgeHeight||this.store.dispatch(Y0({value:4})),r.appSettings.amountOfEdgePreviews||this.store.dispatch(ax({value:1})),r.appSettings.scaling||this.store.dispatch(Z0({value:nI})),r.dynamicSettings.colorRange||this.store.select(Jh).pipe(ox()).subscribe(o=>{this.store.dispatch(ru({value:iI(o)}))}),r.dynamicSettings.margin||this.store.dispatch(e_({value:50})),r.dynamicSettings.edgeMetric||this.store.select(Xs).pipe(ox()).subscribe(o=>{this.store.dispatch(yh({value:o.edgeMetricData[0]?.name}))}),i.camera&&(this.threeCameraService.setPosition(i.camera.camera),this.threeOrbitControlsService.setControlTarget(i.camera.cameraTarget))}removeScenario(e){"Complexity"!==e?(sf.deleteScenario(e),this.dialog.open(AA,{data:{title:"Info",message:`${e} deleted.`}})):this.dialog.open(AA,{data:{title:"Error",message:`${e} cannot be deleted as it is the default Scenario.`}})}static{this.\u0275fac=function(i){return new(i||n)(ve(Zr),ve($t),ve(Ns),ve(Mu),ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const BPe=["*"];let oI=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar-menu-button"]],inputs:{icon:"icon",title:"title"},ngContentSelectors:BPe,decls:3,vars:3,consts:[[3,"title"]],template:function(i,r){1&i&&(Yr(),D(0,"button",0),xe(1,"i"),Vn(2),U()),2&i&&(_e("title",r.title),Q(),cl("fa "+r.icon))},styles:["button[_ngcontent-%COMP%]{height:22px;line-height:22px;min-width:45px;margin:0;padding:0;font-size:9pt;background-color:#e6e6e6f5;color:#444}button[_ngcontent-%COMP%]:hover{background-color:#c8c8c8}"]})}}return n})();class OPe extends Ln{constructor(t=1/0,e=1/0,i=aP){super(),this._bufferSize=t,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,e)}next(t){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:o,_windowTime:s}=this;e||(i.push(t),!r&&i.push(o.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,o=r.slice();for(let s=0;snew Ln),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return o=>{let s,a,l,c=0,d=!1,u=!1;const h=()=>{a?.unsubscribe(),a=void 0},f=()=>{h(),s=l=void 0,d=u=!1},A=()=>{const y=s;f(),y?.unsubscribe()};return fe((y,_)=>{c++,!u&&!d&&h();const b=l=l??t();_.add(()=>{c--,0===c&&!u&&!d&&(a=EN(A,r))}),b.subscribe(_),!s&&c>0&&(s=new Ss({next:M=>b.next(M),error:M=>{u=!0,h(),a=EN(f,e,M),b.error(M)},complete:()=>{d=!0,h(),a=EN(f,i),b.complete()}}),ls(y).subscribe(s))})(o)}}function EN(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Ss({next:()=>{i.unsubscribe(),n()}});return ls(t(...e)).subscribe(i)}class NPe{constructor(t){this._box=t,this._destroyed=new Ln,this._resizeSubject=new Ln,this._elementObservables=new Map,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new Ji(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(qi(e=>e.some(i=>i.target===t)),function LPe(n,t,e){let i,r=!1;return n&&"object"==typeof n?({bufferSize:i=1/0,windowTime:t=1/0,refCount:r=!1,scheduler:e}=n):i=n??1/0,lx({connector:()=>new OPe(i,t,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}({bufferSize:1,refCount:!0}),oo(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let UPe=(()=>{class n{constructor(){this._observers=new Map,this._ngZone=Qt(In)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new NPe(r)),this._observers.get(r).observe(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const HPe=["notch"],VPe=["matFormFieldNotchedOutline",""],QPe=["*"],zPe=["textField"],qPe=["iconPrefixContainer"],GPe=["textPrefixContainer"],WPe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],$Pe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function jPe(n,t){1&n&&xe(0,"span",17)}function XPe(n,t){if(1&n&&(D(0,"label",16),Vn(1,1),pt(2,jPe,1,0,"span",17),U()),2&n){const e=Le(2);_e("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),pi("for",e._control.id),Q(2),Tt(2,!e.hideRequiredMarker&&e._control.required?2:-1)}}function KPe(n,t){1&n&&pt(0,XPe,3,5,"label",16),2&n&&Tt(0,Le()._hasFloatingLabel()?0:-1)}function YPe(n,t){1&n&&xe(0,"div",5)}function ZPe(n,t){}function JPe(n,t){1&n&&pt(0,ZPe,0,0,"ng-template",11),2&n&&(Le(2),_e("ngTemplateOutlet",Lo(1)))}function eRe(n,t){if(1&n&&(D(0,"div",7),pt(1,JPe,1,1,null,11),U()),2&n){const e=Le();_e("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),Q(),Tt(1,e._forceDisplayInfixLabel()?-1:1)}}function tRe(n,t){1&n&&(D(0,"div",8,2),Vn(2,2),U())}function nRe(n,t){1&n&&(D(0,"div",9,3),Vn(2,3),U())}function iRe(n,t){}function rRe(n,t){1&n&&pt(0,iRe,0,0,"ng-template",11),2&n&&(Le(),_e("ngTemplateOutlet",Lo(1)))}function oRe(n,t){1&n&&(D(0,"div",12),Vn(1,4),U())}function sRe(n,t){1&n&&(D(0,"div",13),Vn(1,5),U())}function aRe(n,t){1&n&&xe(0,"div",14)}function lRe(n,t){1&n&&(D(0,"div",18),Vn(1,6),U()),2&n&&_e("@transitionMessages",Le()._subscriptAnimationState)}function cRe(n,t){if(1&n&&(D(0,"mat-hint",20),ye(1),U()),2&n){const e=Le(2);_e("id",e._hintLabelId),Q(),br(e.hintLabel)}}function dRe(n,t){if(1&n&&(D(0,"div",19),pt(1,cRe,2,2,"mat-hint",20),Vn(2,7),xe(3,"div",21),Vn(4,8),U()),2&n){const e=Le();_e("@transitionMessages",e._subscriptAnimationState),Q(),Tt(1,e.hintLabel?1:-1)}}let Cd=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-label"]],standalone:!0})}}return n})(),uRe=0;const xJ=new dt("MatError");let CJ=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+uRe++,e||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||n)(zl("aria-live"),$(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){2&i&&Zd("id",r.id)},inputs:{id:"id"},standalone:!0,features:[ui([{provide:xJ,useExisting:n}])]})}}return n})(),hRe=0,SN=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+hRe++}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){2&i&&(Zd("id",r.id),pi("align",null),Un("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return n})();const MJ=new dt("MatPrefix");let EJ=(()=>{class n{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["","matPrefix",""],["","matIconPrefix",""],["","matTextPrefix",""]],inputs:{_isTextSelector:[Ct.None,"matTextPrefix","_isTextSelector"]},standalone:!0,features:[ui([{provide:MJ,useExisting:n}])]})}}return n})();const fRe=new dt("MatSuffix"),SJ=new dt("FloatingLabelParent");let TJ=(()=>{class n{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=Qt(UPe),this._ngZone=Qt(In),this._parent=Qt(SJ),this._resizeSubscription=new Xn}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function mRe(n){if(null!==n.offsetParent)return n.scrollWidth;const e=n.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return n})();const IJ="mdc-line-ripple--active",sI="mdc-line-ripple--deactivating";let FJ=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=r=>{const o=this._elementRef.nativeElement.classList,s=o.contains(sI);"opacity"===r.propertyName&&s&&o.remove(IJ,sI)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(sI),e.add(IJ)}deactivate(){this._elementRef.nativeElement.classList.add(sI)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In))}}static{this.\u0275dir=Wt({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return n})(),DJ=(()=>{class n{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In))}}static{this.\u0275cmp=bt({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&ti(HPe,5),2&i){let o;an(o=ln())&&(r._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mdc-notched-outline--notched",r.open)},inputs:{open:[Ct.None,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[Nr],attrs:VPe,ngContentSelectors:QPe,decls:5,vars:0,consts:[["notch",""],[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(i,r){1&i&&(Yr(),xe(0,"div",1),D(1,"div",2,0),Vn(3),U(),xe(4,"div",3))},encapsulation:2,changeDetection:0})}}return n})();const pRe={transitionMessages:Dh("transitionMessages",[Dc("enter",jo({opacity:1,transform:"translateY(0%)"})),Zl("void => enter",[jo({opacity:0,transform:"translateY(-5px)"}),Fc("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let TN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n})}}return n})();const IN=new dt("MatFormField"),ARe=new dt("MAT_FORM_FIELD_DEFAULT_OPTIONS");let kJ=0,Md=(()=>{class n{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=sa(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,r,o,s,a,l,c){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._dir=o,this._platform=s,this._defaults=a,this._animationMode=l,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+kJ++,this._hintLabelId="mat-mdc-hint-"+kJ++,this._subscriptAnimationState="",this._destroyed=new Ln,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,a&&(a.appearance&&(this.appearance=a.appearance),this._hideRequiredMarker=!!a?.hideRequiredMarker,a.color&&(this.color=a.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(oo(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Yl(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(oo(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(oo(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(o=>"start"===o.align):null,r=this._hintChildren?this._hintChildren.find(o=>"end"===o.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,s=r?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${o+s}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(vo),$(In),$(Eh),$(ro),$(ARe,8),$(_s,8),$(Li))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,Cd,5),Gr(o,Cd,7),Gr(o,TN,5),Gr(o,MJ,5),Gr(o,fRe,5),Gr(o,xJ,5),Gr(o,SN,5)),2&i){let s;an(s=ln())&&(r._labelChildNonStatic=s.first),an(s=ln())&&(r._labelChildStatic=s.first),an(s=ln())&&(r._formFieldControl=s.first),an(s=ln())&&(r._prefixChildren=s),an(s=ln())&&(r._suffixChildren=s),an(s=ln())&&(r._errorChildren=s),an(s=ln())&&(r._hintChildren=s)}},viewQuery:function(i,r){if(1&i&&(ti(zPe,5),ti(qPe,5),ti(GPe,5),ti(TJ,5),ti(DJ,5),ti(FJ,5)),2&i){let o;an(o=ln())&&(r._textField=o.first),an(o=ln())&&(r._iconPrefixContainer=o.first),an(o=ln())&&(r._textPrefixContainer=o.first),an(o=ln())&&(r._floatingLabel=o.first),an(o=ln())&&(r._notchedOutline=o.first),an(o=ln())&&(r._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&Un("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===r._animationMode)("mat-form-field-appearance-fill","fill"==r.appearance)("mat-form-field-appearance-outline","outline"==r.appearance)("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary","accent"!==r.color&&"warn"!==r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],standalone:!0,features:[ui([{provide:IN,useExisting:n},{provide:SJ,useExisting:n}]),Nr],ngContentSelectors:$Pe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const o=Dn();Yr(WPe),pt(0,KPe,1,1,"ng-template",null,0,jf),D(2,"div",4,1),ze("click",function(a){return Ot(o),Rt(r._control.onContainerClick(a))}),pt(4,YPe,1,0,"div",5),D(5,"div",6),pt(6,eRe,2,2,"div",7)(7,tRe,3,0,"div",8)(8,nRe,3,0,"div",9),D(9,"div",10),pt(10,rRe,1,1,null,11),Vn(11),U(),pt(12,oRe,2,0,"div",12)(13,sRe,2,0,"div",13),U(),pt(14,aRe,1,0,"div",14),U(),D(15,"div",15),pt(16,lRe,2,1)(17,dRe,5,2),U()}if(2&i){let o;Q(2),Un("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),Q(2),Tt(4,r._hasOutline()||r._control.disabled?-1:4),Q(2),Tt(6,r._hasOutline()?6:-1),Q(),Tt(7,r._hasIconPrefix?7:-1),Q(),Tt(8,r._hasTextPrefix?8:-1),Q(2),Tt(10,!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),Q(2),Tt(12,r._hasTextSuffix?12:-1),Q(),Tt(13,r._hasIconSuffix?13:-1),Q(),Tt(14,r._hasOutline()?-1:14),Q(),Un("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),Q(),Tt(16,"error"===(o=r._getDisplayedMessages())?16:"hint"===o?17:-1)}},dependencies:[TJ,DJ,zy,FJ,SN],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 96px/0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px*2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-hover-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-hover-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-hover-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-hover-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(.75*var(--mdc-outlined-text-field-label-text-size))}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mdc-outlined-text-field-label-text-size)}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color)}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font);line-height:var(--mat-form-field-subscript-text-line-height);font-size:var(--mat-form-field-subscript-text-size);letter-spacing:var(--mat-form-field-subscript-text-tracking);font-weight:var(--mat-form-field-subscript-text-weight)}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color)}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity)}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color)}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color)}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color)}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color)}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[pRe.transitionMessages]},changeDetection:0})}}return n})(),cx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,mn,MR,fr]})}}return n})();const bRe=["*",[["mat-toolbar-row"]]],vRe=["*","mat-toolbar-row"];let yRe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"],standalone:!0})}}return n})(),zm=(()=>{class n{constructor(e,i,r){this._elementRef=e,this._platform=i,this._document=r}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(Li))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-toolbar"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,yRe,5),2&i){let s;an(s=ln())&&(r._toolbarRows=s)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,r){2&i&&(cl(r.color?"mat-"+r.color:""),Un("mat-toolbar-multiple-rows",r._toolbarRows.length>0)("mat-toolbar-single-row",0===r._toolbarRows.length))},inputs:{color:"color"},exportAs:["matToolbar"],standalone:!0,features:[Nr],ngContentSelectors:vRe,decls:2,vars:0,template:function(i,r){1&i&&(Yr(bRe),Vn(0),Vn(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color:var(--mat-toolbar-container-text-color);--mdc-outlined-button-label-text-color:var(--mat-toolbar-container-text-color)}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}}return n})(),RJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})();const OJ=dA({passive:!0});let wRe=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return K0;const i=Mh(e),r=this._monitoredElements.get(i);if(r)return r.subject;const o=new Ln,s="cdk-text-field-autofilled",a=l=>{"cdk-text-field-autofill-start"!==l.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===l.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",a,OJ),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",a,OJ)}}),o}stopMonitoring(e){const i=Mh(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static{this.\u0275fac=function(i){return new(i||n)(ve(ro),ve(In))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),LJ=(()=>{class n{get minRows(){return this._minRows}set minRows(e){this._minRows=cm(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=cm(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._destroyed=new Ln,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=s=>{this._hasFocus="focus"===s.type},this._document=o,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{o_(this._getWindow(),"resize").pipe(pR(16),oo(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,o=r&&this._hasFocus,s=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(s);const a=e.scrollHeight-4;return e.classList.remove(s),o&&(e.style.marginBottom=i),a}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;const o=this._measureScrollHeight(),s=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${s}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,r)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(In),$(Li,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){1&i&&ze("input",function(){return r._noopInputHandler()})},inputs:{minRows:[Ct.None,"cdkAutosizeMinRows","minRows"],maxRows:[Ct.None,"cdkAutosizeMaxRows","maxRows"],enabled:[Ct.HasDecoratorInputTransform,"cdkTextareaAutosize","enabled",Jn],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],standalone:!0,features:[rs]})}}return n})(),xRe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();const CRe=new dt("MAT_INPUT_VALUE_ACCESSOR"),MRe=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let ERe=0,qm=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=sa(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(HB.required)??!1}set required(e){this._required=sa(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&OW().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=sa(e)}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u){this._elementRef=e,this._platform=i,this.ngControl=r,this._autofillMonitor=c,this._formField=u,this._uid="mat-input-"+ERe++,this.focused=!1,this.stateChanges=new Ln,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>OW().has(A)),this._iOSKeyupListener=A=>{const y=A.target;!y.value&&0===y.selectionStart&&0===y.selectionEnd&&(y.setSelectionRange(1,1),y.setSelectionRange(0,0))};const h=this._elementRef.nativeElement,f=h.nodeName.toLowerCase();this._inputValueAccessor=l||h,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&d.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new NR(a,r,s,o,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===f,this._isTextarea="textarea"===f,this._isInFormField=!!u,this._isNativeSelect&&(this.controlType=h.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){MRe.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(ro),$(iu,10),$(s1,8),$(a1,8),$(_$),$(CRe,10),$(wRe),$(In),$(IN,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,r){1&i&&ze("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&(Zd("id",r.id)("disabled",r.disabled)("required",r.required),pi("name",r.name||null)("readonly",r.readonly&&!r._isNativeSelect||null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),Un("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[Ct.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[ui([{provide:TN,useExisting:n}]),xr]})}}return n})(),FN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,cx,cx,xRe,fr]})}}return n})();const SRe=["switch"],TRe=["*"];function IRe(n,t){1&n&&(D(0,"div",10),Ul(),D(1,"svg",12),xe(2,"path",13),U(),D(3,"svg",14),xe(4,"path",15),U()())}const FRe=new dt("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1})}),DRe={provide:js,useExisting:ei(()=>Cb),multi:!0};class NJ{constructor(t,e){this.source=t,this.checked=e}}let kRe=0,Cb=(()=>{class n{_createChangeEvent(e){return new NJ(this,e)}get buttonId(){return`${this.id||this._uniqueId}-button`}focus(){this._switchElement.nativeElement.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=s,this._onChange=l=>{},this._onTouched=()=>{},this._validatorOnChange=()=>{},this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this.change=new Fn,this.toggleChange=new Fn,this.tabIndex=parseInt(o)||0,this.color=s.color||"accent",this._noopAnimations="NoopAnimations"===a,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++kRe,this.hideIcon=s.hideIcon??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{"keyboard"===e||"program"===e?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new NJ(this,this.checked)))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(Th),$(vo),zl("tabindex"),$(FRe),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&ti(SRe,5),2&i){let o;an(o=ln())&&(r._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(Zd("id",r.id),pi("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),cl(r.color?"mat-"+r.color:""),Un("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],required:[Ct.HasDecoratorInputTransform,"required","required",Jn],color:"color",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ba(e)],checked:[Ct.HasDecoratorInputTransform,"checked","checked",Jn],hideIcon:[Ct.HasDecoratorInputTransform,"hideIcon","hideIcon",Jn]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[ui([DRe,{provide:ys,useExisting:n,multi:!0}]),rs,xr,Nr],ngContentSelectors:TRe,decls:13,vars:24,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(1&i){const o=Dn();Yr(),D(0,"div",1)(1,"button",2,0),ze("click",function(){return Ot(o),Rt(r._handleClick())}),xe(3,"div",3),D(4,"div",4)(5,"div",5)(6,"div",6),xe(7,"div",7),U(),D(8,"div",8),xe(9,"div",9),U(),pt(10,IRe,5,0,"div",10),U()()(),D(11,"label",11),ze("click",function(a){return Ot(o),Rt(a.stopPropagation())}),Vn(12),U()()}if(2&i){const o=Lo(2);_e("labelPosition",r.labelPosition),Q(),Un("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled),_e("tabIndex",r.disabled?-1:r.tabIndex)("disabled",r.disabled),pi("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked),Q(8),_e("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),Q(),Tt(10,r.hideIcon?-1:10),Q(),_e("for",r.buttonId),pi("id",r._labelId)}},dependencies:[Ih,k$],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}.mdc-switch{width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:"";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mdc-switch__handle{transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle:active .mdc-switch:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--selected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--unselected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch__track::after,.mdc-switch__track::before{border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color)}.mdc-switch--selected .mdc-switch__track::after,.mdc-switch--selected .mdc-switch__track::before{border-width:var(--mat-switch-selected-track-outline-width)}.mdc-switch--disabled .mdc-switch__track::after,.mdc-switch--disabled .mdc-switch__track::before{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}'],encapsulation:2,changeDetection:0})}}return n})(),UJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Cb,fr,fr]})}}return n})();function RRe(n,t){if(1&n&&(D(0,"mat-error"),ye(1),U()),2&n){const e=Le();Q(),br(e.scenarioName.getError("Error"))}}function ORe(n,t){if(1&n){const e=Dn();D(0,"mat-slide-toggle",6),ze("change",function(){const r=Ot(e).$implicit;return Rt(Le().handleScenarioMetricPropertySelectionChange(r))}),ye(1),U()}if(2&n){const e=t.$implicit;_e("checked",e.isSelected),Q(),sn(" ",e.metricName?e.metricType+" ("+e.metricName+")":e.metricType," ")}}function LRe(n,t){1&n&&(D(0,"mat-error"),ye(1,"You cannot create an empty Scenario."),U())}let NRe=(()=>{class n{constructor(e,i,r){this.state=e,this.scenarioName=new Yq("",[n=>0===n.value.length?{Error:"Scenario name is required"}:sf.isScenarioExisting(n.value)?{Error:"A Scenario with this name already exists"}:null]),this.scenarioNameErrorField="Scenario name is required",this.areAnyScenarioMetricPropertiesSelected=!0,this.scenarioContent=((n,t)=>{const{dynamicSettings:e,appSettings:i,fileSettings:r}=n,o=[{metricType:"Camera-Position",metricName:"",savedValues:{...t},isSelected:!0,isDisabled:!1},{metricType:"Area-Metric",metricName:e.areaMetric,savedValues:e.margin,isSelected:!0,isDisabled:!1},{metricType:"Height-Metric",metricName:e.heightMetric,savedValues:{heightSlider:i.scaling,labelSlider:i.amountOfTopLabels},isSelected:!0,isDisabled:!1},{metricType:"Color-Metric",metricName:e.colorMetric,savedValues:{colorRange:e.colorRange,mapColors:i.mapColors},isSelected:!0,isDisabled:!1}];return r.edges.length>0&&o.push({metricType:"Edge-Metric",metricName:e.edgeMetric,savedValues:{edgePreview:i.amountOfEdgePreviews,edgeHeight:i.edgeHeight},isSelected:!0,isDisabled:!1}),o})(this.state.getValue(),{camera:i.camera.position,cameraTarget:r.controls.target})}handleScenarioMetricPropertySelectionChange(e){e.isSelected=!e.isSelected,this.areAnyScenarioMetricPropertiesSelected=this.scenarioContent.some(i=>i.isSelected)}addCustomScenario(){sf.addScenario(this.scenarioName.value,this.scenarioContent)}static{this.\u0275fac=function(i){return new(i||n)($(Zr),$(Mu),$(cc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-add-custom-scenario-dialog"]],decls:19,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["subscriptSizing","dynamic"],["matInput","",3,"formControl"],[1,"cc-add-custom-scenario-toggles"],[3,"checked"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"],[3,"change","checked"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Add Scenario"),U()(),D(3,"mat-dialog-content")(4,"p")(5,"mat-form-field",1)(6,"mat-label"),ye(7,"Scenario Name"),U(),xe(8,"input",2),pt(9,RRe,2,1,"mat-error"),U()(),D(10,"p"),ye(11,"The scenario includes:"),U(),D(12,"div",3),Or(13,ORe,2,2,"mat-slide-toggle",4,qr),pt(15,LRe,2,0,"mat-error"),U()(),D(16,"mat-dialog-actions")(17,"button",5),ze("click",function(){return r.addCustomScenario()}),ye(18," ADD "),U()()),2&i&&(Q(8),_e("formControl",r.scenarioName),Q(),Tt(9,r.scenarioName.invalid?9:-1),Q(4),Lr(r.scenarioContent),Q(2),Tt(15,r.areAnyScenarioMetricPropertiesSelected?-1:15),Q(2),_e("disabled",r.scenarioName.invalid||!r.areAnyScenarioMetricPropertiesSelected))},dependencies:[im,$0,OE,Md,Cd,CJ,cs,Jl,kc,ec,zm,qm,Cb],styles:[".cc-add-custom-scenario-toggles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}mat-slide-toggle[_ngcontent-%COMP%]{display:block}"]})}}return n})(),DN=(()=>{class n{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=sa(e)}get inset(){return this._inset}set inset(e){this._inset=sa(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){2&i&&(pi("aria-orientation",r.vertical?"vertical":"horizontal"),Un("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},standalone:!0,features:[Nr],decls:0,vars:0,template:function(i,r){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}}return n})(),kN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})();function URe(n,t){if(1&n&&(D(0,"span",5),xe(1,"i"),U()),2&n){const e=t.$implicit;_e("title",e.tooltip),Q(),hh("fa ",e.faIconClass,""),Un("cc-is-saved",e.isSaved)}}function HRe(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",4),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le().scenarioService.applyScenario(r.scenarioName))}),ye(2),U(),Or(3,URe,2,6,"span",5,qr),D(5,"button",6),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le().scenarioService.removeScenario(r.scenarioName))}),xe(6,"i",7),U()()}if(2&n){const e=t.$implicit;Q(),_e("disabled",!e.isScenarioApplicable),Q(),sn(" ",e.scenarioName," "),Q(),Lr(e.icons)}}let VRe=(()=>{class n{constructor(e,i){this.scenarioService=e,this.dialog=i,this.scenarios=[]}addScenario(){this.dialog.open(NRe,{panelClass:"cc-add-custom-scenario"})}static{this.\u0275fac=function(i){return new(i||n)($(MN),$(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-scenarios"]],inputs:{scenarios:"scenarios"},decls:8,vars:0,consts:[[1,"cc-row"],["disabled","",1,"cc-apply-scenario-button"],["title","Create a custom scenario",1,"cc-action-button","cc-add",3,"click"],[1,"fa","fa-plus"],["title","Apply scenario",1,"cc-apply-scenario-button",3,"click","disabled"],[1,"cc-scenario-content-icons",3,"title"],["title","Remove custom scenario",1,"cc-action-button","cc-remove",3,"click"],[1,"fa","fa-minus-square"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"button",1),ye(2,"Metric Scenarios"),U(),D(3,"button",2),ze("click",function(){return r.addScenario()}),xe(4,"i",3),U()(),xe(5,"mat-divider"),Or(6,HRe,7,2,"div",0,qr)),2&i&&(Q(6),Lr(r.scenarios))},dependencies:[DN],styles:[".cc-row[_ngcontent-%COMP%]{display:flex;height:48px;align-items:center}.cc-row[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]{color:#00000061}.cc-row[_ngcontent-%COMP%] .cc-apply-scenario-button[_ngcontent-%COMP%]{padding-left:16px;padding-right:16px;height:100%;flex:1;text-align:left;background-color:unset}.cc-row[_ngcontent-%COMP%] .cc-apply-scenario-button[_ngcontent-%COMP%]:hover:not([disabled]){background-color:#9e9e9e33}.cc-row[_ngcontent-%COMP%] .cc-action-button[_ngcontent-%COMP%]{width:52px;height:100%;display:inline-flex;justify-content:center;align-items:center}.cc-row[_ngcontent-%COMP%] .cc-action-button.cc-add[_ngcontent-%COMP%]{background-color:#1b9cfc}.cc-row[_ngcontent-%COMP%] .cc-action-button.cc-remove[_ngcontent-%COMP%]{border-left:1px solid rgba(0,0,0,.12);color:#b30000;background-color:unset}.cc-row[_ngcontent-%COMP%] .cc-action-button.cc-remove[_ngcontent-%COMP%]:hover:not([disabled]){background-color:#9e9e9e33}.cc-row[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:x-small}.cc-row[_ngcontent-%COMP%] .cc-scenario-content-icons[_ngcontent-%COMP%]{padding:0 8px;color:#d3d3d3}.cc-row[_ngcontent-%COMP%] .cc-scenario-content-icons[_ngcontent-%COMP%] i.fa.cc-is-saved[_ngcontent-%COMP%]{color:#000}"]})}}return n})(),QRe=(()=>{class n{constructor(e){this.scenarioService=e,this.scenarios=[]}loadScenarios(){this.scenarios=this.scenarioService.getScenarios()}static{this.\u0275fac=function(i){return new(i||n)($(MN))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-show-scenarios-button"]],decls:4,vars:3,consts:[["menu","matMenu"],["icon","fa-star",3,"click","title","matMenuTriggerFor"],[1,"cc-scenarios-menu"],[3,"scenarios"]],template:function(i,r){if(1&i){const o=Dn();D(0,"cc-ribbon-bar-menu-button",1),ze("click",function(){return Ot(o),Rt(r.loadScenarios())}),U(),D(1,"mat-menu",2,0),xe(3,"cc-scenarios",3),U()}if(2&i){const o=Lo(2);_e("title","Open the scenario list")("matMenuTriggerFor",o),Q(3),_e("scenarios",r.scenarios)}},dependencies:[Su,wb,oI,VRe],styles:["[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})();class BN{static downloadCurrentMap(t,e,i,r,o){const s=this.getProjectDataAsCCJsonFormat(t,e,i,r),a=o+f_.CC_FILE_EXTENSION;this.downloadData(JSON.stringify(s),a)}static getProjectDataAsCCJsonFormat(t,e,i,r){return{projectName:e.projectName,apiVersion:e.apiVersion,fileChecksum:e.fileChecksum,nodes:[this.undecorateMap(t)],attributeTypes:r.includes("AttributeTypes")?this.getAttributeTypesForJSON(i.attributeTypes):{},attributeDescriptors:r.includes("AttributeDescriptors")?this.getAttributeDescriptorsForJSON(i.attributeDescriptors):{},edges:r.includes("Edges")?this.undecorateEdges(i.edges):[],markedPackages:r.includes("MarkedPackages")?i.markedPackages:[],blacklist:this.getBlacklistToDownload(r,i.blacklist)}}static getBlacklistToDownload(t,e){const i=[];return t.includes("Flattens")&&i.push(...this.getFilteredBlacklist(e,"flatten").map(r=>({path:r.path,type:"hide"}))),t.includes("Excludes")&&i.push(...this.getFilteredBlacklist(e,"exclude")),i}static getAttributeTypesForJSON(t){return 0===Object.keys(t.edges).length&&0===Object.keys(t.nodes).length?{}:t}static getAttributeDescriptorsForJSON(t){return 0===Object.keys(t).length?{}:t}static getFilteredBlacklist(t,e){return t.filter(i=>i.type===e)}static undecorateMap(t){const e=lu(t);for(const{data:i}of yo(e))delete i.isExcluded,delete i.isFlattened,delete i.edgeAttributes,delete i.path,i.type===qa.FOLDER?i.attributes={}:delete i.attributes[A2];return e}static undecorateEdges(t){const e=lu(t);for(const i of e)delete i.visible;return e}static downloadData(t,e){const i=new Blob([t],{type:"text/json"}),r=document.createEvent("MouseEvents"),o=document.createElement("a");o.download=e,o.href=window.URL.createObjectURL(i),o.dataset.downloadurl=["text/json",o.download,o.href].join(":"),r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.dispatchEvent(r)}}const HJ=".cc.config.json",VJ="CodeCharta::customConfigs";class Yi{static{this.customConfigs=Yi.loadCustomConfigsFromLocalStorage()}static{this.customConfigChange$=new Ia(null)}static setCustomConfigsToLocalStorage(){const t={version:"1.0.1",customConfigs:[...Yi.customConfigs]};localStorage.setItem(VJ,JSON.stringify(t,z2)),Yi.customConfigChange$.next(null)}static loadCustomConfigsFromLocalStorage(){const t=this.getCcLocalStorage();return new Map(t?.customConfigs)}static getCcLocalStorage(){return JSON.parse(localStorage.getItem(VJ),X$)}static addCustomConfig(t){Yi.customConfigs.set(t.id,t),Yi.setCustomConfigsToLocalStorage()}static editCustomConfigNote(t,e){const i=Yi.customConfigs.get(t);i.note=e,Yi.customConfigs.set(t,i),Yi.setCustomConfigsToLocalStorage()}static getCustomConfigSettings(t){return Yi.customConfigs.get(t)}static hasCustomConfigByName(t,e,i){for(const r of Yi.customConfigs.values())if(r.name===i&&r.mapSelectionMode===t&&this.areEqual(e,r.assignedMaps))return!0;return!1}static areEqual(t,e){return t.size===e.size&&[...t.entries()].every(([i,r])=>e.has(i)&&e.get(i)===r)}static getCustomConfigs(){return Yi.customConfigs}static importCustomConfigs(t){const e=JSON.parse(t,X$);for(const i of e.customConfigs.values()){if(Yi.getCustomConfigSettings(i.id))continue;Yi.hasCustomConfigByName(i.mapSelectionMode,i.assignedMaps,i.name)&&(i.name+=` (${Lm.getFormattedTimestamp(new Date(i.creationTime))})`);const o={id:i.id,name:i.name,creationTime:i.creationTime,assignedMaps:i.assignedMaps,customConfigVersion:i.customConfigVersion,mapSelectionMode:i.mapSelectionMode,stateSettings:i.stateSettings,camera:i.camera,...i.note&&{note:i.note}};Yi.addCustomConfig(o)}}static downloadCustomConfigs(t){const e={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:t},i=Lm.getNewTimestamp()+HJ;BN.downloadData(JSON.stringify(e,z2),i)}static createExportCustomConfigFromConfig(t){return{...t}}static getCustomConfigsAmountByMapAndMode(t,e){let i=0;for(const r of Yi.customConfigs.values())[...r.assignedMaps.values()].join(" ")===t&&r.mapSelectionMode===e&&i++;return i}static getConfigNameSuggestionByFileState({mapSelectionMode:t,assignedMaps:e}){const i=[...e.values()].join(" ");return`${i} #${Yi.getCustomConfigsAmountByMapAndMode(i,t)+1}`}static deleteCustomConfigs(t){for(const e of t)Yi.customConfigs.delete(e.id);Yi.setCustomConfigsToLocalStorage()}static deleteCustomConfig(t){Yi.customConfigs.delete(t),Yi.setCustomConfigsToLocalStorage()}static sortCustomConfigDropDownGroupList(t,e){if(!e.hasApplicableItems){if(t.hasApplicableItems||t.mapSelectionModet.has(i))}var aI=function(n){return n.MULTIPLE="STANDARD",n.DELTA="DELTA",n}(aI||{});const dx=Kt(au,n=>{const t=new Map;let e;for(const{selectedAs:i,file:r}of n)e=i===er.Partial?aI.MULTIPLE:aI.DELTA,t.set(r.fileMeta.fileChecksum,r.fileMeta.fileName);return{mapSelectionMode:e,assignedMaps:t}});let PN=(()=>{class n{constructor(e){this.store=e,this.downloadableCustomConfigs$=Sh([this.store.select(dx),Yi.customConfigChange$]).pipe(Qe(([i])=>(({assignedMaps:n})=>{const t=new Map,e=Yi.getCustomConfigs();for(const[i,r]of e.entries())WRe(r.assignedMaps,n)&&t.set(i,Yi.createExportCustomConfigFromConfig(r));return t})(i))),this.customConfigItemGroups$=Sh([this.store.select(dx),Yi.customConfigChange$]).pipe(Qe(([i])=>function $Re({assignedMaps:n}){const t={applicableItems:new Map,nonApplicableItems:new Map},e=new Map;for(const i of Yi.loadCustomConfigsFromLocalStorage().values()){const r=[...i.assignedMaps.values()],o=`${r.join("_")}_${i.mapSelectionMode}`,s=[...i.assignedMaps.keys()].some(b=>n.has(b));e.has(o)||e.set(o,{mapNames:r.join(" "),mapSelectionMode:i.mapSelectionMode,hasApplicableItems:s,customConfigItems:[]});const{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h}=i.stateSettings.appSettings.mapColors,{areaMetric:f,heightMetric:A,colorMetric:y,edgeMetric:_}=i.stateSettings.dynamicSettings;e.get(o).customConfigItems.push({id:i.id,name:i.name,assignedMaps:i.assignedMaps,mapSelectionMode:i.mapSelectionMode,metrics:{areaMetric:f,heightMetric:A,colorMetric:y,edgeMetric:_},mapColors:{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h},isApplicable:s,...i.note&&{note:i.note}}),e.get(o).hasApplicableItems?t.applicableItems.set(o,e.get(o)):t.nonApplicableItems.set(o,e.get(o))}return t}(i)))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function jRe(n,t){1&n&&(D(0,"div",7),ye(1,"It is time to add your first Custom View!"),U())}function XRe(n,t){if(1&n&&xe(0,"cc-custom-config-item-group",12),2&n){const e=Le(2),i=Le();_e("customConfigItemGroups",e.nonApplicableItems)("searchTerm",i.searchTerm)}}function KRe(n,t){if(1&n){const e=Dn();D(0,"button",14),ze("click",function(){return Ot(e),Rt(Le(3).toggleNonApplicableCustomConfigsList())}),ye(1),xe(2,"i",15),U()}if(2&n){const e=Le(3);Q(),sn(" ",e.isNonApplicableListCollapsed?"Show non-applicable Custom Views":"Hide non-applicable Custom Views"," "),Q(),_e("ngClass",e.isNonApplicableListCollapsed?"fa fa-angle-down":"fa fa-angle-up")}}function YRe(n,t){if(1&n){const e=Dn();D(0,"mat-accordion",8)(1,"mat-form-field",9),xe(2,"i",10),D(3,"mat-label"),ye(4),U(),D(5,"input",11),ze("input",function(r){return Ot(e),Rt(Le(2).setSearchTermDebounced(r))}),U()(),xe(6,"cc-custom-config-item-group",12),pt(7,XRe,1,2,"cc-custom-config-item-group",12)(8,KRe,3,2,"button",13),U()}if(2&n){const e=Le(),i=Le();_e("multi",!0),Q(4),sn("",i.searchPlaceholder," "),Q(),_e("value",i.searchTerm),Q(),_e("customConfigItemGroups",e.applicableItems)("searchTerm",i.searchTerm),Q(),Tt(7,i.isNonApplicableListCollapsed?-1:7),Q(),Tt(8,e.nonApplicableItems.size>0?8:-1)}}function ZRe(n,t){if(1&n&&(D(0,"mat-dialog-content",4)(1,"p",5),ye(2," Custom Views allow you to save and upload your individual configurations for certain maps. Find out more about Custom Views in the "),D(3,"a",6),ye(4,"documentation"),U(),ye(5,". "),U(),pt(6,jRe,2,0,"div",7)(7,YRe,9,7,"mat-accordion",8),U()),2&n){const e=t;Q(6),Tt(6,0===e.applicableItems.size&&0===e.nonApplicableItems.size?6:-1),Q(),Tt(7,0!==e.applicableItems.size||0!==e.nonApplicableItems.size?7:-1)}}let QJ=(()=>{class n{constructor(e){this.customConfigService=e,this.searchTerm="",this.isNonApplicableListCollapsed=!0,this.searchPlaceholder="Search by name, mode and metrics...",this.setSearchTermDebounced=Eu(i=>this.searchTerm=i.target.value,400)}toggleNonApplicableCustomConfigsList(){this.isNonApplicableListCollapsed=!this.isNonApplicableListCollapsed}static{this.\u0275fac=function(i){return new(i||n)($(PN))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-list"]],decls:9,vars:3,consts:[["color","primary"],[1,"row"],[1,"action-buttons"],[1,"custom-configs-button-in-custom-views"],[1,"content"],[1,"custom-config-documentation-hint"],["href","https://maibornwolff.github.io/codecharta/docs/custom-view/","target","_blank","rel","noopener noreferrer"],[1,"no-custom-configs-box"],[1,"custom-config-container",3,"multi"],[1,"cc-custom-configs-search-field"],["matPrefix","",1,"fa","fa-search","custom-config-search-icon"],["matInput","","type","text",3,"input","value"],[3,"customConfigItemGroups","searchTerm"],[1,"toggle-non-applicable-configs-button"],[1,"toggle-non-applicable-configs-button",3,"click"],[3,"ngClass"]],template:function(i,r){if(1&i&&(D(0,"mat-toolbar",0),ye(1,"Custom Views "),D(2,"div",1)(3,"div",2),xe(4,"cc-upload-custom-config-button")(5,"cc-download-custom-configs-button")(6,"cc-add-custom-config-button",3),U()()(),pt(7,ZRe,8,2,"mat-dialog-content",4),qe(8,"async")),2&i){let o;Q(7),Tt(7,(o=rt(8,1,r.customConfigService.customConfigItemGroups$))?7:-1,o)}},styles:[".row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-left:auto}.custom-config-documentation-hint[_ngcontent-%COMP%]{margin:10px 0 20px;font-size:1.4em;line-height:1.4em;color:#000000de}.no-custom-configs-box[_ngcontent-%COMP%]{text-align:center;padding:50px 0}.toggle-non-applicable-configs-button[_ngcontent-%COMP%]{width:100%;height:30px;margin:5px 0}"]})}}return n})();function e4e(n,t,e,i){const{mapSelectionMode:r,assignedMaps:o}=dx(t),s={id:"",name:n,creationTime:Date.now(),mapSelectionMode:r,assignedMaps:o,customConfigVersion:"1.0.0",stateSettings:{appSettings:void 0,dynamicSettings:void 0,fileSettings:void 0},camera:e,...i&&{note:i}};return function t4e(n){n.stateSettings.appSettings={showMetricLabelNameValue:!1,showMetricLabelNodeName:!1,colorLabels:{positive:!1,negative:!1,neutral:!1},amountOfEdgePreviews:0,amountOfTopLabels:0,edgeHeight:0,hideFlatBuildings:!1,invertHeight:!1,invertArea:!1,isLoadingFile:!1,isLoadingMap:!1,isPresentationMode:!1,isWhiteBackground:!1,resetCameraIfNewFileIsLoaded:!1,scaling:void 0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,sortingOrderAscending:!1,isSearchPanelPinned:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:void 0,maxTreeMapFiles:0,sharpnessMode:void 0,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0,mapColors:{labelColorAndAlpha:{alpha:0,rgb:""},base:"",flat:"",incomingEdge:"",markingColors:[],negative:"",negativeDelta:"",neutral:"",outgoingEdge:"",positive:"",positiveDelta:"",selected:""}}}(s),function n4e(n){n.stateSettings.dynamicSettings={areaMetric:"",colorMetric:"",distributionMetric:"",edgeMetric:"",focusedNodePath:[],heightMetric:"",margin:0,searchPattern:"",sortingOption:void 0,colorRange:{from:0,to:0},colorMode:void 0}}(s),function i4e(n){n.stateSettings.fileSettings={blacklist:void 0,edges:[],attributeDescriptors:{},markedPackages:[]}}(s),zJ(t,s.stateSettings),s.id=u2()(JSON.stringify(s,z2)),s}function zJ(n,t){for(const[e,i]of Object.entries(n))Object.prototype.hasOwnProperty.call(t,e)&&("object"!=typeof i||Array.isArray(i)||null===i||void 0===t[e]?t[e]=i:zJ(i,t[e]))}function r4e(n,t){if(1&n&&(D(0,"mat-error"),ye(1),U()),2&n){const e=Le();Q(),br(e.getErrorMessage())}}let RN=(()=>{class n{constructor(e,i,r){this.state=e,this.threeCameraService=i,this.threeOrbitControlsService=r}ngOnInit(){const e=dx(this.state.getValue());this.customConfigName=new Yq("",[HB.required,o4e(e)]),this.customConfigName.setValue(Yi.getConfigNameSuggestionByFileState(e))}getErrorMessage(){return this.customConfigName.hasError("required")?"Please enter a view name.":this.customConfigName.hasError("Error")?this.customConfigName.getError("Error"):""}addCustomConfig(){const e=e4e(this.customConfigName.value,this.state.getValue(),{camera:this.threeCameraService.camera.position,cameraTarget:this.threeOrbitControlsService.controls.target},this.customConfigNote);Yi.addCustomConfig(e)}static{this.\u0275fac=function(i){return new(i||n)($(Zr),$(Mu),$(cc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-add-custom-config-dialog"]],decls:24,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["matInput","","required","",1,"cc-custom-config-input",3,"formControl"],["cdkAutosizeMinRows","8","cdkTextareaAutosize","","matInput","","required","",1,"cc-custom-config-input",3,"ngModelChange","ngModel"],[1,"cc-add-custom-config"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Add Custom View"),U()(),D(3,"mat-dialog-content")(4,"p")(5,"mat-form-field")(6,"mat-label"),ye(7,"Save individual configurations for your map."),U(),xe(8,"input",1),D(9,"mat-hint"),ye(10,"Config View Name"),U(),pt(11,r4e,2,1,"mat-error"),U()(),D(12,"p")(13,"mat-form-field")(14,"mat-label"),ye(15,"Provide custom note for configuration (optional)"),U(),D(16,"textarea",2),ld("ngModelChange",function(s){return eu(r.customConfigNote,s)||(r.customConfigNote=s),s}),ye(17," "),U(),D(18,"mat-hint"),ye(19,"Config Note"),U()()()(),D(20,"mat-dialog-actions",3),xe(21,"cc-download-and-purge-configs"),D(22,"button",4),ze("click",function(){return r.addCustomConfig()}),ye(23,"ADD"),U()()),2&i&&(Q(8),_e("formControl",r.customConfigName),Q(3),Tt(11,r.customConfigName.invalid?11:-1),Q(5),ad("ngModel",r.customConfigNote),Q(6),_e("disabled",r.customConfigName.invalid))},encapsulation:2})}}return n})();function o4e(n){return t=>Yi.hasCustomConfigByName(n.mapSelectionMode,n.assignedMaps,t.value)?{Error:"A Custom View with this name already exists."}:null}let s4e=(()=>{class n{constructor(e){this.dialog=e}openCustomConfigDialog(){this.dialog.open(QJ,{panelClass:"cc-custom-config-list"})}showAddCustomConfigDialog(){this.dialog.open(RN,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-configs"]],decls:3,vars:2,consts:[[1,"custom-configs-panel-buttons"],["icon","fa-cogs",3,"click","title"],["icon","fa-plus",3,"click","title"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"cc-ribbon-bar-menu-button",1),ze("click",function(){return r.openCustomConfigDialog()}),U(),D(2,"cc-ribbon-bar-menu-button",2),ze("click",function(){return r.showAddCustomConfigDialog()}),U()()),2&i&&(Q(),_e("title","Open your saved Custom Views"),Q(),_e("title","Create new Custom View"))},dependencies:[oI],styles:["[_nghost-%COMP%] .custom-configs-panel-buttons[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();function ON(n,t){if(t||(t=0),!Array.isArray(n))throw new Error("percentRound input should be an Array");const e=n.slice(),i=n.length,r=new Array(i);let o=0;for(let s=i-1;s>=0;s--)"string"==typeof e[s]&&(e[s]=Number.parseFloat(e[s])),o+=1*e[s];if(isNaN(o))throw new Error("percentRound invalid input");if(0===o)r.fill(0);else{const s=Math.pow(10,t),a=100*s;let l=0;for(let c=i-1;c>=0;c--)e[c]=100*e[c]/o,l+=r[c]=Math.round(e[c]*s);if(l!==a){const d=1;let u=Math.abs(l-a);const h=new Array(i);for(let f=0;f0;){let f=0,A=h[0];for(let y=1;ya&&r[y]-d<0)continue;f=y,A=h[y]}l>a?r[f]-=d:r[f]+=d,h[f]-=d,u--}}if(s>1)for(let c=0;cvoid 0!==n.attributes[l]),o=GJ(e)[i],s=n.attributes[i],a=n.attributes[lI];s<=o.percentile70?t.lowRisk+=a:s<=o.percentile80?t.moderateRisk+=a:s<=o.percentile90?t.highRisk+=a:t.veryHighRisk+=a}function h4e(n,t,e){for(const[i,r]of Object.entries(n.attributes))0!==r&&(t[e]??={},t[e][i]??=[],t[e][i].push(r))}function f4e(n,t){return n.isOutlier&&!t.isOutlier?-1:!n.isOutlier&&t.isOutlier?1:0}function m4e(n){const t=vb.get(n);return t?`${n} (${t})`:`${n}`}function _4e(n){return n.includes(".")?n.slice(n.lastIndexOf(".")+1):void 0}function b4e(n,t){return LN.some(e=>void 0!==n.attributes[e])&&void 0!==n.attributes[lI]&&!l4e.has(t)}const v4e=Kt(Hc,su,(n,t)=>{if(!n.unifiedMapNode)return;const e={analyzedProgrammingLanguage:void 0,suspiciousMetricSuggestionLinks:[],unsuspiciousMetrics:[],untrackedMetrics:[],riskProfile:void 0},i=new Map,r={lowRisk:0,moderateRisk:0,highRisk:0,veryHighRisk:0};let o=0,s=0;const a={};for(const{data:c}of yo(n.unifiedMapNode)){const d=_4e(c.name);if(c.type===qa.FILE&&void 0!==d&&!Ch(c.path,t,"exclude")){const u=i.get(d)??0;if(i.set(d,u+1),h4e(c,a,d),b4e(c,d)){const h=LN.find(f=>void 0!==c.attributes[f]);s+=c.attributes[h],o+=c.attributes[lI],c4e(c,r,d)}}}o>0&&s>0&&(e.riskProfile=function d4e(n){const[t,e,i,r]=a4e([n.lowRisk,n.moderateRisk,n.highRisk,n.veryHighRisk]);return{lowRisk:t,moderateRisk:e,highRisk:i,veryHighRisk:r}}(r));const l=function A4e(n){let t,e=-1;for(const[i,r]of n)es.percentile70&&(e.suspiciousMetrics.set(r,{from:s.percentile70,to:s.percentile80}),a>s.percentile90&&e.outliersThresholds.set(r,s.percentile90))}for(const r in n[t])!Object.keys(i).includes(r)&&!e.untrackedMetrics.includes(r)&&e.untrackedMetrics.push(r);return e}(a,l);e.unsuspiciousMetrics=c.unsuspiciousMetrics,e.untrackedMetrics=c.untrackedMetrics,e.suspiciousMetricSuggestionLinks=function u4e(n){const t=new Map;for(const[e,i]of n.suspiciousMetrics)t.set(e,{metric:e,...i}),n.outliersThresholds.has(e)&&(t.get(e).isOutlier=!0,t.get(e).outlierThreshold=n.outliersThresholds.get(e));return[...t.values()].sort(f4e)}(c)}return e});var WJ=Object.prototype.hasOwnProperty;function $J(n,t,e){for(e of n.keys())if(JA(e,t))return e}function JA(n,t){var e,i,r;if(n===t)return!0;if(n&&t&&(e=n.constructor)===t.constructor){if(e===Date)return n.getTime()===t.getTime();if(e===RegExp)return n.toString()===t.toString();if(e===Array){if((i=n.length)===t.length)for(;i--&&JA(n[i],t[i]););return-1===i}if(e===Set){if(n.size!==t.size)return!1;for(i of n)if((r=i)&&"object"==typeof r&&!(r=$J(t,r))||!t.has(r))return!1;return!0}if(e===Map){if(n.size!==t.size)return!1;for(i of n)if((r=i[0])&&"object"==typeof r&&!(r=$J(t,r))||!JA(i[1],t.get(r)))return!1;return!0}if(e===ArrayBuffer)n=new Uint8Array(n),t=new Uint8Array(t);else if(e===DataView){if((i=n.byteLength)===t.byteLength)for(;i--&&n.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(n)){if((i=n.byteLength)===t.byteLength)for(;i--&&n[i]===t[i];);return-1===i}if(!e||"object"==typeof n){for(e in i=0,n)if(WJ.call(n,e)&&++i&&!WJ.call(t,e)||!(e in t)||!JA(n[e],t[e]))return!1;return Object.keys(t).length===i}}return n!=n&&t!=t}let y4e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metric-dialog"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:12,vars:0,consts:[["id","suspiciousMetricPopover","data-testid","suspiciousMetricPopover",1,"cc-dialog","suspicious-metric-dialog"],["mat-dialog-title","",1,"title"],[1,"info-text"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[2,"display","flex","justify-content","center"],["mat-stroked-button","","mat-dialog-close","",1,"button-mat-dialog"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"h2",1),ye(2,"Suspicious Metrics Information"),U(),D(3,"mat-dialog-content",2),ye(4," This feature compares the values of certain metrics from the loaded cc.json file with metric values of 241 Open Source Java projects. Based on this data suspicious and inconspicuous metrics are identified and corresponding suggestions can be clicked to view them. Be aware that metrics for other programming languages might not be comparable to Java Reference metric values. More information can be found in the "),D(5,"a",3),ye(6,"How-To Article "),xe(7,"i",4),U(),ye(8,". "),U(),D(9,"mat-dialog-actions",5)(10,"button",6),ye(11,"Close"),U()()())},dependencies:[cs,Jl,H2,kc,ec],encapsulation:2})}}return n})(),eg=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-action-icon"]],inputs:{icon:"icon"},decls:1,vars:2,consts:[["role","button"]],template:function(i,r){1&i&&xe(0,"i",0),2&i&&cl(r.icon)},styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center;cursor:pointer;width:24px;height:24px;border-radius:100%;background-color:#1b9cfc;font-size:14px}[_nghost-%COMP%]:hover{background-color:#0374c9}.disabled[_nghost-%COMP%]{opacity:.5}[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] i.fa[_ngcontent-%COMP%]{margin:auto;line-height:1.5;color:#fff}[_nghost-%COMP%] i.fa-folder-open[_ngcontent-%COMP%], [_nghost-%COMP%] i.fa.fa-folder-open[_ngcontent-%COMP%]{padding-left:1px}"]})}}return n})(),jJ=(()=>{class n{transform(e,i,r="..."){return e.length>i?e.slice(0,i)+r:e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"truncateText",type:n,pure:!0})}}return n})();const w4e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function x4e(n,t){if(1&n&&(xe(0,"br"),D(1,"span",11),ye(2),U()),2&n){const e=Le().$implicit,i=Le(3);Q(2),br(i.getDescriptionOfMetric(e.metric))}}function C4e(n,t){if(1&n){const e=Dn();D(0,"mat-button-toggle",12),ze("click",function(){Ot(e);const r=Le().$implicit;return Rt(Le(3).applySuspiciousMetric(r,!0))}),ye(1," High-Risk\xa0"),xe(2,"i",13),U()}}function M4e(n,t){1&n&&(D(0,"mat-button-toggle",14),ye(1," High-Risk\xa0"),xe(2,"i",15),U())}function E4e(n,t){if(1&n){const e=Dn();xe(0,"div",5),D(1,"div",6)(2,"b"),ye(3),qe(4,"truncateText"),U(),pt(5,x4e,3,1),U(),D(6,"div")(7,"mat-button-toggle-group")(8,"mat-button-toggle",7),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(3).applySuspiciousMetric(r,!1))}),ye(9," Apply preset\xa0"),xe(10,"i",8),ye(11,"\xa0"),xe(12,"i",9),U(),pt(13,C4e,3,0,"mat-button-toggle",10)(14,M4e,3,0),U()()}if(2&n){const e=t.$implicit,i=Le(3);Q(),Ua("title",i.getNameAndDescriptionOfMetric(e.metric)),Q(2),br(Io(4,6,e.metric,40)),Q(2),Tt(5,i.getDescriptionOfMetric(e.metric)?5:-1),Q(3),sd("title","Apply Map Configuration to show files with suspicious metric ",e.metric," and high risk or very high risk depending on selection"),Q(5),Tt(13,e.isOutlier?13:14)}}function S4e(n,t){if(1&n&&(D(0,"div",4),Or(1,E4e,15,9,null,null,qr),U()),2&n){const e=Le(2);Q(),Lr(e.data.suspiciousMetricSuggestionLinks)}}function T4e(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",1),ze("click",function(){return Ot(e),Rt(Le().toggleSuspiciousMetricsVisibility())}),D(2,"span",2),xe(3,"i",3),U(),ye(4," Suspicious Metrics in "),D(5,"code"),ye(6),U(),ye(7," code "),U()(),pt(8,S4e,3,0,"div",4)}if(2&n){const e=Le();sd("title","Suspicious Metrics in .",e.data.analyzedProgrammingLanguage," code"),Q(3),_e("ngClass",ul(5,w4e,!e.isSuspiciuosMetricsVisible,e.isSuspiciuosMetricsVisible)),Q(3),sn(".",e.data.analyzedProgrammingLanguage,""),Q(2),Tt(8,e.isSuspiciuosMetricsVisible?8:-1)}}function I4e(n,t){if(1&n&&(D(0,"div",16),ye(1," No Suspicious Metrics found in "),D(2,"code"),ye(3),U(),ye(4,"! "),U()),2&n){const e=Le();sd("title","Suspicious Metrics in this .",e.data.analyzedProgrammingLanguage," code"),Q(3),sn(".",e.data.analyzedProgrammingLanguage,"")}}let F4e=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.isSuspiciuosMetricsVisible=!0}toggleSuspiciousMetricsVisibility(){this.isSuspiciuosMetricsVisible=!this.isSuspiciuosMetricsVisible}applySuspiciousMetric(e,i){this.store.dispatch(vh({value:lI})),this.store.dispatch(wh({value:e.metric})),this.store.dispatch(pd({value:e.metric})),this.store.dispatch(ru({value:{from:e.from,to:i?e.outlierThreshold:e.to}})),this.store.dispatch(bh({value:{positive:i?"#ffffff":Cu.positive,neutral:i?"#ffffff":Cu.neutral,negative:i?"#A900C0":Cu.negative}})),this.matMenuTriggerReference.closeMenu()}getNameAndDescriptionOfMetric(e){const i=vb.get(e);return i?`${e.toUpperCase()} (${i.toLowerCase()})`:e.toUpperCase()}getDescriptionOfMetric(e){const i=vb.get(e);return i?`${i.toLowerCase()}`:""}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:2,vars:1,consts:[[1,"sub-title",3,"title"],["data-testid","Suspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"],[1,"text-content","grid-container-suspicious"],["id","spacer"],[3,"title"],[3,"click","title"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],["title","Show very high risk files (90th percentile)"],[1,"sub-sub-title"],["title","Show very high risk files (90th percentile)",3,"click"],[1,"fa","fa-exclamation-triangle","risk-button-active"],["title","No high risk profile detected","disabled",""],[1,"fa","fa-exclamation-triangle"],[1,"sub-title-not-text-content","sub-title",3,"title"]],template:function(i,r){1&i&&pt(0,T4e,9,8)(1,I4e,5,3),2&i&&Tt(0,r.data.suspiciousMetricSuggestionLinks.length?0:1)},dependencies:[nu,lN,tx,jJ],styles:[".grid-container-suspicious[_ngcontent-%COMP%]{display:grid;column-gap:4px;row-gap:8px;grid-template-columns:auto auto auto;place-items:center left}.grid-container-suspicious[_ngcontent-%COMP%] #spacer[_ngcontent-%COMP%]{width:14px}.grid-container-suspicious.text-content[_ngcontent-%COMP%]{padding-top:16px}.grid-container-suspicious[_ngcontent-%COMP%] .fa-exclamation-triangle.risk-button-active[_ngcontent-%COMP%]{color:#9c0e6a}.sub-sub-title[_ngcontent-%COMP%]{font-size:11px;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sub-title-not-text-content[_ngcontent-%COMP%]{padding-bottom:8px}"]})}}return n})();const D4e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function k4e(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",2),ze("click",function(){return Ot(e),Rt(Le(2).toggleUntrackedMetricsVisibility())}),D(2,"span",3),xe(3,"i",4),U(),ye(4," Untracked metrics in "),D(5,"code"),ye(6),U(),ye(7," code "),U()()}if(2&n){const e=Le(2);Q(3),_e("ngClass",ul(2,D4e,!e.isUntrackedMetricsVisible,e.isUntrackedMetricsVisible)),Q(3),sn(".",e.data.analyzedProgrammingLanguage,"")}}function B4e(n,t){if(1&n&&(D(0,"li"),ye(1),U()),2&n){const e=t.$implicit;Q(),br(e)}}function P4e(n,t){if(1&n&&(D(0,"ul",1),Or(1,B4e,2,1,"li",null,qr),U()),2&n){const e=Le(2);Q(),Lr(e.data.untrackedMetrics)}}function R4e(n,t){1&n&&(D(0,"div"),ye(1,"No programming language was found for analyzing suspicious metrics."),U())}function O4e(n,t){if(1&n&&pt(0,k4e,8,5,"div",0)(1,P4e,3,0,"ul",1)(2,R4e,2,0,"div"),2&n){const e=Le();Tt(0,e.data.analyzedProgrammingLanguage.length?0:-1),Q(),Tt(1,e.isUntrackedMetricsVisible?1:-1),Q(),Tt(2,void 0===e.data.analyzedProgrammingLanguage?2:-1)}}let L4e=(()=>{class n{constructor(){this.isUntrackedMetricsVisible=!1}toggleUntrackedMetricsVisibility(){this.isUntrackedMetricsVisible=!this.isUntrackedMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-untracked-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Untracked Metrics in ts Code",1,"text-content"],["data-testid","Untracked Metrics","title","Show/Hide Untracked Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&pt(0,O4e,3,3),2&i&&Tt(0,r.data.untrackedMetrics.length?0:-1)},dependencies:[nu],encapsulation:2})}}return n})();const N4e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function U4e(n,t){if(1&n){const e=Dn();D(0,"div",0)(1,"button",2),ze("click",function(){return Ot(e),Rt(Le(2).toggleUnsuspiciousMetricsVisibility())}),D(2,"span",3),xe(3,"i",4),U(),ye(4," Unsuspicious metrics in "),D(5,"code"),ye(6),U(),ye(7," code "),U()()}if(2&n){const e=Le(2);Q(3),_e("ngClass",ul(2,N4e,!e.isUnsuspiciuosMetricsVisible,e.isUnsuspiciuosMetricsVisible)),Q(3),sn(".",e.data.analyzedProgrammingLanguage,"")}}function H4e(n,t){if(1&n&&(D(0,"li"),ye(1),U()),2&n){const e=t.$implicit;Q(),br(e)}}function V4e(n,t){if(1&n&&(D(0,"ul",1),Or(1,H4e,2,1,"li",null,qr),U()),2&n){const e=Le(2);Q(),Lr(e.data.unsuspiciousMetrics)}}function Q4e(n,t){if(1&n&&pt(0,U4e,8,5,"div",0)(1,V4e,3,0,"ul",1),2&n){const e=Le();Tt(0,e.data.analyzedProgrammingLanguage.length?0:-1),Q(),Tt(1,e.isUnsuspiciuosMetricsVisible?1:-1)}}let z4e=(()=>{class n{constructor(){this.isUnsuspiciuosMetricsVisible=!1}toggleUnsuspiciousMetricsVisibility(){this.isUnsuspiciuosMetricsVisible=!this.isUnsuspiciuosMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-unsuspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Unsuspicious Metrics in ts Code",1,"text-content"],["data-testid","Unsuspicious Metrics","title","Show/Hide Unsuspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&pt(0,Q4e,2,2),2&i&&Tt(0,r.data.unsuspiciousMetrics.length?0:-1)},dependencies:[nu],encapsulation:2})}}return n})(),XJ=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.dialog.open(y4e,{width:"500px"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metrics-menu"]],viewQuery:function(i,r){if(1&i&&(ti(wb,5),ti(Su,5)),2&i){let o;an(o=ln())&&(r.menuTrigger=o.first),an(o=ln())&&(r.menu=o.first)}},inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:9,vars:6,consts:[[3,"click"],[1,"title"],["icon","fa fa-question-circle-o","title","Open Information about Suspicious Metrics",3,"click"],[1,"suspicious-menu-content-wrapper"],[3,"data","matMenuTriggerReference"]],template:function(i,r){1&i&&(D(0,"div",0),ze("click",function(s){return s.stopPropagation()}),D(1,"div")(2,"div",1),ye(3,"Suspicious Metrics"),U(),D(4,"cc-action-icon",2),ze("click",function(){return r.openDialog()}),U()(),D(5,"div",3),xe(6,"cc-suspicious-metrics-list",4)(7,"cc-unsuspicious-metrics-list",4)(8,"cc-untracked-metrics-list",4),U()()),2&i&&(Q(6),_e("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),Q(),_e("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),Q(),_e("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference))},dependencies:[eg,F4e,L4e,z4e],styles:[".suspicious-menu-content-wrapper[_ngcontent-%COMP%]{padding:8px}"]})}}return n})();const q4e=["matMenuTrigger"];function G4e(n,t){if(1&n&&(D(0,"span",3),ye(1),U()),2&n){const e=Le();Q(),sn(" ",e.data.suspiciousMetricSuggestionLinks.length," ")}}let W4e=(()=>{class n{constructor(){this.hideBadge=!1}ngOnChanges(e){e.data&&!JA(e.data.previousValue,e.data.currentValue)&&(this.hideBadge=!1)}ngAfterViewInit(){this.menuComponent&&(this.menu=this.menuComponent.menu)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-suspicious-metrics"]],viewQuery:function(i,r){if(1&i&&(ti(XJ,5),ti(q4e,5)),2&i){let o;an(o=ln())&&(r.menuComponent=o.first),an(o=ln())&&(r.matMenuTrigger=o.first)}},inputs:{data:"data",menu:"menu"},features:[xr],decls:6,vars:5,consts:[["matMenuTrigger","matMenuTrigger"],["menu","matMenu"],["icon","fa-exclamation-triangle",3,"click","title","matMenuTriggerFor"],[1,"cc-suspicious-metrics-badge"],[1,"cc-ai-drop-down","cc-suspicious-metric-panel"],[3,"data","matMenuTriggerReference"]],template:function(i,r){if(1&i){const o=Dn();D(0,"cc-ribbon-bar-menu-button",2,0),ze("click",function(){return Ot(o),Rt(r.hideBadge=!0)}),pt(2,G4e,2,1,"span",3),U(),D(3,"mat-menu",4,1),xe(5,"cc-suspicious-metrics-menu",5),U()}if(2&i){const o=Lo(1),s=Lo(4);_e("title","Open Suspicious Metrics Panel")("matMenuTriggerFor",s),Q(2),Tt(2,r.hideBadge||void 0===r.data.analyzedProgrammingLanguage&&!r.data.suspiciousMetricSuggestionLinks.length&&!r.data.unsuspiciousMetrics.length?-1:2),Q(3),_e("data",r.data)("matMenuTriggerReference",o)}},dependencies:[Su,wb,oI,XJ],styles:[".cc-suspicious-metrics-badge[_ngcontent-%COMP%]{position:absolute;bottom:10px;padding:4px 6px;border-radius:50%;background:red;color:#fff;font-size:10px;line-height:10px}"]})}}return n})(),$4e=(()=>{class n{constructor(e){this.element=e,this.ccRiskProfileBar=0}ngOnChanges(e){e.ccRiskProfileBar&&(this.element.nativeElement.style.display=this.ccRiskProfileBar>0?"flex":"none",this.element.nativeElement.style.width=`${this.ccRiskProfileBar}%`,this.element.nativeElement.style.color=this.ccRiskProfileBar>5?"black":"rgba(0,0,0,0)")}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","ccRiskProfileBar",""]],inputs:{ccRiskProfileBar:"ccRiskProfileBar"},features:[xr]})}}return n})();function j4e(n,t){if(1&n&&(D(0,"div",3),ye(1,"Risk Profile"),U(),D(2,"div",4),ye(3," The Risk Profile gives a quick overview about the complexity and risk structure of the code base. It tells you how much of the code is placed in files associated with low/high risk in means of maintainability. The separation of code in risk classes like low or high complexity is based on Java reference metric values and therefore may be inaccurate for other programming languages. More information can be found in the "),D(4,"a",5),ye(5,"How-To Article "),xe(6,"i",6),U(),ye(7,". "),U(),D(8,"div",7)(9,"div"),xe(10,"i",8),ye(11," Calculations are based on an available complexity metric"),U()(),D(12,"div",4)(13,"ul")(14,"li"),ye(15),U(),D(16,"li"),ye(17),U(),D(18,"li"),ye(19),U(),D(20,"li"),ye(21),U()()(),D(22,"div",9)(23,"div",10),ye(24),U(),D(25,"div",11),ye(26),U(),D(27,"div",12),ye(28),U(),D(29,"div",13),ye(30),U()()),2&n){const e=Le();Q(15),sn("",e.data.riskProfile.lowRisk,"% of overall code is in files with low complexity"),Q(2),sn("",e.data.riskProfile.moderateRisk,"% of overall code is in files with moderate complexity"),Q(2),sn("",e.data.riskProfile.highRisk,"% of overall code is in files with high complexity"),Q(2),sn("",e.data.riskProfile.veryHighRisk,"% of overall code is in files with extreme complexity"),Q(2),sd("title","Low Risk (",e.data.riskProfile.lowRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.lowRisk),Q(),sn(" ",e.data.riskProfile.lowRisk,"% "),Q(),sd("title","Moderate Risk (",e.data.riskProfile.moderateRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.moderateRisk),Q(),sn(" ",e.data.riskProfile.moderateRisk,"% "),Q(),sd("title","High Risk (",e.data.riskProfile.highRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.highRisk),Q(),sn(" ",e.data.riskProfile.highRisk,"% "),Q(),sd("title","Very High Risk (",e.data.riskProfile.veryHighRisk,"% of code)"),_e("ccRiskProfileBar",e.data.riskProfile.veryHighRisk),Q(),sn(" ",e.data.riskProfile.veryHighRisk,"% ")}}function X4e(n,t){1&n&&(D(0,"span"),ye(1," Could not calculate Risk Profile. At least one of the metrics rloc (real lines of code) or complexity (cyclomatic complexity) is not available. "),U(),xe(2,"br")(3,"br"),D(4,"span"),ye(5," Be aware that complexity was previously named mcc. Old maps which still contain mcc instead of complexity need to be regenerated for the risk profile to work. "),U())}let K4e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-high-risk-profile"]],inputs:{data:"data"},decls:5,vars:4,consts:[["menu","matMenu"],["icon","fa-bar-chart",3,"title","matMenuTriggerFor"],[1,"cc-ai-drop-down","cc-high-risk-profile"],[1,"title"],[1,"text-content"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[1,"sub-title"],[1,"fa","fa-lightbulb-o"],[1,"cc-risk-profiles"],[1,"cc-risk-profile","cc-low-risk",3,"ccRiskProfileBar","title"],[1,"cc-risk-profile","cc-moderate-risk",3,"ccRiskProfileBar","title"],[1,"cc-risk-profile","cc-high-risk",3,"ccRiskProfileBar","title"],[1,"cc-risk-profile","cc-very-high-risk",3,"ccRiskProfileBar","title"]],template:function(i,r){if(1&i&&(xe(0,"cc-ribbon-bar-menu-button",1),D(1,"mat-menu",2,0),pt(3,j4e,31,20)(4,X4e,6,0),U()),2&i){const o=Lo(2);_e("title","Open High Risk Profile")("matMenuTriggerFor",o),Q(3),Tt(3,void 0!==r.data.riskProfile?3:-1),Q(),Tt(4,void 0===r.data.riskProfile?4:-1)}},dependencies:[Su,wb,oI,$4e],styles:["ul[_ngcontent-%COMP%]{margin:0}.cc-risk-profiles[_ngcontent-%COMP%]{margin:0 -10px -10px;display:flex}.cc-risk-profile[_ngcontent-%COMP%]{height:36px;text-align:center;justify-content:center;align-items:center;overflow:hidden}.cc-risk-profile.cc-low-risk[_ngcontent-%COMP%]{background-color:#5cb34d}.cc-risk-profile.cc-moderate-risk[_ngcontent-%COMP%]{background-color:#eef432}.cc-risk-profile.cc-high-risk[_ngcontent-%COMP%]{background-color:#cc2900}.cc-risk-profile.cc-very-high-risk[_ngcontent-%COMP%]{background-color:#9c0e6a}.sub-title[_ngcontent-%COMP%]{font-size:16px}"]})}}return n})();function Y4e(n,t){if(1&n&&xe(0,"cc-suspicious-metrics",0)(1,"cc-high-risk-profile",0),2&n){const e=t;_e("data",e),Q(),_e("data",e)}}let Z4e=(()=>{class n{constructor(e){this.store=e,this.data$=this.store.select(v4e)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-artificial-intelligence"]],decls:2,vars:3,consts:[[3,"data"]],template:function(i,r){if(1&i&&(pt(0,Y4e,2,2),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.data$))?0:-1,o)}},dependencies:[W4e,K4e,Kn],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();const J4e=["trigger"],eOe=["panel"],tOe=[[["mat-select-trigger"]],"*"],nOe=["mat-select-trigger","*"];function iOe(n,t){if(1&n&&(D(0,"span",4),ye(1),U()),2&n){const e=Le();Q(),br(e.placeholder)}}function rOe(n,t){1&n&&Vn(0)}function oOe(n,t){if(1&n&&(D(0,"span",11),ye(1),U()),2&n){const e=Le(2);Q(),br(e.triggerValue)}}function sOe(n,t){if(1&n&&(D(0,"span",10),pt(1,rOe,1,0)(2,oOe,2,1),U()),2&n){const e=Le();Q(),Tt(1,e.customTrigger?1:2)}}function aOe(n,t){if(1&n){const e=Dn();D(0,"div",12,1),ze("@transformPanel.done",function(r){return Ot(e),Rt(Le()._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){return Ot(e),Rt(Le()._handleKeydown(r))}),Vn(2,1),U()}if(2&n){const e=Le();hh("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),_e("ngClass",e.panelClass)("@transformPanel","showing"),pi("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const lOe={transformPanelWrap:Dh("transformPanelWrap",[Zl("* => void",QR("@transformPanel",[VR()],{optional:!0}))]),transformPanel:Dh("transformPanel",[Dc("void",jo({opacity:0,transform:"scale(1, 0.8)"})),Zl("void => showing",Fc("120ms cubic-bezier(0, 0, 0.2, 1)",jo({opacity:1,transform:"scale(1, 1)"}))),Zl("* => void",Fc("100ms linear",jo({opacity:0})))])};let KJ=0;const YJ=new dt("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const n=Qt(Ls);return()=>n.scrollStrategies.reposition()}}),dOe=new dt("MAT_SELECT_CONFIG"),uOe={provide:YJ,deps:[Ls],useFactory:function cOe(n){return()=>n.scrollStrategies.reposition()}},ZJ=new dt("MatSelectTrigger");class hOe{constructor(t,e){this.source=t,this.value=e}}let Gm=(()=>{class n{_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const r=this.panel.nativeElement,o=function f1e(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),o=0;for(let s=0;se+i?Math.max(0,n-i+t):e}(s.offsetTop,s.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new hOe(this,e)}get focused(){return this._focused||this._panelOpen}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(HB.required)??!1}set required(e){this._required=e,this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=e}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u,h,f,A,y){this._viewportRuler=e,this._changeDetectorRef=i,this._elementRef=s,this._dir=a,this._parentFormField=d,this.ngControl=u,this._liveAnnouncer=A,this._defaultOptions=y,this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._panelOpen=!1,this._compareWith=(_,b)=>_===b,this._uid="mat-select-"+KJ++,this._triggerAriaLabelledBy=null,this._destroy=new Ln,this.stateChanges=new Ln,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+KJ++,this._panelDoneAnimatingStream=new Ln,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._multiple=!1,this.disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._initialized=new Ln,this.optionSelectionChanges=RR(()=>{const _=this.options;return _?_.changes.pipe(gd(_),gh(()=>Yl(..._.map(b=>b.onSelectionChange)))):this._initialized.pipe(gh(()=>this.optionSelectionChanges))}),this.openedChange=new Fn,this._openedStream=this.openedChange.pipe(qi(_=>_),Qe(()=>{})),this._closedStream=this.openedChange.pipe(qi(_=>!_),Qe(()=>{})),this.selectionChange=new Fn,this.valueChange=new Fn,this._trackedModal=null,this._skipPredicate=_=>!this.panelOpen&&_.disabled,this.ngControl&&(this.ngControl.valueAccessor=this),null!=y?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=y.typeaheadDebounceInterval),this._errorStateTracker=new NR(o,u,c,l,this.stateChanges),this._scrollStrategyFactory=f,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(h)||0,this.id=this.id}ngOnInit(){this._selectionModel=new $T(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(d1(),oo(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(oo(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(oo(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(gd(null),oo(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&ER(this._trackedModal,"aria-owns",i),t$(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(ER(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,r=40===i||38===i||37===i||39===i,o=13===i||32===i,s=this._keyManager;if(!s.isTyping()&&o&&!Ad(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,r=e.keyCode,o=40===r||38===r,s=i.isTyping();if(o&&e.altKey)e.preventDefault(),this.close();else if(s||13!==r&&32!==r||!i.activeItem||Ad(e))if(!s&&this._multiple&&65===r&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&o&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe($o(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return null!=r.value&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof CR?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new vye(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Yl(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(oo(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Yl(...this.options.map(i=>i._stateChanges)).pipe(oo(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const r=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;i=this.multiple?this.selected.map(r=>r.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static{this.\u0275fac=function(i){return new(i||n)($(bR),$(vo),$(In),$(_$),$(Nn),$(Eh,8),$(s1,8),$(a1,8),$(IN,8),$(iu,10),zl("tabindex"),$(YJ),$(Nye),$(dOe,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,ZJ,5),Gr(o,du,5),Gr(o,S$,5)),2&i){let s;an(s=ln())&&(r.customTrigger=s.first),an(s=ln())&&(r.options=s),an(s=ln())&&(r.optionGroups=s)}},viewQuery:function(i,r){if(1&i&&(ti(J4e,5),ti(eOe,5),ti(jW,5)),2&i){let o;an(o=ln())&&(r.trigger=o.first),an(o=ln())&&(r.panel=o.first),an(o=ln())&&(r._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){1&i&&ze("keydown",function(s){return r._handleKeydown(s)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),2&i&&(pi("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),Un("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[Ct.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ba(e)],hideSingleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Jn],placeholder:"placeholder",required:[Ct.HasDecoratorInputTransform,"required","required",Jn],multiple:[Ct.HasDecoratorInputTransform,"multiple","multiple",Jn],disableOptionCentering:[Ct.HasDecoratorInputTransform,"disableOptionCentering","disableOptionCentering",Jn],compareWith:"compareWith",value:"value",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[Ct.HasDecoratorInputTransform,"typeaheadDebounceInterval","typeaheadDebounceInterval",ba],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],standalone:!0,features:[ui([{provide:TN,useExisting:n},{provide:E$,useExisting:n}]),rs,xr,Nr],ngContentSelectors:nOe,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(1&i){const o=Dn();Yr(tOe),D(0,"div",2,0),ze("click",function(){return Ot(o),Rt(r.open())}),D(3,"div",3),pt(4,iOe,2,1,"span",4)(5,sOe,3,1),U(),D(6,"div",5)(7,"div",6),Ul(),D(8,"svg",7),xe(9,"path",8),U()()()(),pt(10,aOe,3,9,"ng-template",9),ze("backdropClick",function(){return Ot(o),Rt(r.close())})("attach",function(){return Ot(o),Rt(r._onAttached())})("detach",function(){return Ot(o),Rt(r.close())})}if(2&i){const o=Lo(1);Q(3),pi("id",r._valueId),Q(),Tt(4,r.empty?4:5),Q(6),_e("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[CR,jW,nu],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}'],encapsulation:2,data:{animation:[lOe.transformPanel]},changeDetection:0})}}return n})(),JJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-select-trigger"]],standalone:!0,features:[ui([{provide:ZJ,useExisting:n}])]})}}return n})(),eee=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[uOe],imports:[mn,q1,T$,fr,U1,cx,T$,fr]})}}return n})();const tee=Kt(mb,Yw,(n,t)=>n.get(t));class fOe{constructor(){this.vertexShaderCode=p(1812),this.fragmentShaderCode=p(1190)}}class mOe{constructor(t){this._buildings=new Array,this.mapSize=t,this.scales=new se(1,1,1)}add(t){this._buildings.push(t)}get buildings(){return this._buildings}setScales(t){this.scales=new se(t.x,t.y,t.z)}getBuildingByPath(t){return this.buildings.find(e=>e.node.path===t)}intersect(t){let e,i=Number.POSITIVE_INFINITY;const r=this.scales.clone().multiplyScalar(this.mapSize).multiply(new se(-1,0,-1));for(const o of this._buildings){const s=o.boundingBox.clone();if(s.min.multiply(this.scales),s.max.multiply(this.scales),s.translate(r),this.rayIntersectsAxisAlignedBoundingBox(t,s)){const a=t.intersectBox(s,new se);if(a){const l=a.distanceTo(t.origin);l=o}}class pOe{constructor(t,e,i,r){this._id=t,this._boundingBox=e,this._color=r,this._defaultColor=r,this._deltaColor="#000000",this._defaultDeltaColor="#000000",this._node=i}getCenterPoint(t){return new se(this._node.x0-t+this._node.width/2,this._node.z0+this._node.height,this._node.y0-t+this._node.length/2)}decreaseLightness(t){this._color=this._decreaseLightnessForColor(this._defaultColor,t),this._node.deltas&&(this._deltaColor=this._decreaseLightnessForColor(this._defaultDeltaColor,t))}_decreaseLightnessForColor(t,e){const i=lr.hexToHSL(t);return i.decreaseLightness(e),i.getLightness()<10?i.setLightness(10):i.setLightness(i.getLightness()),i.toHex()}getColorVector(){return lr.getVector3(this._color)}getDefaultColorVector(){return lr.getVector3(this._defaultColor)}getDeltaColorVector(){return lr.getVector3(this._deltaColor)}getDefaultDeltaColorVector(){return lr.getVector3(this._defaultDeltaColor)}resetColor(){this._color=this._defaultColor,this._deltaColor=this._defaultDeltaColor}equals(t){return this._id===t._id}get id(){return this._id}get boundingBox(){return this._boundingBox}get color(){return this._color}get node(){return this._node}get deltaColor(){return this._deltaColor}get defaultDeltaColor(){return this._defaultDeltaColor}setColor(t){this._color=t}setNode(t){this._node=t}setInitialDeltaColor(t){this._defaultDeltaColor=t,this._deltaColor=t}setDeltaColor(t){this._deltaColor=t}}var cI=function(n){return n[n.left=0]="left",n[n.right=1]="right",n[n.bottom=2]="bottom",n[n.top=3]="top",n[n.back=4]="back",n[n.front=5]="front",n}(cI||{});const AOe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],nee=[1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1];function iee(n,t,e,i,r,o,s){o.add(new pOe(r,new Us(new se(e.x,e.y,e.z),new se(e.x+e.width,e.y+e.height,e.z+e.depth)),t,i)),n.uvs.set(nee,r*nee.length),function gOe(n,t,e){const{x:i,y:r,z:o,width:s,height:a,depth:l}=t,c=i+s,d=r+a,u=o+l;let h=4*e*6*3;n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=o}(n.positions,e,r),function bOe(n,t,e,i,r,o){const{y:s,height:a}=t,c=i/(s+a-s);let d=6*r*4,u=3*d,h=6*r*6;const f=lr.getVector3Array(e);for(let A=0;A<6;A++){const y=_Oe(A,n),_=AOe[A],b=d,M=d+1,C=d+2,E=d+3;o.isHeight.set(y,d);for(const H=d+4;d{class n{static{this.MINIMAL_BUILDING_HEIGHT=1}build(e,i,r,o){const s=new mOe(us);this.floorGradient=lr.gradient("#333333","#DDDDDD",this.getMaxNodeDepth(e)),this.materials=[i];const a=e.length,h=4*a*6,f={positions:new Float32Array(3*h),uvs:new Float32Array(2*h),normals:new Float32Array(3*h),colors:new Float32Array(3*h),indices:new Uint32Array(6*a*6),ids:new Float32Array(h),deltas:new Float32Array(h),isHeight:new Float32Array(h)};for(const[A,y]of e.entries())y.isLeaf?this.addBuilding(f,y,A,s,r,o):this.addFloor(f,y,A,s);return{mesh:this.buildMeshFromIntermediateVertexData(f),desc:s}}getMaxNodeDepth(e){return e.reduce((i,{depth:r})=>Math.max(r,i),0)}mapNodeToLocalBox(e){return{x:e.x0,y:e.z0,z:e.y0,width:e.width,height:e.height,depth:e.length}}ensureMinHeightUnlessDeltaIsNegative(e,i){return i<=0?e:Math.max(e,n.MINIMAL_BUILDING_HEIGHT)}addFloor(e,i,r,o){const s=this.getMarkingColorWithGradient(i);iee(e,i,this.mapNodeToLocalBox(i),s,r,o,0)}getMarkingColorWithGradient(e){if(e.markingColor){const r=lr.getNumber(e.markingColor)&(e.depth%2==0?14540253:16777215);return lr.convertNumberToHex(r)}return this.floorGradient[e.depth]}addBuilding(e,i,r,o,s,a){const l=this.mapNodeToLocalBox(i);l.height=this.ensureMinHeightUnlessDeltaIsNegative(i.height,i.heightDelta);let c=0;a&&i.deltas&&i.deltas[s.dynamicSettings.heightMetric]&&i.heightDelta&&(c=i.heightDelta,!i.flat&&c<0&&(l.height+=Math.abs(c))),iee(e,i,l,i.color,r,o,c)}buildMeshFromIntermediateVertexData(e){const o=new Float32Array(e.colors),s=new gi;return s.setAttribute("position",new tr(e.positions,3)),s.setAttribute("normal",new tr(e.normals,3)),s.setAttribute("isHeight",new tr(e.isHeight,1)),s.setAttribute("uv",new tr(e.uvs,2)),s.setAttribute("color",new tr(e.colors,3)),s.setAttribute("deltaColor",new tr(o,3)),s.setAttribute("subGeomIdx",new tr(e.ids,1)),s.setAttribute("delta",new tr(e.deltas,1)),s.setIndex(new tr(e.indices,1)),s.addGroup(0,Number.POSITIVE_INFINITY,0),new ki(s,this.materials)}}return n})(),yOe=(()=>{class n{static{this.NUM_OF_COLOR_VECTOR_FIELDS=3}static{this.NUM_OF_VERTICES=24}static{this.LIGHTNESS_INCREASE=-10}static{this.LIGHTNESS_DECREASE=20}constructor(e,i,r){this.initMaterial(),this.geomGen=new vOe,this.material.precision="lowp";const o=this.geomGen.build(e,this.material,i,r);this.threeMesh=o.mesh,this.mapGeomDesc=o.desc,this.nodes=e,this.initDeltaColorsOnMesh(i)}getThreeMesh(){return this.threeMesh}getNodes(){return this.nodes}selectBuilding(e,i){e.setColor(i),e.setDeltaColor(i),this.setVertexColor(e.id,e.getColorVector(),e.getDeltaColorVector()),this.updateVertices()}clearSelection(e){e.resetColor(),this.setVertexColor(e.id,e.getDefaultColorVector(),e.getDefaultDeltaColorVector()),this.updateVertices()}getMeshDescription(){return this.mapGeomDesc}getBuildingByPath(e){return this.mapGeomDesc.getBuildingByPath(e)}checkMouseRayMeshIntersection(e,i){const r=this.calculatePickingRay(e,i);return this.getMeshDescription().intersect(r)}setScale(e){this.mapGeomDesc.setScales(e)}highlightBuilding(e,i,r,o){const s=Ca.buildingArrayToMap(e);for(const a of this.mapGeomDesc.buildings)this.isBuildingSelected(i,a)||(s.get(a.id)||o.get(a.id)?a.decreaseLightness(n.LIGHTNESS_INCREASE):this.adjustSurroundingBuildingColors(e,a,r),this.setVertexColor(a.id,a.getColorVector(),a.getDeltaColorVector()));this.updateVertices()}clearHighlight(e){for(const i of this.mapGeomDesc.buildings)this.isBuildingSelected(e,i)||this.setVertexColor(i.id,i.getDefaultColorVector(),i.getDefaultDeltaColorVector());this.updateVertices()}adjustSurroundingBuildingColors(e,i,r){if(r.appSettings.isPresentationMode){const o=e[0].getCenterPoint(us).distanceTo(i.getCenterPoint(us));this.decreaseLightnessByDistance(i,o)}else i.decreaseLightness(n.LIGHTNESS_DECREASE)}initDeltaColorsOnMesh(e){if(this.mapGeomDesc.buildings[0]?.node.deltas){for(const i of this.mapGeomDesc.buildings)this.setNewDeltaColor(i,e),this.setVertexColor(i.id,i.getColorVector(),i.getDeltaColorVector());this.updateVertices()}}setNewDeltaColor(e,i){const{appSettings:{mapColors:r},dynamicSettings:{heightMetric:o}}=i,{node:s}=e;if(s.flat)e.setInitialDeltaColor(r.flat);else if(s.deltas){const a=s.deltas[o];a>0&&e.setInitialDeltaColor(r.positiveDelta),a<0&&e.setInitialDeltaColor(r.negativeDelta)}}isBuildingSelected(e,i){return e&&i.equals(e)}decreaseLightnessByDistance(e,i){i>800?e.decreaseLightness(40):i>400?e.decreaseLightness(30):i>250?e.decreaseLightness(20):i>100?e.decreaseLightness(15):i>50&&e.decreaseLightness(10)}setVertexColor(e,i,r){const o=n.NUM_OF_VERTICES,s=e*o,a=this.threeMesh.geometry.getAttribute("color"),l=this.threeMesh.geometry.getAttribute("deltaColor");for(let c=s;cthis.height?this.height:this.width}isVertical(){return this.height>this.width}area(){return this.width*this.height}getBottomRight(){return this.bottomRight}}class HN{constructor(t){this.height=0,this.width=0,this.FIXED_MARGIN=.5,this.mapNode=t}getNode(){return this.mapNode}createMarginatedRectangle(t){const e=new nt(t.x+this.FIXED_MARGIN,t.y+this.FIXED_MARGIN);return new Wm(e,this.width-2*this.FIXED_MARGIN,this.height-2*this.FIXED_MARGIN)}}var VN=function(n){return n[n.Horizontal=0]="Horizontal",n[n.Vertical=1]="Vertical",n}(VN||{});class ree extends HN{constructor(){super(...arguments),this.spacer=2}getStreetThickness(){const t=this.mapNode.path.split("/"),e=this.mapNode.path.startsWith("/root/")&&3===t.length&&""!==t[2];return"/root"===this.mapNode.path||e?this.calculateRootStreetThickness(this.mapNode):this.calculateNonRootThickness(this.mapNode)}calculateNonRootThickness(t){return 2+5e-4*t.attributes.unary}calculateRootStreetThickness(t){return 8+.001*t.attributes.unary}}function dI(n,t){let e=n.attributes[t]||0;if(0===e&&n.children&&n.children.length>0)for(const i of n.children)e+=dI(i,t);return e}const Eb={calculateSize:dI,mergeDirectories:function wOe(n,t){let e=n;const i=dI(n,t);for(const r of n.children)if(!No(r)&&i===dI(r,t)){const s=e.name;e=r,e.name=`${s}/${r.name}`;break}return e},buildNodeFrom:function xOe(n,t,e,i,r){const o=!(n.children&&n.children.length>0),s=NT(n,i),a=Ca.getHeightValue(i,n,e,s),l=Math.abs(o?Math.max(t*a,Ca.MIN_BUILDING_HEIGHT):Ca.FOLDER_HEIGHT),c=n.rect.height,d=n.rect.topLeft.x,u=n.rect.topLeft.y,h=n.zOffset*Ca.FOLDER_HEIGHT;return{name:n.name,id:n.id,width:n.rect.width,height:l,length:c,depth:n.zOffset,mapNodeDepth:100,x0:d,z0:h,y0:u,isLeaf:o,attributes:n.attributes,edgeAttributes:n.edgeAttributes,deltas:n.deltas,heightDelta:n.deltas?.[i.dynamicSettings.heightMetric]?t*n.deltas[i.dynamicSettings.heightMetric]:0,visible:KL(n,o,i,s),path:n.path,link:n.link,markingColor:f2(n,i.fileSettings.markedPackages),flat:s,color:YL(n,i,Jh(i),r,s),incomingEdgePoint:LT(n.rect.width,l,c,new se(d,h,u),us),outgoingEdgePoint:LT(n.rect.width,l,c,new se(d,h,u),us)}}};var $m=function(n){return n[n.RIGHT=0]="RIGHT",n[n.LEFT=1]="LEFT",n}($m||{});class tg extends ree{constructor(t,e,i=$m.RIGHT){super(t),this.children=[],this.topRow=[],this.bottomRow=[],this.children=e,this.orientation=i}calculateDimension(t){for(const e of this.children)e.calculateDimension(t);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=Eb.calculateSize(this.mapNode,t),this.width=Math.max(this.getLength(this.topRow),this.getLength(this.bottomRow)),this.height=this.getMaxHeight(this.topRow)+this.getStreetThickness()+this.getMaxHeight(this.bottomRow)+this.spacer}layout(t,e){const i=this.getMaxHeight(this.topRow),r=this.layoutTopRow(e,i,t),o=this.layoutBottomRow(e,i,t);return[...r,this.layoutStreet(e,i),...o]}layoutTopRow(t,e,i){const r=new nt(t.x,t.y),o=[];if(this.orientation===$m.LEFT){const s=this.getLength(this.topRow);r.x+=this.width-s}for(let s=0;sMath.max(e,i.height),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===$m.LEFT?this.calculateLeftStreetOverhang(t):this.calculateRightStreetOverhang(t)}calculateLeftStreetOverhang(t){const e=this.topRow[0],i=this.bottomRow[0],r=e instanceof Sb&&e.streetRect?e.streetRect.topLeft.x-t.x:this.width-this.getLength(this.topRow),o=i instanceof Sb&&i.streetRect?i.streetRect.topLeft.x-t.x:this.width-this.getLength(this.bottomRow);return r>0&&o>0?Math.min(r,o):0}calculateRightStreetOverhang(t){const e=this.topRow.at(-1),i=this.bottomRow.at(-1),r=t.x+this.width,o=e instanceof Sb&&e.streetRect?r-e.streetRect.getBottomRight().x:this.width-this.getLength(this.topRow),s=i instanceof Sb&&i.streetRect?r-i.streetRect.getBottomRight().x:this.width-this.getLength(this.bottomRow);return o>0&&s>0?Math.min(o,s):0}}var jm=function(n){return n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n}(jm||{});class Sb extends ree{constructor(t,e,i,r=jm.UP){super(t),this.children=[],this.leftRow=[],this.rightRow=[],this.children=e,this.orientation=r}calculateDimension(t){for(const e of this.children)e.calculateDimension(t);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=Eb.calculateSize(this.mapNode,t),this.width=this.getMaxWidth(this.leftRow)+this.getStreetThickness()+this.getMaxWidth(this.rightRow)+2*this.spacer,this.height=Math.max(this.getLength(this.leftRow),this.getLength(this.rightRow))}layout(t,e){const i=this.getMaxWidth(this.leftRow),r=this.layoutLeftRow(e,i,t),o=this.layoutRightRow(e,i,t);return[...r,this.layoutStreet(e,i),...o]}layoutLeftRow(t,e,i){const r=new nt(t.x,t.y),o=[];if(this.orientation===jm.UP){const s=this.getLength(this.leftRow);r.y+=this.height-s}for(let s=0;se.mapNode.type===i.mapNode.type?0:e.mapNode.type===qa.FILE?-1:1)}splitChildrenToRows(t){this.sortChildrenByType(t);let e=0,i=0;for(const r of t)e+=r.height;for(const r of t)i<=e/2?(r instanceof tg&&(r.orientation=$m.LEFT),this.leftRow.push(r),i+=r.height):this.rightRow.push(r)}rearrangeRows(){this.orientation===jm.UP?this.leftRow.reverse():this.rightRow.reverse()}getMaxWidth(t){return t.reduce((e,i)=>Math.max(e,i.width),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===jm.UP?this.calculateTopStreetOverhang(t):this.calculateBottomStreetOverhang(t)}calculateTopStreetOverhang(t){const e=this.leftRow[0],i=this.rightRow[0],r=e instanceof tg&&e.streetRect?e.streetRect.topLeft.y-t.y:this.height-this.getLength(this.leftRow),o=i instanceof tg&&i.streetRect?i.streetRect.topLeft.y-t.y:this.height-this.getLength(this.rightRow);return r>0&&o>0?Math.min(r,o):0}calculateBottomStreetOverhang(t){const e=this.leftRow.at(-1),i=this.rightRow.at(-1),r=t.y+this.height,o=e instanceof tg&&e.streetRect?r-e.streetRect.getBottomRight().y:this.height-this.getLength(this.leftRow),s=i instanceof tg&&i.streetRect?r-i.streetRect.getBottomRight().y:this.height-this.getLength(this.rightRow);return o>0&&s>0?Math.min(o,s):0}}class COe extends HN{constructor(t){super(t)}calculateDimension(t){this.metricValue=Eb.calculateSize(this.mapNode,t);const e=Math.sqrt(this.metricValue);this.width=this.height=e}layout(t,e){return[{...this.mapNode,value:this.metricValue,rect:this.createMarginatedRectangle(e),zOffset:0}]}}class MOe extends HN{constructor(t){super(t),this.treeMapNodes=[]}calculateDimension(t){this.metricName=t,this.metricValue=Ca.calculateSize(this.mapNode,t),this.width=Math.sqrt(this.metricValue),this.height=Math.sqrt(this.metricValue)}}class oee{constructor(t){this.nodes=[],this.nodes=t}totalScaledSize(t,e,i,r){return t.reduce((o,s)=>o+this.scaledSize(s,i,r,e),0)}totalSize(t){return this.nodes.reduce((e,i)=>e+Ca.calculateSize(i,t),0)}min(t,e,i,r){return t.reduce((o,s)=>Math.min(o,this.scaledSize(s,i,r,e)),Number.MAX_VALUE)}max(t,e,i,r){return t.reduce((o,s)=>Math.max(o,this.scaledSize(s,i,r,e)),Number.MIN_VALUE)}populate(t,e,i,r){for(const o of t){const s=this.worstAspectRatio(this.nodes,e,i,r);if(!(this.worstAspectRatio([...this.nodes,o],e,i,r)0?A/u:0,_=new Wm(new nt(a,t.topLeft.y),y,u);h.push({...f,value:"File"===f.type?e:0,rect:this.applyNodeMargin(_,o),zOffset:r}),a+=y}return h}worstAspectRatio(t,e,i,r){const o=e.width,s=e.area(),a=this.totalScaledSize(t,r,i,s),l=this.min(t,r,i,s),c=this.max(t,r,i,s),d=Math.pow(o,2),u=Math.pow(a,2);return Math.max(d*c/u,u/(d*l))}}var zN=function(n){return n[n.topToBottom=0]="topToBottom",n[n.bottomToTop=1]="bottomToTop",n}(zN||{});class EOe extends oee{constructor(t){super(t)}layout(t,e,i,r,o,s=zN.topToBottom){let a=t.topLeft.y;s!==zN.topToBottom&&this.nodes.reverse();const l=this.nodes,c=t.area(),d=t.height,u=this.totalScaledSize(l,i,e,c)/d,h=[];for(const f of l){const A=this.scaledSize(f,e,c,i),y=u>0?A/u:0,_=new Wm(new nt(t.topLeft.x,a),u,y);h.push({...f,value:"File"===f.type?e:0,rect:this.applyNodeMargin(_,o),zOffset:r}),a+=y}return h}worstAspectRatio(t,e,i,r){const o=e.height,s=e.area(),a=this.totalScaledSize(t,r,i,s),l=this.min(t,r,i,s),c=this.max(t,r,i,s),d=o**2,u=a**2;return Math.max(d*c/u,u/(d*l))}}class SOe extends MOe{constructor(t){super(t)}layout(t,e=new nt(0,0)){const i=this.createMarginatedRectangle(e),r={...this.mapNode,value:this.metricValue,rect:i,zOffset:0},o=this.mapNode.children.filter(s=>Ca.calculateSize(s,this.metricName)>0);return this.treeMapNodes.push(r),o.length>0&&this.createNodes(o,i,this.metricValue,1,t),this.treeMapNodes}createNodes(t,e,i,r,o){let s=0,a=new Wm(new nt(e.topLeft.x,e.topLeft.y),e.width,e.height),l=i;const c=this.orderBySizeDescending(t);do{const d=this.createStrip(a,c.slice(s),l),u=d.totalSize(this.metricName);if(u>0){const h=this.createStripNodes(d,a,l,r,o);this.createChildrenNodes(h,r,o),a=this.remainingRectangle(a,d,l,a.area()),l-=u}s+=d.nodes.length}while(s0){const o=r.children.filter(s=>Ca.calculateSize(s,this.metricName)>0);if(o.length>0){const s=Ca.calculateSize(r,this.metricName);this.createNodes(o,r.rect,s,e+1,i)}}}orderBySizeDescending(t){return t.sort((e,i)=>Ca.calculateSize(i,this.metricName)-Ca.calculateSize(e,this.metricName))}}class ng{static createStreetLayoutNodes(t,e,i,r){const o=p2(e.files),s=i.find(A=>A.name===e.dynamicSettings.heightMetric).maxValue*o,a=e.dynamicSettings.areaMetric,l=Eb.mergeDirectories(t,a),d=this.createBoxes(l,a,e,VN.Vertical,1,e.appSettings.maxTreeMapFiles),u=new tg(l,d,0);return u.calculateDimension(a),u.layout(.02*e.dynamicSettings.margin,new nt(0,0)).map(A=>Eb.buildNodeFrom(A,this.calculateHeightScale(t,us,s),s,e,r))}static createBoxes(t,e,i,r,o,s){const a=[],l=i.dynamicSettings.areaMetric;for(let c of t.children){if(No(c)){a.push(new COe(c));continue}if(Ch(c.path,i.fileSettings.blacklist,"exclude"))continue;const d=i.appSettings.layoutAlgorithm,u=ng.countFileDescendants(c);if(d===hu.TreeMapStreet&&u<=s){const h=ng.createTreeMap(c);a.push(h)}else{c=Eb.mergeDirectories(c,l);const h=ng.createBoxes(c,e,i,1-r,o+1,s),f=ng.createStreet(c,r,h,o);a.push(f)}}return a}static createStreet(t,e,i,r){return e===VN.Horizontal?new tg(t,i,r):new Sb(t,i,r)}static createTreeMap(t){return new SOe(t)}static countFileDescendants(t){let e=0;for(const i of t.children)e+=No(i)?1:ng.countFileDescendants(i);return e}static calculateHeightScale(t,e,i){return 2*e/i*(1e-4*t.attributes.unary+.005*Math.sqrt(t.attributes.unary))}}const aee=Kt(so,n=>n.amountOfEdgePreviews),IOe=Kt(Xs,tf,aee,(n,t,e)=>new Set(FOe(n.nodeEdgeMetricsMap,t,e))),FOe=(n,t,e)=>{const i=[];if(0===e)return i;const r=n.get(t);if(void 0===r)return i;for(const o of r.keys())if(i.push(o),i.length===e)break;return i},DOe=Kt(k1,n=>n.edges),BOe=Kt(IOe,DOe,tf,(n,t,e)=>{const i=lu(t);return((n,t,e)=>{for(const i of t)if(i.visible=fu.none,void 0!==i.attributes[e]){const r=n.has(i.fromNodeName),o=n.has(i.toNodeName);r&&o?i.visible=fu.both:r?i.visible=fu.from:o&&(i.visible=fu.to)}})(n,i,e),i});let POe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.state=i,this.threeSceneService=r,this.idToBuildingService=o,this.VERTICES_PER_LINE=5,this.arrows=new Array,this.HIGHLIGHT_BUILDING_DELAY=1,this.debounceCalculation=Eu(s=>this.resetEdgesOfBuildings(s),this.HIGHLIGHT_BUILDING_DELAY),this.subscription=this.store.select(Yw).pipe(Dr(s=>{if(null!==s){const a=this.idToBuildingService.get(s);this.onBuildingHovered(a)}else this.onBuildingUnhovered()})).subscribe(),this.resetEdgesOfBuildings=s=>{this.isEdgeApplicableForBuilding(s)&&(this.clearArrows(),this.showEdgesOfBuildings(s)),this.scale()},this.onBuildingSelected=s=>{this.isEdgeApplicableForBuilding(s.building)&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()},this.onBuildingDeselected=()=>{this.clearArrows(),this.addEdgePreview()},this.threeSceneService.subscribe("onBuildingSelected",this.onBuildingSelected),this.threeSceneService.subscribe("onBuildingDeselected",this.onBuildingDeselected)}ngOnDestroy(){this.subscription.unsubscribe()}onBuildingHovered(e){this.debounceCalculation(e)}onBuildingUnhovered(){const{isEdgeMetricVisible:e}=this.state.getValue().appSettings;e&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()}clearArrows(){this.arrows=[],this.threeSceneService.edgeArrows.children.length=0}addArrow(e,i,r){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),a=100*o.edgeHeight;if(e.attributes?.[s.heightMetric]&&i.attributes?.[s.heightMetric]){const l=this.createCurve(i,e,a),c=lr.getNumber(o.mapColors[r?"outgoingEdge":"incomingEdge"]);this.highlightBuilding(r?e:i),this.setCurveColor(l,c)}}addEdgePreview(){const e=BOe(this.state.getValue());for(const i of e){const r=this.map.get(i.fromNodeName),o=this.map.get(i.toNodeName);if(r&&o&&i.visible!==fu.none&&i.visible){const s=100*this.state.getValue().appSettings.edgeHeight,a=this.createCurve(r,o,s);this.previewMode(a,i.visible)}}}addEdgeMapBasedOnNodes(e){this.map=this.getNodesAsMap(e)}scale(){const{scaling:e}=this.state.getValue().appSettings;for(const i of this.arrows)i.scale.x=e.x,i.scale.y=e.y,i.scale.z=e.z}isEdgeApplicableForBuilding(e){return this.state.getValue().appSettings.isEdgeMetricVisible&&e&&!e.node.flat}showEdgesOfBuildings(e){const i=new Map,r=this.threeSceneService.getSelectedBuilding();if(r){const{node:o}=r;i.set(o.path,o)}if(e){const{node:o}=e;i.set(o.path,o)}i.size>0?this.buildPairingEdges(i):this.addEdgePreview()}buildPairingEdges(e){const{edges:i}=this.state.getValue().fileSettings;for(const r of i){const o=this.map.get(r.fromNodeName);if(void 0===o)continue;const s=this.map.get(r.toNodeName);void 0!==s&&(e.has(o.path)?(this.addArrow(s,o,!0),this.threeSceneService.highlightBuildings()):e.has(s.path)&&(this.addArrow(s,o,!1),this.threeSceneService.highlightBuildings()))}}createCurve(e,i,r){const o=e.outgoingEdgePoint.clone(),s=i.incomingEdgePoint.clone(),a=Math.max(o.y+i.height,s.y+1)+r;return o.setY(a),s.setY(a),new gY(e.outgoingEdgePoint,o,s,i.incomingEdgePoint)}highlightBuilding(e){const i=this.threeSceneService.getMapMesh().getMeshDescription().getBuildingByPath(e.path);this.threeSceneService.addBuildingToHighlightingList(i)}setCurveColor(e,i,r=50){const o=e.getPoints(r),s=this.buildLine(o,i);s.add(this.buildArrow(o)),this.threeSceneService.edgeArrows.add(s),this.arrows.push(s)}previewMode(e,i){if(i===fu.both||i===fu.from){const r=this.makeArrowFromBezier(e,!1);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}if(i===fu.both||i===fu.to){const r=this.makeArrowFromBezier(e,!0);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}}getNodesAsMap(e){const i=new Map;for(const r of e)i.set(r.path,r);return i}makeArrowFromBezier(e,i,r=50){const o=e.getPoints(r),{incomingEdge:s,outgoingEdge:a}=this.state.getValue().appSettings.mapColors,l=i?s:a,c=i?o.slice(r+1-this.VERTICES_PER_LINE):o.slice(0,o.length-(r+1-this.VERTICES_PER_LINE));return this.buildEdge(c,lr.getNumber(l))}buildEdge(e,i){const r=this.buildLine(e,i);return r.add(this.buildArrow(e)),r}buildLine(e,i=0){const r=new gi;r.setFromPoints(e);const o=new xa({color:i,linewidth:1});return new wd(r,o)}buildArrow(e,i=0,r=10,o=10){const s=e.at(-1).clone().sub(e.at(-2).clone()).normalize(),a=e.at(-1).clone();return s.y<0&&(a.y+=r+1),new BDe(s,a,r+1,i,r,o)}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Vc),ve(jw))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),lee=(()=>{class n{constructor(e,i,r,o,s,a,l){this.store=e,this.state=i,this.threeSceneService=r,this.codeMapLabelService=o,this.codeMapArrowService=s,this.threeStatsService=a,this.codeMapMouseEventService=l,this.nodesByColor={positive:[],neutral:[],negative:[]},this.onIsLoadingFileChanged=c=>{c?this.threeSceneService?.dispose():this.threeStatsService?.resetPanels()},this.subscription=this.store.select(k4).pipe(Dr(this.onIsLoadingFileChanged)).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}render(e){const i=this.getNodes(e),r=this.sortNodes(i);this.unflattenedNodes=r.filter(({flat:o})=>!o),this.setNewMapMesh(i,r),this.getNodesMatchingColorSelector(this.unflattenedNodes),this.setLabels(this.unflattenedNodes),this.setArrows(r)}setNewMapMesh(e,i){const r=this.state.getValue(),o=new yOe(i,r,ou(r.files));this.threeSceneService.setMapMesh(e,o)}scaleMap(){this.codeMapMouseEventService.unhoverNode(),this.codeMapLabelService.scale(),this.codeMapArrowService.scale(),this.threeSceneService.scaleHeight(),this.codeMapLabelService.clearLabels(),this.setLabels(this.unflattenedNodes)}getNodes(e){const i=this.state.getValue(),r=Xs(i).nodeMetricData,{appSettings:{layoutAlgorithm:o},files:s}=i,a=ou(s);switch(o){case hu.StreetMap:case hu.TreeMapStreet:return ng.createStreetLayoutNodes(e,i,r,a);case hu.SquarifiedTreeMap:return function s3e(n,t,e,i){const r=p2(t.files),o=e.find(d=>d.name===t.dynamicSettings.heightMetric)?.maxValue*r,s=e.find(d=>d.name===t.dynamicSettings.areaMetric)?.maxValue*r,a=2*us/o;if(TZ(n)){const d=yo(n),u=[Ca.buildRootFolderForFixedFolders(d.data,a,t,i)],h=2*us+FZ(d)*(t.dynamicSettings.margin/CZ),f=h/u[0].width,A=h/u[0].length;return function a3e(n,t,e){n.x0*=e,n.y0*=t,n.width*=e,n.length*=t}(u[0],f,A),[...u,...SZ(d,t,f,A,0,0,a,o,s,i,r)]}const l=IZ(n,t,r,s),c=[];for(const d of l.treeMap)c.push(Ca.buildNodeFrom(d,a,o,t,i));return c}(e,i,r,a);default:return[]}}sortNodes(e){return e.filter(i=>i.length>0&&i.width>0).sort((i,r)=>r.height-i.height)}getNodesMatchingColorSelector(e){const i=this.state.getValue().dynamicSettings;this.nodesByColor={positive:[],negative:[],neutral:[]};for(const r of e)if(r.isLeaf){const o=r.attributes[i.colorMetric];"unary"===i.colorMetric?this.nodesByColor.positive.push(r):null!==o&&(oc.isLeaf).slice(0,s);this.setBuildingLabel(l,a)}}}setArrows(e){this.codeMapArrowService.clearArrows(),this.codeMapArrowService.addEdgeMapBasedOnNodes(e),this.codeMapArrowService.addEdgePreview()}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr),ve(Vc),ve(HZ),ve(POe),ve(NZ),ve(Zw))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),uI=(()=>{class n{constructor(e,i){this.store=e,this.codeMapRenderService=i}createNodeObservable(){return Sh([this.store.select(tee),this.store.select(Um),this.createTopLevelNodeObservable()]).pipe(Qe(([o,s,a])=>o??s??a))}createTopLevelNodeObservable(){return Sh([this.store.select(Hc),this.store.select(lc)]).pipe(qi(([e])=>!!e.unifiedMapNode),Qe(([e])=>this.findTopLevelNode(e)))}findTopLevelNode(e){const i=this.codeMapRenderService.getNodes(e.unifiedMapNode),r=this.codeMapRenderService.sortNodes(i);return r.reduce((o,s)=>o.attributes.unary>s.attributes.unary?o:s,r[0])}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(lee))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),cee=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.attributeType="nodes",this.isNodeALeaf=r=>{if(r)return this.isNode(r)?r.isLeaf:No(r)}}ngOnInit(){this.isNodeALeaf$=this.nodeSelectionService.createNodeObservable().pipe(Qe(e=>this.isNodeALeaf(e))),this.attributeType$=this.store.select(((n,t)=>Kt(GT,WL,(e,i)=>"relative"===i[n][e[t]]?"x\u0342":"\u03a3"))(this.attributeType,this.metricFor))}isNode(e){return"isLeaf"in e}static{this.\u0275fac=function(i){return new(i||n)($($t),$(uI))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-chooser-type"]],inputs:{metricFor:"metricFor",attributeType:"attributeType"},decls:4,vars:6,consts:[[3,"hidden"]],template:function(i,r){1&i&&(D(0,"span",0),qe(1,"async"),ye(2),qe(3,"async"),U()),2&i&&(_e("hidden",rt(1,2,r.isNodeALeaf$)),Q(2),sn(" ",rt(3,4,r.attributeType$),"\n"))},dependencies:[Kn],encapsulation:2})}}return n})();const OOe=["*"];let dee=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-rounded-box"]],inputs:{backgroundColor:"backgroundColor"},ngContentSelectors:OOe,decls:3,vars:2,consts:[[1,"metric-value"],[1,"rounded-box"]],template:function(i,r){1&i&&(Yr(),D(0,"div",0)(1,"div",1),Vn(2),U()()),2&i&&(Q(),zi("background-color",r.backgroundColor))},styles:[".metric-value[_ngcontent-%COMP%]{height:25px}.metric-value[_ngcontent-%COMP%] .rounded-box[_ngcontent-%COMP%]{background-color:#e6e6e6;border-radius:2px;padding:2px 5px;display:inline-block}"]})}}return n})();function LOe(n,t){if(1&n&&(D(0,"cc-rounded-box",1),qe(1,"async"),ye(2),qe(3,"async"),U()),2&n){let e;const i=Le(),r=Le();_e("backgroundColor",r.calculateBackgroundColor(i.deltas[rt(1,2,r.primaryMetricNames$)[r.metricFor]])),Q(2),sn(" \u0394",null==(e=i.deltas[rt(3,4,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()," ")}}function NOe(n,t){if(1&n&&(D(0,"cc-rounded-box"),xe(1,"cc-metric-chooser-type",0),D(2,"span"),ye(3),qe(4,"async"),U()(),pt(5,LOe,4,6,"cc-rounded-box",1)),2&n){let e;const i=t,r=Le();Q(),_e("metricFor",r.metricFor),Q(2),br(null==(e=i.attributes[rt(4,3,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()),Q(2),Tt(5,i.deltas?5:-1)}}let UOe=(()=>{class n{constructor(e,i){this.nodeSelectionService=e,this.store=i,this.node$=this.nodeSelectionService.createNodeObservable(),this.primaryMetricNames$=this.store.select(GT)}calculateBackgroundColor(e){return"heightMetric"===this.metricFor&&e>0?"#b1d8a8":e<0?"#ffcccc":"#e6e6e6"}static{this.\u0275fac=function(i){return new(i||n)($(uI),$($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-chooser-value"]],inputs:{metricFor:"metricFor"},decls:2,vars:3,consts:[[3,"metricFor"],[3,"backgroundColor"]],template:function(i,r){if(1&i&&(pt(0,NOe,6,5),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.node$))?0:-1,o)}},dependencies:[cee,dee,Kn],styles:["[_nghost-%COMP%]{display:flex;gap:2px}"]})}}return n})(),HOe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase();return e.filter(o=>{let s=o.name;return("complexity"===o.name||"sonar_complexity"===o.name)&&(s+=" (formerly mcc)"),s.toLocaleLowerCase().includes(r)})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"filterMetricDataBySearchTerm",type:n,pure:!0})}}return n})();const VOe=["searchTermInput"],QOe=["matSelect"],zOe=["*"];function qOe(n,t){1&n&&xe(0,"i"),2&n&&cl("fa "+Le(2).icon)}function GOe(n,t){1&n&&ye(0," (formerly mcc) ")}function WOe(n,t){1&n&&(D(0,"span",11),ye(1),U()),2&n&&(Q(),sn(" ",t," "))}function $Oe(n,t){if(1&n&&(D(0,"mat-option",9),qe(1,"attributeDescriptorTooltip"),ye(2),pt(3,GOe,1,0),D(4,"span",10),ye(5),U(),xe(6,"br"),pt(7,WOe,2,1,"span",11),U()),2&n){let e;const i=t.$implicit,r=Le();_e("value",i.name)("title",Io(1,6,r[i.name],i.name)),Q(2),sn(" ",i.name," "),Q(),Tt(3,"complexity"==i.name||"sonar_complexity"==i.name?3:-1),Q(2),sn("(",i.maxValue,")"),Q(2),Tt(7,(e=null==r[i.name]?null:r[i.name].description)?7:-1,e)}}function jOe(n,t){if(1&n){const e=Dn();D(0,"mat-select",3,0),ze("selectionChange",function(r){return Ot(e),Rt(Le().handleMetricChanged(r.value))})("openedChange",function(r){return Ot(e),Rt(Le().handleOpenedChanged(r))}),D(2,"mat-select-trigger"),pt(3,qOe,1,2,"i",4),ye(4),U(),D(5,"mat-form-field",5),xe(6,"i",6),D(7,"input",7,1),ld("ngModelChange",function(r){Ot(e);const o=Le();return eu(o.searchTerm,r)||(o.searchTerm=r),Rt(r)}),ze("keydown",function(r){return Ot(e),Rt(Le().handleKeyDown(r))}),U()(),D(9,"div",8),Or(10,$Oe,8,9,"mat-option",9,qr),qe(12,"async"),qe(13,"filterMetricDataBySearchTerm"),U()()}if(2&n){const e=Le();_e("value",e.selectedMetricName)("disabled",e.isDisabled),Q(3),_e("ngIf",e.icon),Q(),br(e.selectedMetricName),Q(3),_e("placeholder",e.searchPlaceholder),ad("ngModel",e.searchTerm),Q(3),Lr(Io(13,8,rt(12,6,e.metricData$),e.searchTerm))}}function XOe(n,t){1&n&&xe(0,"cc-metric-chooser-value",12),2&n&&_e("metricFor",Le(2).metricFor)}function KOe(n,t){1&n&&Vn(0)}function YOe(n,t){1&n&&pt(0,XOe,1,1,"cc-metric-chooser-value",12)(1,KOe,1,0),2&n&&Tt(0,Le().metricFor?0:1)}let ux=(()=>{class n{constructor(e){this.store=e,this.type="node",this.isDisabled=!1,this.searchTerm="",this.attributeDescriptors$=this.store.select(WT),this.hideMetricSum=!1}ngOnInit(){this.metricData$=this.store.select(Xs).pipe(Qe(e=>"node"===this.type?e.nodeMetricData:e.edgeMetricData))}ngAfterViewInit(){this.matOptions.changes.subscribe(e=>{this.setFirstItemActiveOnSearch(e)})}setFirstItemActiveOnSearch(e){const i=e.filter(s=>s._selected),r=e.filter(s=>s.value.toLowerCase().startsWith(this.searchTerm.toLowerCase())).sort((s,a)=>s.value.localeCompare(a.value)),o=this.searchTerm.trim().length>0;setTimeout(()=>{o&&0===i.length&&0===r.length?this.matSelect._keyManager.setActiveItem(0):o&&0===i.length&&r.length>0&&this.matSelect._keyManager.setActiveItem(r[0]);try{document.querySelector(".mdc-list-item--selected").scrollIntoView()}catch{}})}handleOpenedChanged(e){e?(this.searchTermInput.nativeElement.focus(),this.hideMetricSum=!0):(this.searchTerm="",this.hideMetricSum=!1)}handleKeyDown(e){const{key:i}=e;"ArrowDown"!==i&&"ArrowUp"!==i&&"Enter"!==i&&"Escape"!==i&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-chooser"]],viewQuery:function(i,r){if(1&i&&(ti(VOe,5),ti(QOe,5),ti(du,5)),2&i){let o;an(o=ln())&&(r.searchTermInput=o.first),an(o=ln())&&(r.matSelect=o.first),an(o=ln())&&(r.matOptions=o)}},hostVars:2,hostBindings:function(i,r){2&i&&Un("hide-metric-value",r.hideMetricSum)},inputs:{metricFor:"metricFor",icon:"icon",selectedMetricName:"selectedMetricName",searchPlaceholder:"searchPlaceholder",handleMetricChanged:"handleMetricChanged",type:"type",isDisabled:"isDisabled"},ngContentSelectors:zOe,decls:3,vars:4,consts:[["matSelect",""],["searchTermInput",""],["panelClass","cc-metric-chooser",3,"value","disabled"],["panelClass","cc-metric-chooser",3,"selectionChange","openedChange","value","disabled"],[3,"class",4,"ngIf"],[1,"cc-metric-chooser-search-field"],["matPrefix","",1,"fa","fa-search","search-icon"],["matInput","","type","text",3,"ngModelChange","keydown","placeholder","ngModel"],[1,"cc-metric-chooser-option-container"],[3,"value","title"],[1,"metric-max-value"],[1,"metric-subtitle"],[3,"metricFor"]],template:function(i,r){if(1&i&&(Yr(),pt(0,jOe,14,11,"mat-select",2),qe(1,"async"),pt(2,YOe,2,1)),2&i){let o;Tt(0,(o=rt(1,2,r.attributeDescriptors$))?0:-1,o),Q(2),Tt(2,r.hideMetricSum?-1:2)}},dependencies:[eA,Md,EJ,Gm,JJ,du,qm,im,$0,X0,UOe,Kn,jT,HOe],styles:["[_nghost-%COMP%]{display:flex;width:100%}[_nghost-%COMP%]:hover cc-metric-chooser-value[_ngcontent-%COMP%]{display:none}i.fa[_ngcontent-%COMP%]{padding-right:8px}cc-metric-chooser-value[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{color:#000!important}"]})}}return n})(),ZOe=(()=>{class n{constructor(e){this.store=e,this.areaMetric$=this.store.select(bb)}handleAreaMetricChanged(e){this.store.dispatch(vh({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-area-metric-chooser"]],decls:2,vars:4,consts:[["icon","fa-arrows-alt","metricFor","areaMetric","searchPlaceholder","Area Metric (highest value)","title","Change area metric",3,"selectedMetricName","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),qe(1,"async")),2&i&&_e("selectedMetricName",rt(1,2,r.areaMetric$))("handleMetricChanged",r.handleAreaMetricChanged)},dependencies:[ux,Kn],encapsulation:2})}}return n})();const JOe=Kt(lc,n=>n.margin),eLe=Kt(so,n=>n.enableFloorLabels),tLe=Kt(so,n=>n.invertArea),nLe=["input"],iLe=["label"],rLe=["*"],oLe=new dt("mat-checkbox-default-options",{providedIn:"root",factory:uee});function uee(){return{color:"accent",clickAction:"check-indeterminate"}}var Ma=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Ma||{});const sLe={provide:js,useExisting:ei(()=>Xm),multi:!0};class aLe{}let lLe=0;const hee=uee();let Xm=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new aLe;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=s,this._options=a,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Fn,this.indeterminateChange=new Fn,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=Ma.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||hee,this.color=this._options.color||hee.color,this.tabIndex=parseInt(o)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++lLe}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=e,i&&(this._transitionCheckState(this._indeterminate?Ma.Indeterminate:this.checked?Ma.Checked:Ma.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==e&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ma.Checked:Ma.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case Ma.Init:if(i===Ma.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ma.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ma.Unchecked:return i===Ma.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ma.Checked:return i===Ma.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ma.Indeterminate:return i===Ma.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(vo),$(In),zl("tabindex"),$(_s,8),$(oLe,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(ti(nLe,5),ti(iLe,5),ti(Ih,5)),2&i){let o;an(o=ln())&&(r._inputElement=o.first),an(o=ln())&&(r._labelElement=o.first),an(o=ln())&&(r.ripple=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:14,hostBindings:function(i,r){2&i&&(Zd("id",r.id),pi("tabindex",null)("aria-label",null)("aria-labelledby",null),cl(r.color?"mat-"+r.color:"mat-accent"),Un("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked))},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],id:"id",required:[Ct.HasDecoratorInputTransform,"required","required",Jn],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Jn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?void 0:ba(e)],color:"color",checked:[Ct.HasDecoratorInputTransform,"checked","checked",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn],indeterminate:[Ct.HasDecoratorInputTransform,"indeterminate","indeterminate",Jn]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[ui([sLe,{provide:ys,useExisting:n,multi:!0}]),rs,xr,Nr],ngContentSelectors:rLe,decls:15,vars:19,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const o=Dn();Yr(),D(0,"div",3),ze("click",function(a){return Ot(o),Rt(r._preventBubblingFromLabel(a))}),D(1,"div",4,0)(3,"div",5),ze("click",function(){return Ot(o),Rt(r._onTouchTargetClick())}),U(),D(4,"input",6,1),ze("blur",function(){return Ot(o),Rt(r._onBlur())})("click",function(){return Ot(o),Rt(r._onInputClick())})("change",function(a){return Ot(o),Rt(r._onInteractionEvent(a))}),U(),xe(6,"div",7),D(7,"div",8),Ul(),D(8,"svg",9),xe(9,"path",10),U(),Yg(),xe(10,"div",11),U(),xe(11,"div",12),U(),D(12,"label",13,2),Vn(14),U()()}if(2&i){const o=Lo(2);_e("labelPosition",r.labelPosition),Q(4),Un("mdc-checkbox--selected",r.checked),_e("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled)("id",r.inputId)("required",r.required)("tabIndex",r.disabled?-1:r.tabIndex),pi("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("name",r.name)("value",r.value),Q(7),_e("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),Q(),_e("for",r.inputId)}},dependencies:[Ih,k$],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return n})(),fee=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Xm,fr,fr]})}}return n})();const qN=(n,t,e)=>{const i=Number.parseInt(n.target.value);return ie?e:i},uLe=["knob"],hLe=["valueIndicatorContainer"];function fLe(n,t){if(1&n&&(D(0,"div",2,1)(2,"div",5)(3,"span",6),ye(4),U()()()),2&n){const e=Le();Q(4),br(e.valueIndicatorText)}}const mLe=["trackActive"],pLe=["*"];function ALe(n,t){if(1&n&&xe(0,"div"),2&n){const e=t.$implicit,i=t.$index,r=Le(3);cl(0===e?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),zi("transform",r._calcTickMarkTransform(i))}}function gLe(n,t){1&n&&Or(0,ALe,1,4,"div",8,qr),2&n&&Lr(Le(2)._tickMarks)}function _Le(n,t){if(1&n&&(D(0,"div",6,1),pt(2,gLe,2,0),U()),2&n){const e=Le();Q(2),Tt(2,e._cachedWidth?2:-1)}}function bLe(n,t){if(1&n&&xe(0,"mat-slider-visual-thumb",7),2&n){const e=Le();_e("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var fi=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(fi||{}),Tb=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(Tb||{});const hI=new dt("_MatSlider"),mee=new dt("_MatSliderThumb"),pee=new dt("_MatSliderRangeThumb"),Aee=new dt("_MatSliderVisualThumb");let vLe=(()=>{class n{constructor(e,i,r,o){this._cdr=e,this._ngZone=i,this._slider=o,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=Qt(ro),this._onPointerMove=s=>{if(this._sliderInput._isFocused)return;const a=this._hostElement.getBoundingClientRect(),l=this._slider._isCursorOnSliderThumb(s,a);this._isHovered=l,l?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)},this._onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)},this._onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")},this._onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")},this._onDragStart=s=>{0===s.button&&(this._isActive=!0,this._showActiveRipple())},this._onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()},this._hostElement=r.nativeElement}ngAfterViewInit(){this._ripple.radius=24,this._sliderInput=this._slider._getInput(this.thumbPosition),this._sliderInputEl=this._sliderInput._hostElement;const e=this._sliderInputEl;this._ngZone.runOutsideAngular(()=>{e.addEventListener("pointermove",this._onPointerMove),e.addEventListener("pointerdown",this._onDragStart),e.addEventListener("pointerup",this._onDragEnd),e.addEventListener("pointerleave",this._onMouseLeave),e.addEventListener("focus",this._onFocus),e.addEventListener("blur",this._onBlur)})}ngOnDestroy(){const e=this._sliderInputEl;e&&(e.removeEventListener("pointermove",this._onPointerMove),e.removeEventListener("pointerdown",this._onDragStart),e.removeEventListener("pointerup",this._onDragEnd),e.removeEventListener("pointerleave",this._onMouseLeave),e.removeEventListener("focus",this._onFocus),e.removeEventListener("blur",this._onBlur))}_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(e){return e?.state===fl.FADING_IN||e?.state===fl.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===fi.START?fi.END:fi.START)._showValueIndicator(),!this._slider._globalRippleOptions?.disabled||i))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:e,centered:!0,persistent:!0})}_hideRipple(e){if(e?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();const i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===fi.START?fi.END:fi.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static{this.\u0275fac=function(i){return new(i||n)($(vo),$(In),$(Nn),$(hI))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(ti(Ih,5),ti(uLe,5),ti(hLe,5)),2&i){let o;an(o=ln())&&(r._ripple=o.first),an(o=ln())&&(r._knob=o.first),an(o=ln())&&(r._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[ui([{provide:Aee,useExisting:n}]),Nr],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-mdc-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,r){1&i&&(pt(0,fLe,5,1,"div",2),xe(1,"div",3,0)(3,"div",4)),2&i&&(Tt(0,r.discrete?0:-1),Q(3),_e("matRippleDisabled",!0))},dependencies:[Ih],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}}return n})(),gee=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e;const i=this._getInput(fi.END),r=this._getInput(fi.START);i&&(i.disabled=this._disabled),r&&(r.disabled=this._disabled)}get discrete(){return this._discrete}set discrete(e){this._discrete=e,this._updateValueIndicatorUIs()}get min(){return this._min}set min(e){const i=isNaN(e)?this._min:e;this._min!==i&&this._updateMin(i)}_updateMin(e){const i=this._min;this._min=e,this._isRange?this._updateMinRange({old:i,new:e}):this._updateMinNonRange(e),this._onMinMaxOrStepChange()}_updateMinRange(e){const i=this._getInput(fi.END),r=this._getInput(fi.START),o=i.value,s=r.value;r.min=e.new,i.min=Math.max(e.new,r.value),r.max=Math.min(i.max,i.value),r._updateWidthInactive(),i._updateWidthInactive(),e.newe.old?this._onTranslateXChangeBySideEffect(r,i):this._onTranslateXChangeBySideEffect(i,r),o!==i.value&&this._onValueChange(i),s!==r.value&&this._onValueChange(r)}_updateMaxNonRange(e){const i=this._getInput(fi.END);if(i){const r=i.value;i.max=e,i._updateThumbUIByValue(),this._updateTrackUI(i),r!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(e){const i=isNaN(e)?this._step:e;this._step!==i&&this._updateStep(i)}_updateStep(e){this._step=e,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){const e=this._getInput(fi.END),i=this._getInput(fi.START),r=e.value,o=i.value,s=i.value;e.min=this._min,i.max=this._max,e.step=this._step,i.step=this._step,this._platform.SAFARI&&(e.value=e.value,i.value=i.value),e.min=Math.max(this._min,i.value),i.max=Math.min(this._max,e.value),i._updateWidthInactive(),e._updateWidthInactive(),e.value`${l}`,this._rippleRadius=24,this.startValueIndicatorText="",this.endValueIndicatorText="",this._isRange=!1,this._isRtl=!1,this._hasViewInitialized=!1,this._tickMarkTrackWidth=0,this._hasAnimation=!1,this._resizeTimer=null,this._platform=Qt(ro),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===a,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const e=this._getInput(fi.END),i=this._getInput(fi.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();const r=this._getThumb(fi.END);this._rippleRadius=r._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(e,i):this._initUINonRange(e),this._updateTrackUI(e),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(e){e.initProps(),e.initUI(),this._updateValueIndicatorUI(e),this._hasViewInitialized=!0,e._updateThumbUIByValue()}_initUIRange(e,i){e.initProps(),e.initUI(),i.initProps(),i.initUI(),e._updateMinMax(),i._updateMinMax(),e._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,e._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl="rtl"===this._dir.value,this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){const e=this._getInput(fi.END),i=this._getInput(fi.START);e._setIsLeftThumb(),i._setIsLeftThumb(),e.translateX=e._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateWidthInactive(),i._updateWidthInactive(),e._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(fi.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(fi.START)._isActive||this._getThumb(fi.END)._isActive}_getValue(e=fi.END){const i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(fi.START)?._skipUIUpdate&&!this._getInput(fi.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(e){const i=this._trackActive.nativeElement.style;i.left=e.left,i.right=e.right,i.transformOrigin=e.transformOrigin,i.transform=e.transform}_calcTickMarkTransform(e){return`translateX(${e*(this._tickMarkTrackWidth/(this._tickMarks.length-1))}px`}_onTranslateXChange(e){this._hasViewInitialized&&(this._updateThumbUI(e),this._updateTrackUI(e),this._updateOverlappingThumbUI(e))}_onTranslateXChangeBySideEffect(e,i){this._hasViewInitialized&&(e._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(e){this._hasViewInitialized&&(this._updateValueIndicatorUI(e),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){const e=this._getInput(fi.END),i=this._getInput(fi.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{const e=this._getInput(fi.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const e=this._getInput(fi.START),i=this._getInput(fi.END);return!(!e||!i)&&i.translateX-e.translateX<20}_updateOverlappingThumbClassNames(e){const i=e.getSibling(),r=this._getThumb(e.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),r._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(e){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(e))}_updateThumbUI(e){this._skipUpdate()||(this._getThumb(e.thumbPosition===fi.END?fi.END:fi.START)._hostElement.style.transform=`translateX(${e.translateX}px)`)}_updateValueIndicatorUI(e){if(this._skipUpdate())return;const i=this.displayWith(e.value);if(this._hasViewInitialized?e._valuetext=i:e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===fi.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;const r=this._getThumb(e.thumbPosition);i.length<3?r._hostElement.classList.add("mdc-slider__thumb--short-value"):r._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){const e=this._getInput(fi.END),i=this._getInput(fi.START);e&&this._updateValueIndicatorUI(e),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;const e=this._step&&this._step>0?this._step:1,r=(Math.floor(this.max/e)*e-this.min)/(this.max-this.min);this._tickMarkTrackWidth=this._cachedWidth*r-6}_updateTrackUI(e){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(e):this._updateTrackUINonRange(e))}_updateTrackUIRange(e){const i=e.getSibling();if(!i||!this._cachedWidth)return;const r=Math.abs(i.translateX-e.translateX)/this._cachedWidth;this._setTrackActiveStyles(e._isLeftThumb&&this._cachedWidth?{left:"auto",right:this._cachedWidth-i.translateX+"px",transformOrigin:"right",transform:`scaleX(${r})`}:{left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${r})`})}_updateTrackUINonRange(e){this._setTrackActiveStyles(this._isRtl?{left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-e.fillPercentage})`}:{left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${e.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||void 0===this.step||void 0===this.min||void 0===this.max)return;const e=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(e):this._updateTickMarkUINonRange(e),this._isRtl&&this._tickMarks.reverse()}_updateTickMarkUINonRange(e){const i=this._getValue();let r=Math.max(Math.floor((i-this.min)/e),0),o=Math.max(Math.floor((this.max-i)/e),0);this._isRtl?r++:o++,this._tickMarks=Array(r).fill(Tb.ACTIVE).concat(Array(o).fill(Tb.INACTIVE))}_updateTickMarkUIRange(e){const i=this._getValue(),r=this._getValue(fi.START),o=Math.max(Math.floor((r-this.min)/e),0),s=Math.max(Math.floor((i-r)/e)+1,0),a=Math.max(Math.floor((this.max-i)/e),0);this._tickMarks=Array(o).fill(Tb.INACTIVE).concat(Array(s).fill(Tb.ACTIVE),Array(a).fill(Tb.INACTIVE))}_getInput(e){return e===fi.END&&this._input?this._input:this._inputs?.length?e===fi.START?this._inputs.first:this._inputs.last:void 0}_getThumb(e){return e===fi.END?this._thumbs?.last:this._thumbs?.first}_setTransition(e){this._hasAnimation=!this._platform.IOS&&e&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(e,i){const r=i.width/2,l=e.clientY-(i.y+r);return Math.pow(e.clientX-(i.x+r),2)+Math.pow(l,2)fI),multi:!0};let fI=(()=>{class n{get value(){return ba(this._hostElement.value,0)}set value(e){const i=(e=isNaN(e)?0:e)+"";this._hasSetInitialValue?this._isActive||this._setValue(i):this._initialValue=i}_setValue(e){this._hostElement.value=e,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(void 0===this._translateX&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(e){this._translateX=e}get min(){return ba(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return ba(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return ba(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return Jn(this._hostElement.disabled)}set disabled(e){this._hostElement.disabled=e,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?0===this._translateX?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_setIsFocused(e){this._isFocused=e}constructor(e,i,r,o){this._ngZone=e,this._elementRef=i,this._cdr=r,this._slider=o,this.valueChange=new Fn,this.dragStart=new Fn,this.dragEnd=new Fn,this.thumbPosition=fi.END,this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new Ln,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=Qt(ro),this._hostElement=i.nativeElement,this._ngZone.runOutsideAngular(()=>{this._hostElement.addEventListener("pointerdown",this._onPointerDown.bind(this)),this._hostElement.addEventListener("pointermove",this._onPointerMove.bind(this)),this._hostElement.addEventListener("pointerup",this._onPointerUp.bind(this))})}ngOnDestroy(){this._hostElement.removeEventListener("pointerdown",this._onPointerDown),this._hostElement.removeEventListener("pointermove",this._onPointerMove),this._hostElement.removeEventListener("pointerup",this._onPointerUp),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,void 0===this._initialValue?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(e){if(!this.disabled&&0===e.button){if(this._platform.IOS){const i=this._slider._isCursorOnSliderThumb(e,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());return this._isActive=i,this._updateWidthActive(),void this._slider._updateDimensions()}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(e,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(e),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(e){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(e)},0)}_fixValue(e){const i=e.clientX-this._slider._cachedLeft,r=this._slider._cachedWidth,o=0===this._slider.step?1:this._slider.step,s=Math.floor((this._slider.max-this._slider.min)/o),c=Math.round((this._slider._isRtl?1-i/r:i/r)*s)/s*(this._slider.max-this._slider.min)+this._slider.min,d=Math.round(c/o)*o;if(d===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation}));this.value=d,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation})}_onPointerMove(e){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(e)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(e){const i=this._tickMarkOffset;return Math.max(Math.min(e,this._slider._cachedWidth-this._tickMarkOffset),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset}_calcTranslateXByPointerEvent(e){return e.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-2*this._tickMarkOffset}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(e){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(e)}_updateThumbUIByPointerEvent(e,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(e)),this._updateThumbUI(i)}_updateThumbUI(e){this._slider._setTransition(!!e?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(e){(this._isControlInitialized||null!==e)&&(this.value=e)}registerOnChange(e){this._onChangeFn=e,this._isControlInitialized=!0}registerOnTouched(e){this._onTouchedFn=e}setDisabledState(e){this.disabled=e}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static{this.\u0275fac=function(i){return new(i||n)($(In),$(Nn),$(vo),$(hI))}}static{this.\u0275dir=Wt({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&ze("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&pi("aria-valuetext",r._valuetext)},inputs:{value:[Ct.HasDecoratorInputTransform,"value","value",ba]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[ui([wLe,{provide:mee,useExisting:n}]),rs]})}}return n})(),GN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,u_]})}}return n})(),mI=(()=>{class n{constructor(){this.step=1,this.disabled=!1}handleSliderOnChange(e){e!==this.value&&this.onChange(e)}handleInputOnChange(e){const i=qN(e,this.min,this.max);i!==this.value&&!Number.isNaN(i)&&this.onChange(i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-slider"]],inputs:{value:"value",min:"min",max:"max",label:"label",step:"step",disabled:"disabled",onChange:"onChange"},decls:8,vars:10,consts:[[1,"cc-slider-container"],[1,"label"],[1,"slider-with-input"],[3,"disabled","step","min","max"],["matSliderThumb","",3,"input","value"],["appearance","outline","subscriptSizing","dynamic"],["matInput","","type","number",3,"input","value","disabled","min","max"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"mat-label",1),ye(2),U(),D(3,"div",2)(4,"mat-slider",3)(5,"input",4),ze("input",function(s){return r.handleInputOnChange(s)}),U()(),D(6,"mat-form-field",5)(7,"input",6),ze("input",function(s){return r.handleInputOnChange(s)}),U()()()()),2&i&&(Q(2),br(r.label),Q(2),_e("disabled",r.disabled)("step",r.step)("min",r.min)("max",r.max),Q(),_e("value",r.value),Q(2),_e("value",r.value)("disabled",r.disabled)("min",r.min)("max",r.max))},dependencies:[Md,Cd,qm,gee,fI],styles:["[_nghost-%COMP%]{width:100%;margin-top:8px;display:inline-block}"]})}}return n})();const WN={positive:!1,negative:!1,neutral:!1},MLe=wi(WN,An(A1,UT(WN))),ELe=wi(!0,An(E1,Xi(!0))),SLe=wi(!1,An(M1,Xi(!1))),_ee=hn("SET_SORTING_ORDER_ASCENDING",{_as:"props",_p:void 0}),XN=hn("TOGGLE_SORTING_ORDER_ASCENDING"),TLe=wi(!0,An(_ee,Xi(!0)),An(XN,n=>!n)),ILe=wi(!0,An(cA,Xi(!0))),FLe=wi(!0,An(r_,Xi(!0))),DLe=wi(!0,An(JE,Xi(!0))),kLe=wi(!1,An(S1,Xi(!1))),BLe=wi(!1,An(y1,Xi(!1))),PLe=wi(!1,An(v1,Xi(!1))),RLe=wi(!1,An(_1,Xi(!1))),OLe=wi(!1,An(KE,Xi(!1))),LLe=wi(!1,An(jE,Xi(!1))),s5=hu.SquarifiedTreeMap,NLe=wi(s5,An(w1,Xi(s5))),ULe=wi(100,An(x1,Xi(100))),l5=gA.Standard,HLe=wi(l5,An(C1,Xi(l5))),VLe=wi(!1,An($E,Xi(!1))),QLe=wi(!1,An(b1,Xi(!1))),zLe=wi(!0,An(kP,(n,t)=>t.value),An(XE,n=>!n)),qLe=wi(!1,An(BP,(n,t)=>t.value),An(PP,n=>!n)),yee=hn("SET_IS_FILE_EXPLORER_PINNED",{_as:"props",_p:void 0}),u5=hn("TOGGLE_IS_FILE_EXPLORER_PINNED"),$Le=lA({colorLabels:MLe,showMetricLabelNodeName:ELe,showMetricLabelNameValue:SLe,sortingOrderAscending:TLe,isSearchPanelPinned:wi(!1,An(yee,Xi(!1)),An(u5,n=>!n)),isLoadingFile:ILe,isLoadingMap:FLe,mapColors:d3e,resetCameraIfNewFileIsLoaded:DLe,showOnlyBuildingsWithEdges:kLe,isEdgeMetricVisible:zLe,isWhiteBackground:BLe,invertHeight:PLe,invertArea:QLe,hideFlatBuildings:RLe,scaling:IPe,edgeHeight:TPe,amountOfEdgePreviews:SPe,amountOfTopLabels:CPe,isPresentationMode:OLe,experimentalFeaturesEnabled:LLe,screenshotToClipboardEnabled:VLe,layoutAlgorithm:NLe,maxTreeMapFiles:ULe,sharpnessMode:HLe,isColorMetricLinkedToHeightMetric:qLe,enableFloorLabels:wi(!0,An(g1,Xi(!0)))}),jLe={colorLabels:WN,showMetricLabelNodeName:!0,showMetricLabelNameValue:!1,sortingOrderAscending:!0,isSearchPanelPinned:!1,isLoadingFile:!0,isLoadingMap:!0,mapColors:Cu,resetCameraIfNewFileIsLoaded:!0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,isWhiteBackground:!1,invertHeight:!1,invertArea:!1,hideFlatBuildings:!1,scaling:nI,edgeHeight:4,amountOfEdgePreviews:1,amountOfTopLabels:1,isPresentationMode:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:s5,maxTreeMapFiles:100,sharpnessMode:l5,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0};function wee(n,t){return n.filter(e=>!JA(e,t))}function xee(n,t){return Cee(n,t)?n:[...n,lu(t)]}function Cee(n,t){return n.some(e=>JA(e,t))}const YLe=(n,{path:t,color:e})=>{const i=GL(n,t);(!i||i.color!==e)&&n.set(t,{path:t,color:e});for(const[r,o]of n)if(o.path===t)o.color!==e&&n.delete(r);else if(o.path.startsWith(t)){const s=GL(n,o.path);s&&s.color===o.color&&n.delete(r)}},Mee=(n,t)=>{const e=n.findIndex(r=>r.path===t);if(-1!==e)return e;let i=-1;for(let r=0;r{const e=new Map(n.map(i=>[i.path,i]));for(const i of t.packages)YLe(e,i);return[...e.values()]}),An(o2,(n,t)=>{const e=Mee(n,t.path);return-1!==e?function XLe(n,t){return[...n.slice(0,t),...n.slice(t+1)]}(n,e):n})),p5=[],JLe=wi(p5,An(VP,Xi(p5)),An(dW,(n,t)=>xee(n,t.edge)),An(uW,(n,t)=>wee(n,t.edge))),A5={nodes:{},edges:{}},eNe=wi(A5,An(OP,Xi(A5)),An(LP,(n,t)=>({...n,[t.category]:{...n[t.category],[t.name]:t.attributeType}}))),g5=[],tNe=wi(g5,An(NP,Xi(g5)),An(UP,(n,t)=>xee(n,t.item)),An(t2,(n,t)=>function KLe(n,t){const e=[...n];for(const i of t)Cee(e,i)||e.push(i);return e}(n,t.items)),An(n2,(n,t)=>wee(n,t.item))),_5={},iNe=lA({markedPackages:ZLe,edges:JLe,attributeTypes:eNe,attributeDescriptors:wi(_5,An(RP,Xi(_5))),blacklist:tNe}),rNe={markedPackages:m5,edges:p5,attributeTypes:A5,attributeDescriptors:_5,blacklist:g5},b5=hm.weightedGradient,oNe=wi(b5,An(J0,Xi(b5))),v5=Q2.NAME,sNe=wi(v5,An(e2,Xi(v5))),aNe=wi(null,An(yh,Xi(null))),w5={from:0,to:0},lNe=wi(w5,An(ru,UT(w5))),cNe=wi("",An(am,Xi("")),An(P1,()=>"")),Eee=hn("SET_ALL_FOCUSED_NODES",{_as:"props",_p:void 0}),AI=hn("FOCUS_NODE",{_as:"props",_p:void 0}),hx=hn("UNFOCUS_ALL_NODES"),gI=hn("UNFOCUS_NODE");function See(n){return n?`/${n.split("/").reduce((e,i)=>(""===i||"."===i||(".."===i?e.pop():e.push(i)),e),[]).join("/")}`:void 0}function Tee(n,t){if(!n||!t)return!1;const e=See(n),i=See(t),r=i.endsWith("/")?i:`${i}/`;return e.startsWith(r)}const Iee=[],pNe=lA({colorMode:oNe,sortingOption:sNe,edgeMetric:aNe,colorRange:lNe,margin:FPe,searchPattern:cNe,focusedNodePath:wi(Iee,An(Eee,(n,t)=>[...t.value]),An(hx,()=>[]),An(AI,(n,t)=>t.value===mu.rootPath?n:Tee(t.value,n[0])?[t.value,...n]:[t.value]),An(gI,n=>n.slice(1))),heightMetric:wi(null,An(wh,Xi(null))),distributionMetric:wi(null,An(T1,Xi(null))),colorMetric:wi(null,An(pd,Xi(null))),areaMetric:wi(null,An(vh,Xi(null)))}),ANe={colorMode:b5,sortingOption:v5,edgeMetric:null,colorRange:w5,margin:50,searchPattern:"",focusedNodePath:Iee,heightMetric:null,distributionMetric:null,colorMetric:null,areaMetric:null},S5=[],gNe=wi(S5,An(B1,Xi(S5)),An(kW,(n,t)=>[...n,{file:t.file,selectedAs:er.None}]),An(oR,(n,t)=>function _Ne(n,t){const e=n.filter(r=>r.file.fileMeta.fileName!==t);return e.some(r=>r.selectedAs===er.Partial)||(e[0]={...e[0],selectedAs:er.Partial}),e}(n,t.fileName)),An(g2,(n,t)=>function bNe(n,t,e){return n.map(i=>c2(i.file,t)?{...i,selectedAs:er.Reference}:e&&c2(i.file,e)?{...i,selectedAs:er.Comparison}:{...i,selectedAs:er.None})}(n,t.referenceFile,t.comparisonFile)),An(uR,(n,t)=>function vNe(n,t){return n.map(e=>c2(e.file,t)?{...e,selectedAs:er.Reference}:e.selectedAs===er.Comparison?e:{...e,selectedAs:er.None})}(n,t.file)),An(dR,(n,t)=>function yNe(n,t){return n.map(e=>e.file===t?{...e,selectedAs:er.Comparison}:e.selectedAs===er.Reference?e:{...e,selectedAs:er.None})}(n,t.file)),An(cR,n=>function wNe(n){return n.map(t=>t.selectedAs===er.Reference?{...t,selectedAs:er.Comparison}:t.selectedAs===er.Comparison?{...t,selectedAs:er.Reference}:t)}(n)),An(P1,(n,t)=>Fee(n,t.files.map(e=>e.fileMeta.fileName))),An(sR,(n,t)=>Fee(n,t.fileNames)),An(lR,n=>n.map(t=>({...t,selectedAs:t.selectedAs===er.Partial?er.None:er.Partial}))),An(aR,n=>n.map(t=>({...t,selectedAs:er.Partial}))));function Fee(n,t){return n.map(e=>({...e,selectedAs:t.includes(e.file.fileMeta.fileName)?er.Partial:er.None}))}const xNe=wi(null,An(Ab,Xi(null))),CNe=wi(null,An(gb,(n,t)=>t.value)),TNe={fileSettings:iNe,appSettings:$Le,dynamicSettings:pNe,files:gNe,appStatus:lA({hoveredNodeId:xNe,selectedBuildingId:wi(null,An(JL,Xi(null))),rightClickedNodeData:CNe})},kee={fileSettings:rNe,appSettings:jLe,dynamicSettings:ANe,files:S5,appStatus:{hoveredNodeId:null,selectedBuildingId:null,rightClickedNodeData:null}},INe=n=>(t,e)=>function DPe(n){return n.type===xb.type}(e)?Bee(lu(t),e.value):n(t,e),FNe=new Set(["fileSettings.attributeTypes","fileSettings.attributeDescriptors","fileSettings.blacklist","fileSettings.edges","fileSettings.markedPackages","dynamicSettings.focusedNodePath","files"]);function Bee(n,t,e=[]){for(const[i,r]of Object.entries(t)){if(null==r||!DNe(n,i))continue;const o=[...e,i],s=o.join(".");n[i]="object"!=typeof r||FNe.has(s)?r:Bee(n[i],r,o)}return n}function DNe(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function PNe(n,t){if(1&n&&(D(0,"span",2),ye(1),U()),2&n){const e=Le();Q(),sn(" ",e.label,"")}}let fx=(()=>{class n{constructor(e,i){this.store=e,this.state=i}applyDefaultSettings(){const e=((n,t)=>{const e={};let i=0;for(const r of n){const o=r.split(".");let s=kee,a=e;for(const[l,c]of o.entries())void 0!==s[c]&&(a[c]||(a[c]={},i++),l===o.length-1?a[c]=s[c]:(s=s[c],a=a[c]))}return 0!==i&&CN(e),n.includes("appSettings.amountOfTopLabels")&&(e.appSettings.amountOfTopLabels=xN(JT(t))),e})(this.settingsKeys,this.state.getValue());this.store.dispatch(xb({value:e})),this.callback&&this.callback()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Zr))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-reset-settings-button"]],inputs:{settingsKeys:"settingsKeys",tooltip:"tooltip",label:"label",callback:"callback"},decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"reset-settings-button-label"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.applyDefaultSettings()}),xe(1,"i",1),pt(2,PNe,2,1,"span",2),U()),2&i&&(_e("title",r.tooltip),Q(2),Tt(2,r.label?2:-1))},styles:["button[_ngcontent-%COMP%]{color:#1b9cfc;background:none;align-items:center;display:flex;gap:4px;margin:0;padding:0}button[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:40px;width:40px;font-size:18px}button[_ngcontent-%COMP%]:hover .fa[_ngcontent-%COMP%]{border-radius:100%;background-color:#9e9e9e33}"]})}}return n})();const RNe=()=>["dynamicSettings.margin","appSettings.invertArea","appSettings.enableFloorLabels"];let ONe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.margin$=this.store.select(JOe),this.enableFloorLabels$=this.store.select(eLe),this.isInvertedArea$=this.store.select(tLe),this.applyDebouncedMargin=Eu(i=>{this.store.dispatch(e_({value:i}))},n.DEBOUNCE_TIME)}setEnableFloorLabel(e){this.store.dispatch(g1({value:e.checked}))}toggleInvertingArea(e){this.store.dispatch(b1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-area-settings-panel"]],decls:10,vars:14,consts:[[1,"options"],["title","Amount of space between buildings in percent","label","Margin",3,"value","onChange","min","max"],[3,"change","checked"],["tooltip","Reset area metric settings to their defaults","label","Reset area metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(D(0,"div",0),xe(1,"cc-slider",1),qe(2,"async"),D(3,"mat-checkbox",2),qe(4,"async"),ze("change",function(s){return r.setEnableFloorLabel(s)}),ye(5,"Enable Floor Labels"),U(),D(6,"mat-checkbox",2),qe(7,"async"),ze("change",function(s){return r.toggleInvertingArea(s)}),ye(8,"Invert Area"),U(),xe(9,"cc-reset-settings-button",3),U()),2&i&&(Q(),_e("value",rt(2,7,r.margin$))("onChange",r.applyDebouncedMargin)("min",1)("max",100),Q(2),_e("checked",rt(4,9,r.enableFloorLabels$)),Q(3),_e("checked",rt(7,11,r.isInvertedArea$)),Q(3),_e("settingsKeys",fh(13,RNe)))},dependencies:[Xm,mI,fx,Kn],styles:["[_nghost-%COMP%]{text-align:left;max-height:300px}[_nghost-%COMP%] .options[_ngcontent-%COMP%]{display:flex;flex-direction:column}"]})}}return n})();const LNe=Kt(so,n=>n.amountOfTopLabels),Pee=Kt(so,n=>n.colorLabels),NNe=Kt(Pee,n=>n.negative||n.neutral||n.positive),UNe=Kt(so,n=>n.showMetricLabelNodeName),HNe=Kt(so,n=>n.showMetricLabelNameValue),VNe=Kt(so,n=>n.scaling),QNe=Kt(so,n=>n.invertHeight),zNe=()=>["appSettings.amountOfTopLabels","appSettings.scaling.y","appSettings.invertHeight"];function qNe(n,t){if(1&n){const e=Dn();D(0,"mat-checkbox",1),qe(1,"async"),ze("change",function(r){return Ot(e),Rt(Le().setInvertHeight(r))}),ye(2," Invert Height "),U()}2&n&&_e("checked",rt(1,1,Le().invertHeight$))}let GNe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.amountOfTopLabels$=this.store.select(LNe),this.isLabelsSliderDisabled$=this.store.select(NNe),this.showMetricLabelNodeName$=this.store.select(UNe),this.showMetricLabelNodeValue$=this.store.select(HNe),this.scaling$=this.store.select(VNe),this.invertHeight$=this.store.select(QNe),this.isDeltaState$=this.store.select(Hm),this.applyDebouncedTopLabels=Eu(i=>{this.store.dispatch(sm({value:i}))},n.DEBOUNCE_TIME),this.applyDebouncedScalingY=Eu(i=>{this.store.dispatch(Z0({value:{y:i}}))},n.DEBOUNCE_TIME)}setShowMetricLabelNodeName(e){this.store.dispatch(E1({value:e.checked}))}setShowMetricLabelNameValue(e){this.store.dispatch(M1({value:e.checked}))}setInvertHeight(e){this.store.dispatch(v1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-height-settings-panel"]],decls:16,vars:32,consts:[["label","Labels",1,"cc-height-settings-panel-row",3,"disabled","title","min","max","value","onChange"],[3,"change","checked"],["title","Height","label","Height",1,"cc-height-settings-panel-row",3,"step","min","max","value","onChange"],[3,"checked"],["tooltip","Reset height metric settings to their defaults","label","Reset height metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(xe(0,"cc-slider",0),qe(1,"async"),qe(2,"async"),qe(3,"async"),qe(4,"async"),D(5,"mat-checkbox",1),qe(6,"async"),ze("change",function(s){return r.setShowMetricLabelNodeName(s)}),ye(7,"Show label node names\n"),U(),D(8,"mat-checkbox",1),qe(9,"async"),ze("change",function(s){return r.setShowMetricLabelNameValue(s)}),ye(10,"Show label node metrics\n"),U(),xe(11,"cc-slider",2),qe(12,"async"),pt(13,qNe,3,3,"mat-checkbox",3),qe(14,"async"),xe(15,"cc-reset-settings-button",4)),2&i&&(_e("disabled",rt(1,15,r.isLabelsSliderDisabled$))("title",rt(2,17,r.isLabelsSliderDisabled$)?"Disabled because color labels are used":"Display the labels of the "+rt(3,19,r.amountOfTopLabels$)+" highest buildings")("min",0)("max",50)("value",rt(4,21,r.amountOfTopLabels$))("onChange",r.applyDebouncedTopLabels),Q(5),_e("checked",rt(6,23,r.showMetricLabelNodeName$)),Q(3),_e("checked",rt(9,25,r.showMetricLabelNodeValue$)),Q(3),_e("step",1)("min",1)("max",5)("value",rt(12,27,r.scaling$).y)("onChange",r.applyDebouncedScalingY),Q(2),Tt(13,rt(14,29,r.isDeltaState$)?-1:13),Q(2),_e("settingsKeys",fh(31,zNe)))},dependencies:[Xm,mI,fx,Kn],encapsulation:2})}}return n})(),WNe=(()=>{class n{constructor(e){this.store=e,this.heightMetric$=this.store.select(ex)}handleHeightMetricChanged(e){this.store.dispatch(wh({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-height-metric-chooser"]],decls:2,vars:4,consts:[["icon","fa-arrows-v","metricFor","heightMetric","searchPlaceholder","Height Metric (highest value)","title","Change height metric",3,"selectedMetricName","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),qe(1,"async")),2&i&&_e("selectedMetricName",rt(1,2,r.heightMetric$))("handleMetricChanged",r.handleHeightMetricChanged)},dependencies:[ux,Kn],encapsulation:2})}}return n})();const F5=Kt(so,n=>n.isColorMetricLinkedToHeightMetric);let $Ne=(()=>{class n{constructor(e){this.store=e,this.isColorMetricLinkedToHeightMetric$=this.store.select(F5)}toggleIsColorMetricLinkedToHeightMetric(){this.store.dispatch(PP())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-link-color-metric-to-height-metric-button"]],decls:4,vars:6,consts:[[1,"cc-link-metrics-button",3,"click","title"],[3,"ngClass"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),ze("click",function(){return r.toggleIsColorMetricLinkedToHeightMetric()}),xe(2,"i",1),qe(3,"async"),U()),2&i&&(Ua("title",rt(1,2,r.isColorMetricLinkedToHeightMetric$)?"Unlink Height and Color Metric":"Link Height and Color Metric"),Q(2),_e("ngClass",rt(3,4,r.isColorMetricLinkedToHeightMetric$)?"fa fa-chain-broken":"fa fa-link"))},dependencies:[nu,Kn],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;height:100%}[_nghost-%COMP%] .cc-link-metrics-button[_ngcontent-%COMP%]{width:50px;height:100%;padding:0;margin:0;background-color:transparent}[_nghost-%COMP%] .cc-link-metrics-button[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{color:#444}[_nghost-%COMP%] .cc-link-metrics-button[_ngcontent-%COMP%]:hover{background-color:#c8c8c8}"]})}}return n})(),jNe=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Nm),this.isColorMetricLinkedToHeightMetric$=this.store.select(F5)}handleColorMetricChanged(e){this.store.dispatch(pd({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-metric-chooser"]],decls:4,vars:10,consts:[["icon","fa-paint-brush","metricFor","colorMetric","searchPlaceholder","Color Metric (highest value)",3,"selectedMetricName","handleMetricChanged","isDisabled"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),qe(1,"async"),qe(2,"async"),qe(3,"async")),2&i&&(_e("selectedMetricName",rt(1,4,r.colorMetric$))("handleMetricChanged",r.handleColorMetricChanged)("isDisabled",rt(2,6,r.isColorMetricLinkedToHeightMetric$)),pi("title",rt(3,8,r.isColorMetricLinkedToHeightMetric$)?"Currently linked to height metric":"Change color metric"))},dependencies:[ux,Kn],encapsulation:2})}}return n})();const Ree=Kt(lc,n=>n.colorMode),XNe=Kt(pb,Hm,n=>({leftColor:n.positive,middleColor:n.neutral,rightColor:n.negative})),KNe=Kt(Jh,gJ,(n,t)=>({values:n.values,min:n.minValue,max:n.maxValue,from:t.from,to:t.to}));function Oee(n,t){let e;if(void 0===t)for(const i of n)null!=i&&(e=i)&&(e=i);else{let i=-1;for(let r of n)null!=(r=t(r,++i,n))&&(e=r)&&(e=r)}return e}function ZNe(n){return n}function JNe(n){return"translate("+n+",0)"}function e5e(n){return"translate(0,"+n+")"}function t5e(n){return t=>+n(t)}function n5e(n,t){return t=Math.max(0,n.bandwidth()-2*t)/2,n.round()&&(t=Math.round(t)),e=>+n(e)+t}function i5e(){return!this.__axis}function vI(n,t){var e=[],i=null,r=null,o=6,s=6,a=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=1===n||4===n?-1:1,d=4===n||2===n?"x":"y",u=1===n||3===n?JNe:e5e;function h(f){var A=i??(t.ticks?t.ticks.apply(t,e):t.domain()),y=r??(t.tickFormat?t.tickFormat.apply(t,e):ZNe),_=Math.max(o,0)+a,b=t.range(),M=+b[0]+l,C=+b[b.length-1]+l,E=(t.bandwidth?n5e:t5e)(t.copy(),l),L=f.selection?f.selection():f,N=L.selectAll(".domain").data([null]),H=L.selectAll(".tick").data(A,t).order(),j=H.exit(),R=H.enter().append("g").attr("class","tick"),B=H.select("line"),ee=H.select("text");N=N.merge(N.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),H=H.merge(R),B=B.merge(R.append("line").attr("stroke","currentColor").attr(d+"2",c*o)),ee=ee.merge(R.append("text").attr("fill","currentColor").attr(d,c*_).attr("dy",1===n?"0em":3===n?"0.71em":"0.32em")),f!==L&&(N=N.transition(f),H=H.transition(f),B=B.transition(f),ee=ee.transition(f),j=j.transition(f).attr("opacity",1e-6).attr("transform",function(we){return isFinite(we=E(we))?u(we+l):this.getAttribute("transform")}),R.attr("opacity",1e-6).attr("transform",function(we){var Ee=this.parentNode.__axis;return u((Ee&&isFinite(Ee=Ee(we))?Ee:E(we))+l)})),j.remove(),N.attr("d",4===n||2===n?s?"M"+c*s+","+M+"H"+l+"V"+C+"H"+c*s:"M"+l+","+M+"V"+C:s?"M"+M+","+c*s+"V"+l+"H"+C+"V"+c*s:"M"+M+","+l+"H"+C),H.attr("opacity",1).attr("transform",function(we){return u(E(we)+l)}),B.attr(d+"2",c*o),ee.attr(d,c*_).text(y),L.filter(i5e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===n?"start":4===n?"end":"middle"),L.each(function(){this.__axis=E})}return h.scale=function(f){return arguments.length?(t=f,h):t},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(f){return arguments.length?(e=null==f?[]:Array.from(f),h):e.slice()},h.tickValues=function(f){return arguments.length?(i=null==f?null:Array.from(f),h):i&&i.slice()},h.tickFormat=function(f){return arguments.length?(r=f,h):r},h.tickSize=function(f){return arguments.length?(o=s=+f,h):o},h.tickSizeInner=function(f){return arguments.length?(o=+f,h):o},h.tickSizeOuter=function(f){return arguments.length?(s=+f,h):s},h.tickPadding=function(f){return arguments.length?(a=+f,h):a},h.offset=function(f){return arguments.length?(l=+f,h):l},h}function s5e(){}function k5(n){return null==n?s5e:function(){return this.querySelector(n)}}function c5e(){return[]}function Nee(n){return null==n?c5e:function(){return this.querySelectorAll(n)}}function Uee(n){return function(){return this.matches(n)}}function Hee(n){return function(t){return t.matches(n)}}var h5e=Array.prototype.find;function m5e(){return this.firstElementChild}var A5e=Array.prototype.filter;function g5e(){return Array.from(this.children)}function Vee(n){return new Array(n.length)}function yI(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}function x5e(n,t,e,i,r,o){for(var a,s=0,l=t.length,c=o.length;st?1:n>=t?0:NaN}yI.prototype={constructor:yI,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};var B5="http://www.w3.org/1999/xhtml";const Qee={svg:"http://www.w3.org/2000/svg",xhtml:B5,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function wI(n){var t=n+="",e=t.indexOf(":");return e>=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),Qee.hasOwnProperty(t)?{space:Qee[t],local:n}:n}function H5e(n){return function(){this.removeAttribute(n)}}function V5e(n){return function(){this.removeAttributeNS(n.space,n.local)}}function Q5e(n,t){return function(){this.setAttribute(n,t)}}function z5e(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function q5e(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function G5e(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function zee(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function $5e(n){return function(){this.style.removeProperty(n)}}function j5e(n,t,e){return function(){this.style.setProperty(n,t,e)}}function X5e(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Ib(n,t){return n.style.getPropertyValue(t)||zee(n).getComputedStyle(n,null).getPropertyValue(t)}function Y5e(n){return function(){delete this[n]}}function Z5e(n,t){return function(){this[n]=t}}function J5e(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function qee(n){return n.trim().split(/^|\s+/)}function P5(n){return n.classList||new Gee(n)}function Gee(n){this._node=n,this._names=qee(n.getAttribute("class")||"")}function Wee(n,t){for(var e=P5(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Kee=[null];function uc(n,t){this._groups=n,this._parents=t}function Yee(){return new uc([[document.documentElement]],Kee)}uc.prototype=Yee.prototype={constructor:uc,select:function a5e(n){"function"!=typeof n&&(n=k5(n));for(var t=this._groups,e=t.length,i=new Array(e),r=0;r=C&&(C=M+1);!(L=_[C])&&++C=0;)(s=i[r])&&(o&&4^s.compareDocumentPosition(o)&&o.parentNode.insertBefore(s,o),o=s);return this},sort:function k5e(n){function t(u,h){return u&&h?n(u.__data__,h.__data__):!u-!h}n||(n=B5e);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?$5e:"function"==typeof t?X5e:j5e)(n,t,e??"")):Ib(this.node(),n)},property:function eUe(n,t){return arguments.length>1?this.each((null==t?Y5e:"function"==typeof t?J5e:Z5e)(n,t)):this.node()[n]},classed:function rUe(n,t){var e=qee(n+"");if(arguments.length<2){for(var i=P5(this.node()),r=-1,o=e.length;++r=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}})}(n+""),o=i.length;if(!(arguments.length<2)){for(a=t?DUe:FUe,r=0;r{}};function Zee(){for(var i,n=0,t=arguments.length,e={};n=0&&(i=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:i}})}(n+"",e),o=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++o0)for(var r,o,e=new Array(r),i=0;i=0&&n._call.call(void 0,t),n=n._next;--Fb}()}finally{Fb=0,function GUe(){for(var n,e,t=CI,i=1/0;t;)t._call?(i>t._time&&(i=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:CI=e);_x=n,O5(i)}(),ig=0}}function qUe(){var n=bx.now(),t=n-MI;t>ete&&(EI-=t,MI=n)}function O5(n){Fb||(Ax&&(Ax=clearTimeout(Ax)),n-ig>24?(n<1/0&&(Ax=setTimeout(ite,n-bx.now()-EI)),gx&&(gx=clearInterval(gx))):(gx||(MI=bx.now(),gx=setInterval(qUe,ete)),Fb=1,tte(ite)))}function rte(n,t,e){var i=new SI;return i.restart(r=>{i.stop(),n(r+t)},t=null==t?0:+t,e),i}SI.prototype=nte.prototype={constructor:SI,restart:function(n,t,e){if("function"!=typeof n)throw new TypeError("callback is not a function");e=(null==e?R5():+e)+(null==t?0:+t),!this._next&&_x!==this&&(_x?_x._next=this:CI=this,_x=this),this._call=n,this._time=e,O5()},stop:function(){this._call&&(this._call=null,this._time=1/0,O5())}};var WUe=VUe("start","end","cancel","interrupt"),$Ue=[],ote=0,TI=3;function FI(n,t,e,i,r,o){var s=n.__transition;if(s){if(e in s)return}else n.__transition={};!function jUe(n,t,e){var r,i=n.__transition;function s(c){var d,u,h,f;if(1!==e.state)return l();for(d in i)if((f=i[d]).name===e.name){if(f.state===TI)return rte(s);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",n,n.__data__,f.index,f.group),delete i[d]):+dote)throw new Error("too late; already scheduled");return e}function Tu(n,t){var e=Ed(n,t);if(e.state>TI)throw new Error("too late; already running");return e}function Ed(n,t){var e=n.__transition;if(!e||!(e=e[t]))throw new Error("transition not found");return e}function Sd(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}var DI,lte=180/Math.PI,H5={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cte(n,t,e,i,r,o){var s,a,l;return(s=Math.sqrt(n*n+t*t))&&(n/=s,t/=s),(l=n*e+t*i)&&(e-=n*l,i-=t*l),(a=Math.sqrt(e*e+i*i))&&(e/=a,i/=a,l/=a),n*i180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(r(u)+"rotate(",null,i)-2,x:Sd(c,d)})):d&&u.push(r(u)+"rotate("+d+i)}(c.rotate,d.rotate,u,h),function a(c,d,u,h){c!==d?h.push({i:u.push(r(u)+"skewX(",null,i)-2,x:Sd(c,d)}):d&&u.push(r(u)+"skewX("+d+i)}(c.skewX,d.skewX,u,h),function l(c,d,u,h,f,A){if(c!==u||d!==h){var y=f.push(r(f)+"scale(",null,",",null,")");A.push({i:y-4,x:Sd(c,u)},{i:y-2,x:Sd(d,h)})}else(1!==u||1!==h)&&f.push(r(f)+"scale("+u+","+h+")")}(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(f){for(var _,A=-1,y=h.length;++A>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?BI(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?BI(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=o8e.exec(n))?new vl(t[1],t[2],t[3],1):(t=s8e.exec(n))?new vl(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=a8e.exec(n))?BI(t[1],t[2],t[3],t[4]):(t=l8e.exec(n))?BI(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=c8e.exec(n))?_te(t[1],t[2]/100,t[3]/100,1):(t=d8e.exec(n))?_te(t[1],t[2]/100,t[3]/100,t[4]):hte.hasOwnProperty(n)?pte(hte[n]):"transparent"===n?new vl(NaN,NaN,NaN,0):null}function pte(n){return new vl(n>>16&255,n>>8&255,255&n,1)}function BI(n,t,e,i){return i<=0&&(n=t=e=NaN),new vl(n,t,e,i)}function PI(n,t,e,i){return 1===arguments.length?function f8e(n){return n instanceof vx||(n=rg(n)),n?new vl((n=n.rgb()).r,n.g,n.b,n.opacity):new vl}(n):new vl(n,t,e,i??1)}function vl(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function Ate(){return`#${sg(this.r)}${sg(this.g)}${sg(this.b)}`}function gte(){const n=RI(this.opacity);return`${1===n?"rgb(":"rgba("}${og(this.r)}, ${og(this.g)}, ${og(this.b)}${1===n?")":`, ${n})`}`}function RI(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function og(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function sg(n){return((n=og(n))<16?"0":"")+n.toString(16)}function _te(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new Td(n,t,e,i)}function bte(n){if(n instanceof Td)return new Td(n.h,n.s,n.l,n.opacity);if(n instanceof vx||(n=rg(n)),!n)return new Td;if(n instanceof Td)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),s=NaN,a=o-r,l=(o+r)/2;return a?(s=t===o?(e-i)/a+6*(e0&&l<1?0:s,new Td(s,a,l,n.opacity)}function Td(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function vte(n){return(n=(n||0)%360)<0?n+360:n}function OI(n){return Math.max(0,Math.min(1,n||0))}function z5(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}function yte(n,t,e,i,r){var o=n*n,s=o*n;return((1-3*n+3*o-s)*t+(4-6*o+3*s)*e+(1+3*n+3*o-3*s)*i+s*r)/6}Q5(vx,rg,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:fte,formatHex:fte,formatHex8:function u8e(){return this.rgb().formatHex8()},formatHsl:function h8e(){return bte(this).formatHsl()},formatRgb:mte,toString:mte}),Q5(vl,PI,ute(vx,{brighter(n){return n=null==n?kI:Math.pow(kI,n),new vl(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new vl(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new vl(og(this.r),og(this.g),og(this.b),RI(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ate,formatHex:Ate,formatHex8:function m8e(){return`#${sg(this.r)}${sg(this.g)}${sg(this.b)}${sg(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:gte,toString:gte})),Q5(Td,function p8e(n,t,e,i){return 1===arguments.length?bte(n):new Td(n,t,e,i??1)},ute(vx,{brighter(n){return n=null==n?kI:Math.pow(kI,n),new Td(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new Td(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new vl(z5(n>=240?n-240:n+120,r,i),z5(n,r,i),z5(n<120?n+240:n-120,r,i),this.opacity)},clamp(){return new Td(vte(this.h),OI(this.s),OI(this.l),RI(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const n=RI(this.opacity);return`${1===n?"hsl(":"hsla("}${vte(this.h)}, ${100*OI(this.s)}%, ${100*OI(this.l)}%${1===n?")":`, ${n})`}`}}));const q5=n=>()=>n;function xte(n,t){var e=t-n;return e?function wte(n,t){return function(e){return n+e*t}}(n,e):q5(isNaN(n)?t:n)}const LI=function n(t){var e=function b8e(n){return 1==(n=+n)?xte:function(t,e){return e-t?function _8e(n,t,e){return n=Math.pow(n,e),t=Math.pow(t,e)-n,e=1/e,function(i){return Math.pow(n+i*t,e)}}(t,e,n):q5(isNaN(t)?e:t)}}(t);function i(r,o){var s=e((r=PI(r)).r,(o=PI(o)).r),a=e(r.g,o.g),l=e(r.b,o.b),c=xte(r.opacity,o.opacity);return function(d){return r.r=s(d),r.g=a(d),r.b=l(d),r.opacity=c(d),r+""}}return i.gamma=n,i}(1);function Cte(n){return function(t){var s,a,e=t.length,i=new Array(e),r=new Array(e),o=new Array(e);for(s=0;s=1?(e=1,t-1):Math.floor(e*t),r=n[i],o=n[i+1];return yte((e-i/t)*t,i>0?n[i-1]:2*r-o,r,o,ie&&(o=t.slice(e,o),a[s]?a[s]+=o:a[++s]=o),(i=i[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,l.push({i:s,x:Sd(i,r)})),e=W5.lastIndex;return e=0&&(t=t.slice(0,e)),!t||"start"===t})}(t)?U5:Tu;return function(){var s=o(this,n),a=s.on;a!==i&&(r=(i=a).copy()).on(t,e),s.on=r}}(e,n,t))},attr:function T8e(n,t){var e=wI(n),i="transform"===e?e8e:Ete;return this.attrTween(n,"function"==typeof t?(e.local?S8e:E8e)(e,i,V5(this,"attr."+n,t)):null==t?(e.local?x8e:w8e)(e):(e.local?M8e:C8e)(e,i,t))},attrTween:function B8e(n,t){var e="attr."+n;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;var i=wI(n);return this.tween(e,(i.local?D8e:k8e)(i,t))},style:function o6e(n,t,e){var i="transform"==(n+="")?JUe:Ete;return null==t?this.styleTween(n,function t6e(n,t){var e,i,r;return function(){var o=Ib(this,n),s=(this.style.removeProperty(n),Ib(this,n));return o===s?null:o===e&&s===i?r:r=t(e=o,i=s)}}(n,i)).on("end.style."+n,Ste(n)):"function"==typeof t?this.styleTween(n,function i6e(n,t,e){var i,r,o;return function(){var s=Ib(this,n),a=e(this),l=a+"";return null==a&&(this.style.removeProperty(n),l=a=Ib(this,n)),s===l?null:s===i&&l===r?o:(r=l,o=t(i=s,a))}}(n,i,V5(this,"style."+n,t))).each(function r6e(n,t){var e,i,r,a,o="style."+t,s="end."+o;return function(){var l=Tu(this,n),c=l.on,d=null==l.value[o]?a||(a=Ste(t)):void 0;(c!==e||r!==d)&&(i=(e=c).copy()).on(s,r=d),l.on=i}}(this._id,n)):this.styleTween(n,function n6e(n,t,e){var i,o,r=e+"";return function(){var s=Ib(this,n);return s===r?null:s===i?o:o=t(i=s,e)}}(n,i,t),e).on("end.style."+n,null)},styleTween:function l6e(n,t,e){var i="style."+(n+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==t)return this.tween(i,null);if("function"!=typeof t)throw new Error;return this.tween(i,function a6e(n,t,e){var i,r;function o(){var s=t.apply(this,arguments);return s!==r&&(i=(r=s)&&function s6e(n,t,e){return function(i){this.style.setProperty(n,t.call(this,i),e)}}(n,s,e)),i}return o._value=t,o}(n,t,e??""))},text:function u6e(n){return this.tween("text","function"==typeof n?function d6e(n){return function(){var t=n(this);this.textContent=t??""}}(V5(this,"text",n)):function c6e(n){return function(){this.textContent=n}}(null==n?"":n+""))},textTween:function m6e(n){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==n)return this.tween(t,null);if("function"!=typeof n)throw new Error;return this.tween(t,function f6e(n){var t,e;function i(){var r=n.apply(this,arguments);return r!==e&&(t=(e=r)&&function h6e(n){return function(t){this.textContent=n.call(this,t)}}(r)),t}return i._value=n,i}(n))},remove:function K8e(){return this.on("end.remove",function X8e(n){return function(){var t=this.parentNode;for(var e in this.__transition)if(+e!==n)return;t&&t.removeChild(this)}}(this._id))},tween:function i8e(n,t){var e=this._id;if(n+="",arguments.length<2){for(var s,i=Ed(this.node(),e).tween,r=0,o=i.length;r2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(r?"interrupt":"cancel",n,n.__data__,i.index,i.group),delete e[s]):o=!1;o&&delete n.__transition}}(this,n)})},px.prototype.transition=function w6e(n){var t,e;n instanceof af?(t=n._id,n=n._name):(t=Tte(),(e=v6e).time=R5(),n=null==n?null:n+"");for(var i=this._groups,r=i.length,o=0;o1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Pb(n){return(n=HI(Math.abs(n)))?n[1]:NaN}["w","e"].map(xx),["n","s"].map(xx),["n","w","e","s","nw","ne","sw","se"].map(xx);var Pte,B6e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function VI(n){if(!(t=B6e.exec(n)))throw new Error("invalid format: "+n);var t;return new Y5({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Y5(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function Rte(n,t){var e=HI(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}VI.prototype=Y5.prototype,Y5.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Ote={"%":(n,t)=>(100*n).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:function F6e(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)},e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Rte(100*n,t),r:Rte,s:function R6e(n,t){var e=HI(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Pte=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,s=i.length;return o===s?i:o>s?i+new Array(o-s+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+HI(n,Math.max(0,t+o-1))[0]},X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function Lte(n){return n}var QI,zI,Hte,Nte=Array.prototype.map,Ute=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];!function L6e(n){QI=function O6e(n){var t=void 0===n.grouping||void 0===n.thousands?Lte:function D6e(n,t){return function(e,i){for(var r=e.length,o=[],s=0,a=n[0],l=0;r>0&&a>0&&(l+a+1>i&&(a=Math.max(1,i-l)),o.push(e.substring(r-=a,r+a)),!((l+=a+1)>i));)a=n[s=(s+1)%n.length];return o.reverse().join(t)}}(Nte.call(n.grouping,Number),n.thousands+""),e=void 0===n.currency?"":n.currency[0]+"",i=void 0===n.currency?"":n.currency[1]+"",r=void 0===n.decimal?".":n.decimal+"",o=void 0===n.numerals?Lte:function k6e(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}(Nte.call(n.numerals,String)),s=void 0===n.percent?"%":n.percent+"",a=void 0===n.minus?"\u2212":n.minus+"",l=void 0===n.nan?"NaN":n.nan+"";function c(u){var h=(u=VI(u)).fill,f=u.align,A=u.sign,y=u.symbol,_=u.zero,b=u.width,M=u.comma,C=u.precision,E=u.trim,L=u.type;"n"===L?(M=!0,L="g"):Ote[L]||(void 0===C&&(C=12),E=!0,L="g"),(_||"0"===h&&"="===f)&&(_=!0,h="0",f="=");var N="$"===y?e:"#"===y&&/[boxX]/.test(L)?"0"+L.toLowerCase():"",H="$"===y?i:/[%p]/.test(L)?s:"",j=Ote[L],R=/[defgprs%]/.test(L);function B(ee){var ne,Ie,te,we=N,Ee=H;if("c"===L)Ee=j(ee)+Ee,ee="";else{var Ae=(ee=+ee)<0||1/ee<0;if(ee=isNaN(ee)?l:j(Math.abs(ee),C),E&&(ee=function P6e(n){e:for(var r,t=n.length,e=1,i=-1;e0&&(i=0)}return i>0?n.slice(0,i)+n.slice(r+1):n}(ee)),Ae&&0==+ee&&"+"!==A&&(Ae=!1),we=(Ae?"("===A?A:a:"-"===A||"("===A?"":A)+we,Ee=("s"===L?Ute[8+Pte/3]:"")+Ee+(Ae&&"("===A?")":""),R)for(ne=-1,Ie=ee.length;++ne(te=ee.charCodeAt(ne))||te>57){Ee=(46===te?r+ee.slice(ne+1):ee.slice(ne))+Ee,ee=ee.slice(0,ne);break}}M&&!_&&(ee=t(ee,1/0));var le=we.length+ee.length+Ee.length,Pe=le>1)+we+ee+Ee+Pe.slice(le);break;default:ee=Pe+we+ee+Ee}return o(ee)}return C=void 0===C?6:/[gprs]/.test(L)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C)),B.toString=function(){return u+""},B}return{format:c,formatPrefix:function d(u,h){var f=c(((u=VI(u)).type="f",u)),A=3*Math.max(-8,Math.min(8,Math.floor(Pb(h)/3))),y=Math.pow(10,-A),_=Ute[8+A/3];return function(b){return f(y*b)+_}}}}(n),zI=QI.format,Hte=QI.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const N6e=Math.sqrt(50),U6e=Math.sqrt(10),H6e=Math.sqrt(2);function qI(n,t,e){const i=(t-n)/Math.max(0,e),r=Math.floor(Math.log10(i)),o=i/Math.pow(10,r),s=o>=N6e?10:o>=U6e?5:o>=H6e?2:1;let a,l,c;return r<0?(c=Math.pow(10,-r)/s,a=Math.round(n*c),l=Math.round(t*c),a/ct&&--l,c=-c):(c=Math.pow(10,r)*s,a=Math.round(n/c),l=Math.round(t/c),a*ct&&--l),lt?1:n>=t?0:NaN}function z6e(n,t){return null==n||null==t?NaN:tn?1:t>=n?0:NaN}function Vte(n){let t,e,i;function r(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<0?c=u+1:d=u}while(cGI(n(a),l),i=(a,l)=>n(a)-l):(t=n===GI||n===z6e?n:q6e,e=n,i=n),{left:r,center:function s(a,l,c=0,d=a.length){const u=r(a,l,c,d-1);return u>c&&i(a[u-1],l)>-i(a[u],l)?u-1:u},right:function o(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<=0?c=u+1:d=u}while(c0))return[];if((n=+n)==(t=+t))return[n];const i=t=r))return[];const a=o-r+1,l=new Array(a);if(i)if(s<0)for(let c=0;c0;){if((c=Z5(s,a,e))===l)return i[r]=s,i[o]=a,t(i);if(c>0)s=Math.floor(s/c)*c,a=Math.ceil(a/c)*c;else{if(!(c<0))break;s=Math.ceil(s*c)/c,a=Math.floor(a*c)/c}l=c}return n},n}function tU(){var n=function s7e(){return function o7e(){var i,r,o,a,l,c,n=qte,t=qte,e=J5,s=Rb;function d(){var h=Math.min(n.length,t.length);return s!==Rb&&(s=function t7e(n,t){var e;return n>t&&(e=n,n=t,t=e),function(i){return Math.max(n,Math.min(t,i))}}(n[0],n[h-1])),a=h>2?i7e:n7e,l=c=null,u}function u(h){return null==h||isNaN(h=+h)?o:(l||(l=a(n.map(i),t,e)))(i(s(h)))}return u.invert=function(h){return s(r((c||(c=a(t,n.map(i),Sd)))(h)))},u.domain=function(h){return arguments.length?(n=Array.from(h,e7e),d()):n.slice()},u.range=function(h){return arguments.length?(t=Array.from(h),d()):t.slice()},u.rangeRound=function(h){return t=Array.from(h),e=Z6e,d()},u.clamp=function(h){return arguments.length?(s=!!h||Rb,d()):s!==Rb},u.interpolate=function(h){return arguments.length?(e=h,d()):e},u.unknown=function(h){return arguments.length?(o=h,u):o},function(h,f){return i=h,r=f,d()}}()(Rb,Rb)}();return n.copy=function(){return function r7e(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}(n,tU())},a7e.apply(n,arguments),h7e(n)}function Gte(n){return"string"==typeof n?new uc([[document.querySelector(n)]],[document.documentElement]):new uc([[n]],Kee)}function Ob(n){return function(){return n}}function Wte(n){this._context=n}function m7e(n){return new Wte(n)}Wte.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(n,t){switch(n=+n,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,t):this._context.moveTo(n,t);break;case 1:this._point=2;default:this._context.lineTo(n,t)}}};const nU=Math.PI,iU=2*nU,ag=1e-6,p7e=iU-ag;function $te(n){this._+=n[0];for(let t=1,e=n.length;t=0))throw new Error(`invalid digits: ${n}`);if(t>15)return $te;const e=10**t;return function(i){this._+=i[0];for(let r=1,o=i.length;rag)if(Math.abs(u*l-c*d)>ag&&o){let f=i-s,A=r-a,y=l*l+c*c,_=f*f+A*A,b=Math.sqrt(y),M=Math.sqrt(h),C=o*Math.tan((nU-Math.acos((y+h-_)/(2*b*M)))/2),E=C/M,L=C/b;Math.abs(E-1)>ag&&this._append`L${t+E*d},${e+E*u}`,this._append`A${o},${o},0,0,${+(u*f>d*A)},${this._x1=t+L*l},${this._y1=e+L*c}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,i,r,o,s){if(t=+t,e=+e,s=!!s,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=i*Math.cos(r),l=i*Math.sin(r),c=t+a,d=e+l,u=1^s,h=s?r-o:o-r;null===this._x1?this._append`M${c},${d}`:(Math.abs(this._x1-c)>ag||Math.abs(this._y1-d)>ag)&&this._append`L${c},${d}`,i&&(h<0&&(h=h%iU+iU),h>p7e?this._append`A${i},${i},0,1,${u},${t-a},${e-l}A${i},${i},0,1,${u},${this._x1=c},${this._y1=d}`:h>ag&&this._append`A${i},${i},0,${+(h>=nU)},${u},${this._x1=t+i*Math.cos(o)},${this._y1=e+i*Math.sin(o)}`)}rect(t,e,i,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function b7e(n){return n[0]}function v7e(n){return n[1]}function $I(n,t){this._context=n,this._t=t}function w7e(n){return new $I(n,0)}function Lb(n,t,e){this.k=n,this.x=t,this.y=e}$I.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(n,t){switch(n=+n,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,t):this._context.moveTo(n,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(n,t);else{var e=this._x*(1-this._t)+n*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,t)}}this._x=n,this._y=t}},Lb.prototype={constructor:Lb,scale:function(n){return 1===n?this:new Lb(this.k*n,this.x,this.y)},translate:function(n,t){return 0===n&0===t?this:new Lb(this.k,this.x+this.k*n,this.y+this.k*t)},apply:function(n){return[n[0]*this.k+this.x,n[1]*this.k+this.y]},applyX:function(n){return n*this.k+this.x},applyY:function(n){return n*this.k+this.y},invert:function(n){return[(n[0]-this.x)/this.k,(n[1]-this.y)/this.k]},invertX:function(n){return(n-this.x)/this.k},invertY:function(n){return(n-this.y)/this.k},rescaleX:function(n){return n.copy().domain(n.range().map(this.invertX,this).map(n.invert,n))},rescaleY:function(n){return n.copy().domain(n.range().map(this.invertY,this).map(n.invert,n))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new Lb(1,0,0);let F7e=(()=>{class n{ngOnChanges(){this.values.length>0&&(this.percentileRanks=this.isAttributeDirectionInversed?this.calculateReversedPercentileRanks(this.values):this.calculatePercentileRanks(this.values),this.renderDiagram())}renderDiagram(){this.initializeDiagramDimesions(),this.clearDiagramContainer();const e=this.createSvg(),i=this.createGroup(e),r=this.createXScale(),o=this.createYScale();this.drawAxes(i,r,o),this.drawFrame(i),this.drawLabels(i),this.drawAreas(i,r),this.drawLine(i)}initializeDiagramDimesions(){this.frameWidth=296,this.frameBuffer=10,this.frameHeight=80,this.marginTop=10,this.marginBottom=10,this.marginLeft=66,this.marginRight=54,this.diagramWidth=this.frameWidth-this.marginLeft-this.marginRight,this.diagramHeight=this.frameHeight-this.marginTop-this.marginBottom,this.yLabelYOffset=-47}clearDiagramContainer(){Gte("#cc-range-diagram-container").selectAll("*").remove()}createSvg(){return Gte("#cc-range-diagram-container").append("svg")}createGroup(e){return e.append("g").attr("transform",`translate(${this.marginLeft}, ${this.marginTop})`)}drawFrame(e){e.append("path").attr("d",`M ${-this.frameBuffer} ${-this.frameBuffer} h${this.diagramWidth+2*this.frameBuffer} v${this.diagramHeight+2*this.frameBuffer} h${-this.diagramWidth-2*this.frameBuffer} v${-this.diagramHeight-2*this.frameBuffer}`).attr("fill","none").attr("stroke","#888").attr("stroke-width","1px")}drawAxes(e,i,r){e.append("g").attr("id","axis-x").attr("transform",`translate(0,${this.diagramHeight+this.frameBuffer})`).call(function r5e(n){return vI(3,n)}(i).ticks(5)).attr("color","#888"),e.append("g").attr("id","axis-y").attr("transform",`translate(${-this.frameBuffer}, 0)`).call(function o5e(n){return vI(4,n)}(r).ticks(5).tickFormat(function(o){return o>=1e4?`${zI(".0f")(o/1e3)}k`:o>=1e3?`${zI(".1f")(o/1e3)}k`:o.toString()})).attr("color","#888")}createXScale(){return tU().domain(function YNe(n,t){let e,i;if(void 0===t)for(const r of n)null!=r&&(void 0===e?r>=r&&(e=i=r):(e>r&&(e=r),i=o&&(e=i=o):(e>o&&(e=o),ie.x)).range([0,this.diagramWidth])}createYScale(){const e=[0,Oee(this.percentileRanks,r=>r.y)],i=[Oee(this.percentileRanks,r=>r.y),0];return tU().domain(this.isAttributeDirectionInversed?i:e).range([this.diagramHeight,0])}drawLabels(e){const o=(this.diagramHeight+2*this.frameBuffer)/2-this.frameBuffer;e.append("text").attr("id","y-label").attr("class","y label").attr("transform","rotate(-90)").attr("x",-o).attr("y",this.yLabelYOffset).attr("text-anchor","middle").attr("fill","#888").text(`${this.colorMetric}`),e.append("text").attr("id","x-label").attr("class","x label").attr("text-anchor","middle").attr("x",this.diagramWidth/2).attr("y",this.diagramHeight+this.marginTop+this.marginBottom+2*this.frameBuffer).attr("fill","#888").text(`Quantiles (% of ${this.colorMetric})`)}drawAreas(e,i){const r=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentRightValue):this.calculatePercentileFromMetricValue(this.currentLeftValue)),o=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentLeftValue):this.calculatePercentileFromMetricValue(this.currentRightValue));e.append("rect").attr("class","left-area").attr("x",0).attr("y",-this.frameBuffer).attr("width",r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.rightColor:this.leftColor).style("fill-opacity","0.3"),e.append("rect").attr("class","middle-area").attr("x",r).attr("y",-this.frameBuffer).attr("width",o-r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.middleColor).style("fill-opacity","0.3"),e.append("rect").attr("class","right-area").attr("x",o).attr("y",-this.frameBuffer).attr("width",this.diagramWidth-o).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.leftColor:this.rightColor).style("fill-opacity","0.3")}drawLine(e){e.append("path").attr("id","diagram-path").datum(this.percentileRanks).attr("fill","none").attr("stroke","#888").attr("stroke-width",1).attr("d",function y7e(n,t){var e=Ob(!0),i=null,r=m7e,o=null,s=function _7e(n){let t=3;return n.digits=function(e){if(!arguments.length)return t;if(null==e)t=null;else{const i=Math.floor(e);if(!(i>=0))throw new RangeError(`invalid digits: ${e}`);t=i}return n},()=>new WI(t)}(a);function a(l){var c,u,f,d=(l=function f7e(n){return"object"==typeof n&&"length"in n?n:Array.from(n)}(l)).length,h=!1;for(null==i&&(o=r(f=s())),c=0;c<=d;++c)!(cthis.createXScale()(i.x)).y(i=>this.createYScale()(i.y)))}calculatePercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c<=s).length/r*100;o.push({x:l,y:s})}return o}calculateReversedPercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a).reverse(),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c>=s).length/r*100;o.push({x:l,y:s})}return o.sort((s,a)=>s.x-a.x)}calculatePercentileFromMetricValue(e){if(e===this.minValue)return 0;if(e===this.maxValue)return 100;let i=null;for(const r of this.percentileRanks){if(!(r.ye))return i;i=r.x}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-color-range-diagram"]],inputs:{minValue:"minValue",maxValue:"maxValue",colorMetric:"colorMetric",values:"values",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[xr],decls:1,vars:0,consts:[["id","cc-range-diagram-container",1,"cc-range-diagram-container"]],template:function(i,r){1&i&&xe(0,"div",0)},styles:["#slider-label-left[_ngcontent-%COMP%], #slider-label-right[_ngcontent-%COMP%], #x-label[_ngcontent-%COMP%], #y-label[_ngcontent-%COMP%], #axis-x[_ngcontent-%COMP%], #axis-y[_ngcontent-%COMP%]{font-size:11px}#slider-label-left[text-anchor].end[_ngcontent-%COMP%], #slider-label-right[text-anchor].end[_ngcontent-%COMP%], #x-label[text-anchor].end[_ngcontent-%COMP%], #y-label[text-anchor].end[_ngcontent-%COMP%], #axis-x[text-anchor].end[_ngcontent-%COMP%], #axis-y[text-anchor].end[_ngcontent-%COMP%]{text-anchor:end}#slider-label-left[text-anchor].start[_ngcontent-%COMP%], #slider-label-right[text-anchor].start[_ngcontent-%COMP%], #x-label[text-anchor].start[_ngcontent-%COMP%], #y-label[text-anchor].start[_ngcontent-%COMP%], #axis-x[text-anchor].start[_ngcontent-%COMP%], #axis-y[text-anchor].start[_ngcontent-%COMP%]{text-anchor:start}#slider-label-left[_ngcontent-%COMP%]{font-size:11px;fill:#888;text-anchor:end;dominant-baseline:hanging}#slider-label-right[_ngcontent-%COMP%]{font-size:11px;fill:#888;text-anchor:start;dominant-baseline:hanging}.cc-range-diagram-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:130px}[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})();const k7e=({thumbX:n,minValue:t,maxValue:e,sliderWidth:i})=>Math.round(t+n*((e-t)/i)),Xte=({newThumbScreenX:n,sliderBoundingClientRectX:t,thumbRadius:e,sliderWidth:i,minValue:r,maxValue:o})=>{const s=n-t+e;return{updatedThumbX:s,upcomingValue:k7e({thumbX:s,minValue:r,maxValue:o,sliderWidth:i})}},R7e=["minLabel"],O7e=["maxLabel"],L7e=["currentLeftLabel"],N7e=["currentRightLabel"],U7e=["combinedCurrentLeftRightLabel"];let H7e=(()=>{class n{constructor(e){this.changeDetector=e,this.hideMinLabel=!1,this.hideMaxLabel=!1,this.doLeftRightLabelOverlap=!1}ngAfterViewChecked(){this.updateLabelDisplays()}updateLabelDisplays(){const e=this.minLabel.nativeElement.getBoundingClientRect().width,i=this.currentLeftLabel.nativeElement.getBoundingClientRect().width;this.currentLeftLabelLeftPosition=this.sliderRangePosition.leftEnd-i/2;const r=this.currentRightLabel.nativeElement.getBoundingClientRect().width,o=this.sliderWidth-this.maxLabel.nativeElement.getBoundingClientRect().width;this.currentRightLabelLeftPosition=this.sliderRangePosition.rightStart-r/2,this.hideMinLabel=this.currentLeftLabelLeftPosition<=e+4,this.hideMaxLabel=this.currentRightLabelLeftPosition+r+4>=o;const s=this.currentLeftLabelLeftPosition+i;this.doLeftRightLabelOverlap=s+4>=this.currentRightLabelLeftPosition;const a=(s+this.currentRightLabelLeftPosition)/2,l=this.combinedCurrentLeftRightLabel.nativeElement.getBoundingClientRect().width;this.combinedCurrentLeftRightLabelLeftPosition=a-l/2,this.changeDetector.detectChanges()}static{this.\u0275fac=function(i){return new(i||n)($(vo))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-range-slider-labels"]],viewQuery:function(i,r){if(1&i&&(ti(R7e,5),ti(O7e,5),ti(L7e,5),ti(N7e,5),ti(U7e,5)),2&i){let o;an(o=ln())&&(r.minLabel=o.first),an(o=ln())&&(r.maxLabel=o.first),an(o=ln())&&(r.currentLeftLabel=o.first),an(o=ln())&&(r.currentRightLabel=o.first),an(o=ln())&&(r.combinedCurrentLeftRightLabel=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",leftValueLabel:"leftValueLabel",rightValueLabel:"rightValueLabel",sliderRangePosition:"sliderRangePosition",sliderWidth:"sliderWidth"},decls:15,vars:26,consts:[["minLabel",""],["currentLeftLabel",""],["currentRightLabel",""],["combinedCurrentLeftRightLabel",""],["maxLabel",""],[1,"cc-range-slider-label"]],template:function(i,r){1&i&&(D(0,"div",5,0),ye(2),U(),D(3,"div",5,1),ye(5),U(),D(6,"div",5,2),ye(8),U(),D(9,"div",5,3),ye(11),U(),D(12,"div",5,4),ye(14),U()),2&i&&(zi("left",0,"px")("visibility",r.hideMinLabel?"hidden":"visible"),Q(2),sn(" ",r.minValue,"\n"),Q(),zi("left",r.currentLeftLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),Q(2),sn(" ",r.leftValueLabel,"\n"),Q(),zi("left",r.currentRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),Q(2),sn(" ",r.rightValueLabel,"\n"),Q(),zi("left",r.combinedCurrentLeftRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"visible":"hidden"),Q(2),Jd(" ",r.leftValueLabel," - ",r.rightValueLabel,"\n"),Q(),zi("right",0,"px")("visibility",r.hideMaxLabel?"hidden":"visible"),Q(2),sn(" ",r.maxValue,"\n"))},styles:["[_nghost-%COMP%] .cc-range-slider-label[_ngcontent-%COMP%]{position:absolute;top:-25px;line-height:24px;font-size:14px;color:#aeaeae}"],changeDetection:0})}}return n})();const V7e=["rangeSliderContainer"],Q7e=["leftThumb"],z7e=["rightThumb"];let q7e=(()=>{class n{constructor(){this.sliderWidth=150,this.sliderRangePosition={leftEnd:0,rightStart:0},this.thumbRadius=7,this.currentlySliding=void 0,this.resetCurrentlySlidingOnNextMouseUp=e=>{const i=()=>{this.currentlySliding=void 0,document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",e)};document.addEventListener("mouseup",i)},this.handleLeftThumbMoved=e=>{const i=(({deltaX:n,thumbScreenX:t,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=t+n;return li&&(l=i),Xte({newThumbScreenX:l,sliderBoundingClientRectX:r,thumbRadius:e,sliderWidth:o,minValue:s,maxValue:a})})({deltaX:e.movementX,thumbScreenX:this.leftThumb.nativeElement.getBoundingClientRect().x,thumbRadius:this.thumbRadius,otherThumbScreenX:this.rightThumb.nativeElement.getBoundingClientRect().x,sliderBoundingClientRectX:this.sliderContainer.nativeElement.getBoundingClientRect().x,sliderWidth:this.sliderWidth,minValue:this.minValue,maxValue:this.maxValue});this.sliderRangePosition={leftEnd:i.updatedThumbX,rightStart:this.sliderRangePosition.rightStart},this.upcomingLeftValue=i.upcomingValue,this.handleValueChange({newLeftValue:i.upcomingValue})},this.handleRightThumbMoved=e=>{const i=(({deltaX:n,thumbScreenX:t,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=t+n;return l>r+o-e&&(l=r+o-e),l{const o=t-n;return o<=0?{leftEnd:r,rightStart:r}:{leftEnd:(e-n)/o*r,rightStart:(i-n)/o*r}})({minValue:this.minValue,maxValue:this.maxValue,currentLeftValue:this.currentLeftValue,currentRightValue:this.currentRightValue,sliderWidth:this.sliderWidth}),e.currentLeftValue&&(this.upcomingLeftValue=this.currentLeftValue),e.currentRightValue&&(this.upcomingRightValue=this.currentRightValue))}setCurrentlySliding(e){switch(this.currentlySliding=e,this.currentlySliding){case"leftThumb":document.addEventListener("mousemove",this.handleLeftThumbMoved),this.rightThumb.nativeElement.style.zIndex="0",this.leftThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleLeftThumbMoved);break;case"rightThumb":document.addEventListener("mousemove",this.handleRightThumbMoved),this.leftThumb.nativeElement.style.zIndex="0",this.rightThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleRightThumbMoved)}}handleCurrentLeftInputChanged(e){const i=qN(e,this.minValue,this.currentRightValue);i!==this.currentLeftValue&&this.handleValueChange({newLeftValue:i})}handleCurrentRightInputChanged(e){const i=qN(e,this.currentLeftValue,this.maxValue);i!==this.currentRightValue&&this.handleValueChange({newRightValue:i})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-metric-color-range-slider"]],viewQuery:function(i,r){if(1&i&&(ti(V7e,5),ti(Q7e,5),ti(z7e,5)),2&i){let o;an(o=ln())&&(r.sliderContainer=o.first),an(o=ln())&&(r.leftThumb=o.first),an(o=ln())&&(r.rightThumb=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",handleValueChange:"handleValueChange",sliderWidth:"sliderWidth",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[xr],decls:15,vars:28,consts:[["rangeSliderContainer",""],["leftThumb",""],["rightThumb",""],[1,"cc-range-slider-container"],["appearance","outline"],["matInput","","type","number",3,"input","value","min","max"],[1,"cc-range-slider-slider"],[1,"cc-range-slider-bar"],[1,"cc-range-slider-slider-thumb",3,"mousedown"],[3,"minValue","maxValue","leftValueLabel","rightValueLabel","sliderRangePosition","sliderWidth"]],template:function(i,r){if(1&i){const o=Dn();D(0,"div",3)(1,"mat-form-field",4)(2,"input",5),ze("input",function(a){return Ot(o),Rt(r.handleCurrentLeftInputChanged(a))}),U()(),D(3,"div",6,0),xe(5,"span",7)(6,"span",7)(7,"span",7),D(8,"div",8,1),ze("mousedown",function(){return Ot(o),Rt(r.setCurrentlySliding("leftThumb"))}),U(),D(10,"div",8,2),ze("mousedown",function(){return Ot(o),Rt(r.setCurrentlySliding("rightThumb"))}),U(),xe(12,"cc-range-slider-labels",9),U(),D(13,"mat-form-field",4)(14,"input",5),ze("input",function(a){return Ot(o),Rt(r.handleCurrentRightInputChanged(a))}),U()()()}2&i&&(Q(2),_e("value",r.currentLeftValue)("min",r.minValue)("max",r.upcomingRightValue),Q(3),zi("width",r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.leftColor),Q(),zi("width",r.sliderRangePosition.rightStart-r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.middleColor),Q(),zi("width",r.sliderWidth-r.sliderRangePosition.rightStart,"px")("border-bottom-color",r.rightColor),Q(),zi("left",r.sliderRangePosition.leftEnd-r.thumbRadius,"px"),Q(2),zi("left",r.sliderRangePosition.rightStart-r.thumbRadius,"px"),Q(2),_e("minValue",r.minValue)("maxValue",r.maxValue)("leftValueLabel",r.upcomingLeftValue)("rightValueLabel",r.upcomingRightValue)("sliderRangePosition",r.sliderRangePosition)("sliderWidth",r.sliderWidth),Q(2),_e("value",r.currentRightValue)("min",r.upcomingLeftValue)("max",r.maxValue))},dependencies:[Md,qm,H7e],styles:["[_nghost-%COMP%] .cc-range-slider-slider[_ngcontent-%COMP%]{display:flex;flex:1;margin:0 8px;position:relative;line-height:48px}[_nghost-%COMP%] .cc-range-slider-slider[_ngcontent-%COMP%] .cc-range-slider-bar[_ngcontent-%COMP%]{display:inline-block;border-bottom-width:4px;border-bottom-style:solid}[_nghost-%COMP%] .cc-range-slider-slider[_ngcontent-%COMP%] .cc-range-slider-slider-thumb[_ngcontent-%COMP%]{cursor:pointer;position:absolute;top:-4px;border-radius:100%;border:7px solid #1b9cfc}"]})}}return n})();const G7e=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta","appSettings.mapColors.selected"],W7e=()=>["appSettings.mapColors.positive","appSettings.mapColors.negative","appSettings.mapColors.neutral","appSettings.mapColors.selected"],$7e=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta"];function j7e(n,t){if(1&n){const e=Dn();D(0,"div"),xe(1,"cc-metric-color-range-slider",4),qe(2,"async"),qe(3,"async"),qe(4,"async"),qe(5,"async"),qe(6,"async"),qe(7,"async"),qe(8,"async"),qe(9,"async"),xe(10,"cc-reset-settings-button",5)(11,"cc-metric-color-range-diagram",6),qe(12,"async"),qe(13,"async"),qe(14,"async"),qe(15,"async"),qe(16,"async"),qe(17,"async"),qe(18,"async"),qe(19,"async"),qe(20,"async"),qe(21,"async"),D(22,"mat-form-field",7)(23,"mat-label"),ye(24,"Gradient Mode"),U(),D(25,"mat-select",8),qe(26,"async"),ze("selectionChange",function(r){return Ot(e),Rt(Le().handleColorModeChange(r.value))}),D(27,"div",9),ze("mousedown",function(r){return Ot(e),Rt(r.stopPropagation())}),D(28,"mat-option",10),ye(29,"Absolute"),U(),D(30,"mat-option",11),ye(31,"Focused Gradient"),U(),D(32,"mat-option",12),ye(33,"Weighted Gradient"),U(),D(34,"mat-option",13),ye(35,"True Gradient"),U()()()()()}if(2&n){const e=Le();Q(),_e("minValue",rt(2,22,e.sliderValues$).min)("maxValue",rt(3,24,e.sliderValues$).max)("currentLeftValue",rt(4,26,e.sliderValues$).from)("currentRightValue",rt(5,28,e.sliderValues$).to)("leftColor",rt(6,30,e.sliderColors$).leftColor)("middleColor",rt(7,32,e.sliderColors$).middleColor)("rightColor",rt(8,34,e.sliderColors$).rightColor)("handleValueChange",e.handleValueChange)("isAttributeDirectionInversed",rt(9,36,e.isAttributeDescriptionInversed$)),Q(9),_e("settingsKeys",fh(60,$7e))("callback",e.resetColorRange),Q(),_e("minValue",rt(12,38,e.sliderValues$).min)("maxValue",rt(13,40,e.sliderValues$).max)("currentLeftValue",rt(14,42,e.sliderValues$).from)("currentRightValue",rt(15,44,e.sliderValues$).to)("leftColor",rt(16,46,e.sliderColors$).leftColor)("middleColor",rt(17,48,e.sliderColors$).middleColor)("rightColor",rt(18,50,e.sliderColors$).rightColor)("colorMetric",rt(19,52,e.colorMetric$))("values",rt(20,54,e.sliderValues$).values)("isAttributeDirectionInversed",rt(21,56,e.isAttributeDescriptionInversed$)),Q(14),_e("value",rt(26,58,e.colorMode$))}}function X7e(n,t){if(1&n){const e=Dn();D(0,"div",1),xe(1,"cc-color-picker-for-map-color",0),D(2,"mat-checkbox",14),qe(3,"async"),ze("change",function(r){return Ot(e),Rt(Le().toggleColorLabel(r,"positive"))}),ye(4,"Show labels"),U()(),D(5,"div",1),xe(6,"cc-color-picker-for-map-color",0),D(7,"mat-checkbox",14),qe(8,"async"),ze("change",function(r){return Ot(e),Rt(Le().toggleColorLabel(r,"neutral"))}),ye(9,"Show labels"),U()(),D(10,"div",1),xe(11,"cc-color-picker-for-map-color",0),D(12,"mat-checkbox",14),qe(13,"async"),ze("change",function(r){return Ot(e),Rt(Le().toggleColorLabel(r,"negative"))}),ye(14,"Show labels"),U()()}if(2&n){const e=Le();Q(),_e("mapColorFor","positive"),Q(),_e("checked",rt(3,6,e.colorLabels$).positive),Q(4),_e("mapColorFor","neutral"),Q(),_e("checked",rt(8,8,e.colorLabels$).neutral),Q(4),_e("mapColorFor","negative"),Q(),_e("checked",rt(13,10,e.colorLabels$).negative)}}function K7e(n,t){1&n&&xe(0,"cc-color-picker-for-map-color",0)(1,"cc-color-picker-for-map-color",0),2&n&&(_e("mapColorFor","positiveDelta"),Q(),_e("mapColorFor","negativeDelta"))}function Y7e(n,t){if(1&n){const e=Dn();D(0,"mat-checkbox",14),ze("change",function(r){return Ot(e),Rt(Le().handleIsColorRangeInvertedChange(r.checked))}),ye(1,"Invert Colors"),U()}2&n&&_e("checked",Le().isColorRangeInverted)}function Z7e(n,t){if(1&n){const e=Dn();D(0,"mat-checkbox",14),ze("change",function(r){return Ot(e),Rt(Le().handleAreDeltaColorsInverted(r.checked))}),ye(1,"Invert Colors"),U()}2&n&&_e("checked",Le().areDeltaColorsInverted)}let J7e=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.colorMode$=this.store.select(Ree),this.colorLabels$=this.store.select(Pee),this.colorMetric$=this.store.select(Nm),this.isDeltaState$=this.store.select(Hm),this.sliderValues$=this.store.select(KNe),this.sliderColors$=this.store.select(XNe),this.isAttributeDescriptionInversed$=this.checkIsAttributeDirectionReversed(),this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1,this.newLeftValue=null,this.newRightValue=null,this.handleValueChange=({newLeftValue:r,newRightValue:o})=>{this.newLeftValue=r??this.newLeftValue,this.newRightValue=o??this.newRightValue,this.updateColorRangeDebounced()},this.updateColorRangeDebounced=Eu(()=>{const r={};null!==this.newLeftValue&&(r.from=this.newLeftValue),null!==this.newRightValue&&(r.to=this.newRightValue),this.store.dispatch(ru({value:r})),this.newLeftValue=null,this.newRightValue=null},400),this.resetInvertColorCheckboxes=()=>{this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1},this.resetColorRange=()=>{const r=Jh(this.state.getValue());this.store.dispatch(ru({value:iI(r)}))}}checkIsAttributeDirectionReversed(){return this.colorMetric$.pipe(Qe(e=>1===this.state.getValue().fileSettings.attributeDescriptors[e]?.direction))}handleColorModeChange(e){this.store.dispatch(J0({value:e}))}toggleColorLabel(e,i){this.store.dispatch(A1({value:{[i]:e.checked}}))}handleIsColorRangeInvertedChange(e){this.isColorRangeInverted=e,this.store.dispatch(YE())}handleAreDeltaColorsInverted(e){this.areDeltaColorsInverted=e,this.store.dispatch(ZE())}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Zr))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-color-settings-panel"]],decls:13,vars:18,consts:[[3,"mapColorFor"],[1,"color-row"],["tooltip","Reset color values to default","label","Reset colors",3,"settingsKeys","callback"],[3,"checked"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","handleValueChange","isAttributeDirectionInversed"],["tooltip","Reset slider thresholds to default","label","Reset thresholds",3,"settingsKeys","callback"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","colorMetric","values","isAttributeDirectionInversed"],["appearance","outline","subscriptSizing","dynamic",1,"gradient-mode-selector"],[3,"selectionChange","value"],[3,"mousedown"],["value","absolute"],["value","focusedGradient"],["value","weightedGradient"],["value","trueGradient"],[3,"change","checked"]],template:function(i,r){1&i&&(pt(0,j7e,36,61,"div"),qe(1,"async"),qe(2,"async"),pt(3,X7e,15,12),qe(4,"async"),pt(5,K7e,2,2),xe(6,"cc-color-picker-for-map-color",0),D(7,"div",1),xe(8,"cc-reset-settings-button",2),qe(9,"async"),pt(10,Y7e,2,1,"mat-checkbox",3),qe(11,"async"),pt(12,Z7e,2,1),U()),2&i&&(Tt(0,rt(1,6,r.isDeltaState$)||"unary"===rt(2,8,r.colorMetric$)?-1:0),Q(3),Tt(3,rt(4,10,r.isDeltaState$)?5:3),Q(3),_e("mapColorFor","selected"),Q(2),_e("settingsKeys",rt(9,12,r.isDeltaState$)?fh(16,G7e):fh(17,W7e))("callback",r.resetInvertColorCheckboxes),Q(2),Tt(10,rt(11,14,r.isDeltaState$)?12:10))},dependencies:[vN,F7e,q7e,fx,Md,Cd,Gm,du,Xm,Kn],styles:[".gradient-mode-selector[_ngcontent-%COMP%]{--mat-form-field-container-vertical-padding: 8px;--mat-form-field-container-height: 16px;margin:5px 10px;width:93%}.color-row[_ngcontent-%COMP%]{display:flex;align-items:center}cc-color-picker-for-map-color[_ngcontent-%COMP%]{width:50%}cc-reset-settings-button[_ngcontent-%COMP%]{width:50%}"]})}}return n})();const oU=Kt(so,n=>n.isEdgeMetricVisible);function e9e(n,t){1&n&&(D(0,"cc-rounded-box"),xe(1,"cc-metric-chooser-type",3),ye(2),U()),2&n&&(Q(),_e("metricFor","edgeMetric"),Q(),sn(" ",t," "))}function t9e(n,t){if(1&n&&(D(0,"cc-metric-chooser",1),qe(1,"async"),D(2,"div",2),pt(3,e9e,3,2,"cc-rounded-box"),qe(4,"async"),U()()),2&n){let e;const i=Le();Un("is-edge-metric-disabled",!rt(1,6,i.isEdgeMetricVisible$)),_e("selectedMetricName",t)("searchPlaceholder","Edge Metric (highest value)")("handleMetricChanged",i.handleEdgeMetricChanged),Q(3),Tt(3,(e=rt(4,8,i.edgeValue$))?3:-1,e)}}let n9e=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.edgeValue$=this.createEdgeValue(),this.edgeMetric$=this.store.select(tf),this.isEdgeMetricVisible$=this.store.select(oU),this.formatHoveredEdgeValue=(r,o)=>{if(!o)return null;const s=o.edgeAttributes[r];return s?`${this.formatValue(s.incoming)} / ${this.formatValue(s.outgoing)}`:null},this.formatValue=r=>"number"==typeof r?r.toLocaleString():"-"}handleEdgeMetricChanged(e){this.store.dispatch(yh({value:e}))}createEdgeValue(){return Sh([this.store.select(tf),this.nodeSelectionService.createNodeObservable()]).pipe(Qe(([e,i])=>this.formatHoveredEdgeValue(e,i)))}static{this.\u0275fac=function(i){return new(i||n)($($t),$(uI))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-edge-metric-chooser"]],decls:2,vars:3,consts:[["icon","fa-exchange","type","edge","title","Change edge metric",3,"is-edge-metric-disabled","selectedMetricName","searchPlaceholder","handleMetricChanged"],["icon","fa-exchange","type","edge","title","Change edge metric",3,"selectedMetricName","searchPlaceholder","handleMetricChanged"],["hoveredInformation","",1,"cc-metric-chooser-container"],["attributeType","edges",3,"metricFor"]],template:function(i,r){if(1&i&&(pt(0,t9e,5,10,"cc-metric-chooser",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.edgeMetric$))?0:-1,o)}},dependencies:[ux,cee,dee,Kn],styles:["cc-rounded-box[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}"]})}}return n})();const i9e=Kt(so,n=>n.edgeHeight),r9e=Kt(so,n=>n.showOnlyBuildingsWithEdges),o9e=Kt(Xs,tf,(n,t)=>n.nodeEdgeMetricsMap.get(t)?.size??0);let s9e=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isEdgeMetricVisible$=this.store.select(oU)}toggleEdgeMetric(){this.store.dispatch(XE())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-edge-metric-toggle"]],decls:3,vars:3,consts:[[1,"edgeMetricCheckbox",3,"change","checked"]],template:function(i,r){1&i&&(D(0,"mat-checkbox",0),qe(1,"async"),ze("change",function(){return r.toggleEdgeMetric()}),ye(2," Disable edge metric\n"),U()),2&i&&_e("checked",!rt(1,1,r.isEdgeMetricVisible$))},dependencies:[Xm,Kn],encapsulation:2})}}return n})();const a9e=()=>["appSettings.showOnlyBuildingsWithEdges","appSettings.amountOfEdgePreviews","appSettings.edgeHeight"];let l9e=(()=>{class n{constructor(e){this.store=e,this.amountOfBuildingsWithSelectedEdgeMetric$=this.store.select(o9e),this.edgePreviewLabel$=this.amountOfBuildingsWithSelectedEdgeMetric$.pipe(Qe(i=>`Preview the edges of up to ${i} buildings with the highest amount of incoming and outgoing edges`)),this.amountOfEdgePreviews$=this.store.select(aee),this.edgeHeight$=this.store.select(i9e),this.showOnlyBuildingsWithEdges$=this.store.select(r9e),this.applySettingsAmountOfEdgePreviews=i=>{this.store.dispatch(ax({value:i}))},this.applySettingsEdgeHeight=i=>{this.store.dispatch(Y0({value:i}))}}applyShowOnlyBuildingsWithEdges(e){this.store.dispatch(S1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-edge-settings-panel"]],decls:17,vars:35,consts:[[3,"title","label","value","onChange","min","max","disabled"],["title","Adjust the curve height",3,"label","value","onChange","min","max","disabled"],[1,"wrapper"],[3,"mapColorFor"],[3,"change","checked","disabled"],["tooltip","Reset edge metric settings to their defaults","label","Reset edge metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(xe(0,"cc-slider",0),qe(1,"async"),qe(2,"async"),qe(3,"async"),qe(4,"async"),xe(5,"cc-slider",1),qe(6,"async"),qe(7,"async"),D(8,"div",2),xe(9,"cc-color-picker-for-map-color",3)(10,"cc-color-picker-for-map-color",3),U(),D(11,"mat-checkbox",4),qe(12,"async"),qe(13,"async"),ze("change",function(s){return r.applyShowOnlyBuildingsWithEdges(s)}),ye(14," Only show nodes with edges\n"),U(),xe(15,"cc-edge-metric-toggle")(16,"cc-reset-settings-button",5)),2&i&&(_e("title",rt(1,18,r.edgePreviewLabel$))("label","Preview")("value",rt(2,20,r.amountOfEdgePreviews$))("onChange",r.applySettingsAmountOfEdgePreviews)("min",0)("max",rt(3,22,r.amountOfBuildingsWithSelectedEdgeMetric$))("disabled",0===rt(4,24,r.amountOfBuildingsWithSelectedEdgeMetric$)),Q(5),_e("label","Height")("value",rt(6,26,r.edgeHeight$))("onChange",r.applySettingsEdgeHeight)("min",1)("max",9)("disabled",0===rt(7,28,r.amountOfBuildingsWithSelectedEdgeMetric$)),Q(4),_e("mapColorFor","outgoingEdge"),Q(),_e("mapColorFor","incomingEdge"),Q(),_e("checked",rt(12,30,r.showOnlyBuildingsWithEdges$))("disabled",0===rt(13,32,r.amountOfBuildingsWithSelectedEdgeMetric$)),Q(5),_e("settingsKeys",fh(34,a9e)))},dependencies:[fx,mI,Xm,vN,s9e,Kn],encapsulation:2})}}return n})();function c9e(n,t){1&n&&(D(0,"mat-card",8),xe(1,"cc-link-color-metric-to-height-metric-button"),U(),D(2,"cc-ribbon-bar-panel",9),xe(3,"cc-color-metric-chooser"),D(4,"cc-ribbon-bar-panel-settings"),xe(5,"cc-color-settings-panel",4),U()()),2&n&&(Q(2),_e("separator",!0))}function d9e(n,t){1&n&&(D(0,"cc-ribbon-bar-panel",6),xe(1,"cc-edge-metric-chooser"),D(2,"cc-ribbon-bar-panel-settings"),xe(3,"cc-edge-settings-panel",4),U()()),2&n&&_e("separator",!0)}function u9e(n,t){1&n&&(D(0,"cc-ribbon-bar-panel",7)(1,"div",10),xe(2,"i",11),D(3,"span"),ye(4,"Color Settings"),U()(),D(5,"cc-ribbon-bar-panel-settings"),xe(6,"cc-color-settings-panel",4),U()()),2&n&&_e("separator",!0)("isHeaderExpandable",!0)}let h9e=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Hm),this.hasEdgeMetric$=this.store.select(Xs).pipe(Qe(i=>i.edgeMetricData.length>0))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-ribbon-bar"]],decls:21,vars:11,consts:[["id","scenario-card","title","Metric Scenarios"],["id","custom-configs-card","title","Custom Views"],["id","ai-card","title","Suspicious Metrics"],["id","area-metric-card","title","Area Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],[1,"cc-metric-settings-panel"],["id","height-metric-card","title","Height Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],["id","edge-metric-card","title","Edge Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],["id","color-settings-card",1,"ribbon-bar-panel-wide",3,"separator","isHeaderExpandable"],["appearance","outlined",1,"color-height-metric-link"],["id","color-metric-card","title","Color Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],[1,"color-settings-header","toggleHeader"],[1,"fa","fa-paint-brush","color-icon"]],template:function(i,r){1&i&&(xe(0,"cc-search-panel"),D(1,"cc-ribbon-bar-panel",0),xe(2,"cc-show-scenarios-button"),U(),D(3,"cc-ribbon-bar-panel",1),xe(4,"cc-custom-configs"),U(),D(5,"cc-ribbon-bar-panel",2),xe(6,"cc-artificial-intelligence"),U(),D(7,"cc-ribbon-bar-panel",3),xe(8,"cc-area-metric-chooser"),D(9,"cc-ribbon-bar-panel-settings"),xe(10,"cc-area-settings-panel",4),U()(),D(11,"cc-ribbon-bar-panel",5),xe(12,"cc-height-metric-chooser"),D(13,"cc-ribbon-bar-panel-settings"),xe(14,"cc-height-settings-panel",4),U()(),pt(15,c9e,6,1),qe(16,"async"),pt(17,d9e,4,1,"cc-ribbon-bar-panel",6),qe(18,"async"),pt(19,u9e,7,2,"cc-ribbon-bar-panel",7),qe(20,"async")),2&i&&(Q(7),_e("separator",!0),Q(4),_e("separator",!0),Q(4),Tt(15,rt(16,5,r.isDeltaState$)?-1:15),Q(2),Tt(17,rt(18,7,r.hasEdgeMetric$)?17:-1),Q(2),Tt(19,rt(20,9,r.isDeltaState$)?19:-1))},dependencies:[rx,wJ,QRe,s4e,Z4e,ZOe,ONe,GNe,WNe,$Ne,jNe,J7e,n9e,l9e,wN,yN,Kn],styles:["[_nghost-%COMP%]{position:fixed;z-index:10;width:100%;display:flex;flex-wrap:nowrap}cc-ribbon-bar-panel[_ngcontent-%COMP%]{flex:0}cc-ribbon-bar-panel.ribbon-bar-panel-wide[_ngcontent-%COMP%]{flex-grow:1}mat-card.color-height-metric-link[_ngcontent-%COMP%]{display:flex;justify-content:center;flex-grow:0;padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd}cc-ribbon-bar-panel[_ngcontent-%COMP%] cc-ribbon-bar-panel-settings[_ngcontent-%COMP%]{font-size:.9em;left:0;right:auto}cc-ribbon-bar-panel[_ngcontent-%COMP%]:last-child cc-ribbon-bar-panel-settings[_ngcontent-%COMP%]{left:auto;right:0}.color-settings-header[_ngcontent-%COMP%]{display:flex;gap:8px;line-height:24px;align-items:baseline}"]})}}return n})();const Kte=()=>{const n=document.createElement("INPUT");return n.setAttribute("type","file"),n.setAttribute("accept",".json,.gz"),n.setAttribute("multiple",""),document.body.appendChild(n),n},Nb="base";function Yte(n,t,e,i,r,o){if(0===n.length)return;const[s]=n;let a={name:s,type:Zte(n)?qa.FILE:qa.FOLDER,attributes:{}};Zte(n)?a=function A9e(n,t,e){const i={...t};return i.attributes={height:e.scale.y},{name:n,type:qa.FOLDER,attributes:{},children:[i]}}(s,a,i):a.children=[],function p9e(n,t){return n.some(e=>e.name===t)}(t,s)?a=t.find(d=>d.name===s):t.push(a);const l=r.find(d=>d.name===e);a.fixedPosition=function g9e(n,t,e,i){let r;if(n.type===qa.FOLDER){const s=t.position.z-t.scale.z/2,l=e.position.z-e.scale.z/2,c=jI((e.position.x-e.scale.x/2-(t.position.x-t.scale.x/2))/t.scale.x*100,2);r={left:jI((l-s)/t.scale.z*100,2),top:c,width:jI(e.scale.z/t.scale.z*100,2),height:jI(e.scale.x/t.scale.x*100,2)}}return n.name===i&&(r=function _9e(n){const t={...n};return t.top=Math.floor(50-t.height/2),t.left=Math.floor(50-t.width/2),t}(r)),r}(a,l,i,o.name);const c=e===Nb?a.name:`${e}.${a.name}`;Yte(n.slice(1),a.children,c,i,r,o)}function Zte(n){return 1===n.length}function jI(n,t){const e=Math.pow(10,t);return Math.round(n*e)/e}function Jte(n){const t=n.replaceAll(".","/"),i=n.split(".").slice(-1);return`/${Nb}/${t}/${i}`}const w9e=JSON.parse('{"$id":"http://example.com/example.json","$schema":"http://json-schema.org/draft-07/schema","default":{},"description":"This is the JSON Schema for the GameObjectsPositions structure","examples":[{"gameObjectPositions":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.TryCatchFinallyTest","position":{"x":66,"y":22.5,"z":177.5},"scale":{"x":1,"y":13,"z":1}}],"cycles":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]}],"required":["gameObjectPositions"],"title":"The root schema","type":"object","properties":{"gameObjectPositions":{"$id":"#/properties/gameObjectPositions","type":"array","title":"The gameObjectPositions schema","description":"Defines the position and scale of GameObjects","default":[],"examples":[[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.SwitchCaseTest","position":{"x":65,"y":22,"z":181},"scale":{"x":2,"y":12,"z":2}}]],"additionalItems":true,"items":{"$id":"#/properties/gameObjectPositions/items","anyOf":[{"$id":"#/properties/gameObjectPositions/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"Defines the properties of a GameObject","default":{},"examples":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}}],"required":["name","position","scale"],"properties":{"name":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/name","type":"string","title":"The name schema","description":"An explanation about the purpose of this instance.","default":"","examples":["root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest"]},"position":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position","type":"object","title":"The position schema","description":"The position in absolute values","default":{},"examples":[{"x":69,"y":18.5,"z":228.5}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/x","type":"number","title":"The x schema","description":"x position","default":0,"examples":[69]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/y","type":"number","title":"The y schema","description":"y position","default":0,"examples":[18.5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/z","type":"number","title":"The z schema","description":"z position","default":0,"examples":[228.5]}},"additionalProperties":true},"scale":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale","type":"object","title":"The scale schema","description":"The scale of GameObjects","default":{},"examples":[{"x":9,"y":5,"z":9}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/x","type":"number","title":"The x schema","description":"x scale","default":0,"examples":[9]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/y","type":"number","title":"The y schema","description":"y scale","default":0,"examples":[5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/z","type":"number","title":"The z schema","description":"z scale","default":0,"examples":[9]}},"additionalProperties":true}},"additionalProperties":true}]}},"cycles":{"$id":"#/properties/cycles","type":"array","title":"The cycles schema","description":"Defines the cycles between GameObjects","default":[],"examples":[[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]],"additionalItems":true,"items":{"$id":"#/properties/cycles/items","anyOf":[{"$id":"#/properties/cycles/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"A cycle between two GameObjects","default":{},"examples":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}],"required":["from","to"],"properties":{"from":{"$id":"#/properties/cycles/items/anyOf/0/properties/from","type":"string","title":"The from schema","description":"from GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser"]},"to":{"$id":"#/properties/cycles/items/anyOf/0/properties/to","type":"string","title":"The to schema","description":"to GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"]}},"additionalProperties":true}]}}},"additionalProperties":true}'),ene=n=>{const t=[];for(let e=0;e{const i=t.name.endsWith(".gz"),r=new FileReader;let o;i?r.readAsArrayBuffer(t):r.readAsText(t,"utf8"),r.onload=s=>{const a=s.target.result.toString();o=i?F4(s.target.result,{to:"string"}):a,a.includes("gameObjectPositions")&&function x9e(n){return new(G$())({allErrors:!0}).validate(w9e,JSON.parse(n))}(a)&&(o=JSON.stringify(function f9e(n){const{gameObjectPositions:t,cycles:e=[]}=JSON.parse(n),i={checksum:"",data:{projectName:"GameObjects",fileChecksum:"",apiVersion:"1.3",nodes:[]}},r=[{name:Nb,type:qa.FOLDER,attributes:{},children:[]}];!function m9e(n){for(const t of n)t.name.startsWith("root")||(t.name=t.name.startsWith(".")?`root${t.name}`:`root.${t.name}`)}(t);const o=t.find(a=>"root"===a.name),s=function y9e(n){const t=Math.max(n.x,n.z);return{name:Nb,position:{x:0,y:0,z:0},scale:{x:t,y:0,z:t}}}(o.scale);t.push(s);for(const a of t){const l=a.name.split(".");l[0]!==Nb&&Yte(l,r[0].children,Nb,a,t,o)}return i.data.nodes=r,i.data.edges=e.map(a=>function b9e(n){return{fromNodeName:Jte(n.from),toNodeName:Jte(n.to),attributes:{coupling:100}}}(a)),i.data.attributeTypes=function v9e(){return{edges:{coupling:um.relative}}}(),i.checksum=u2()(JSON.stringify(i.data)),i}(a)))},r.onloadend=()=>{e(o)}})});return function(e){return n.apply(this,arguments)}}();let tne=(()=>{class n{constructor(e,i){this.store=e,this.loadFileService=i,this.isUploading=!1}uploadFiles(){const e=Kte();e.addEventListener("change",()=>{this.uploadFilesOnEvent(e)}),e.click()}uploadFilesOnEvent(e){var i=this;return k(function*(){try{i.isUploading=!0,i.store.dispatch(cA({value:!0})),i.store.dispatch(r_({value:!0}));const r=yield Promise.all(ene(e.files)),{customConfigs:o,ccFiles:s}=i.splitCustomConfigsAndCCFiles(e.files,r);for(const a of o)Yi.importCustomConfigs(a);s.length>0&&(yield i.loadFileService.loadFiles(s))}catch{i.store.dispatch(cA({value:!1})),i.store.dispatch(r_({value:!1}))}finally{i.isUploading=!1}})()}splitCustomConfigsAndCCFiles(e,i){const r=[],o=[];for(const[s,a]of i.entries()){const l=e[s].name;l.includes(HJ)?r.push(a):o.push({fileName:l,fileSize:e[s].size,content:rR(a)})}return{customConfigs:r,ccFiles:o}}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(f_))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),M9e=(()=>{class n{constructor(e){this.uploadFilesService=e}uploadFiles(){this.uploadFilesService.uploadFiles()}static{this.\u0275fac=function(i){return new(i||n)($(tne))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-upload-files-button"]],decls:1,vars:1,consts:[["title","Load cc.json files",3,"click","icon"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.uploadFiles()}),U()),2&i&&_e("icon","fa fa-folder-open folder-icon")},dependencies:[eg],encapsulation:2})}}return n})();const sU=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function aU(n,t,e,i){n.addEventListener?n.addEventListener(t,e,i):n.attachEvent&&n.attachEvent("on".concat(t),e)}function Cx(n,t,e,i){n.removeEventListener?n.removeEventListener(t,e,i):n.detachEvent&&n.detachEvent("on".concat(t),e)}function nne(n,t){const e=t.slice(0,t.length-1);for(let i=0;i=0;)t[e-1]+=",",t.splice(e,1),e=t.lastIndexOf("");return t}const Mx={backspace:8,"\u232b":8,tab:9,clear:12,enter:13,"\u21a9":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"\u21ea":20,",":188,".":190,"/":191,"`":192,"-":sU?173:189,"=":sU?61:187,";":sU?59:186,"'":222,"[":219,"]":221,"\\":220},Fu={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},lU={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},da={16:!1,18:!1,17:!1,91:!1},Ho={};for(let n=1;n<20;n++)Mx["f".concat(n)]=111+n;let go=[],Ex=null,rne="all";const df=new Map,Sx=n=>Mx[n.toLowerCase()]||Fu[n.toLowerCase()]||n.toUpperCase().charCodeAt(0);function one(n){rne=n||"all"}function Tx(){return rne||"all"}function sne(n){if(typeof n>"u")Object.keys(Ho).forEach(r=>{Array.isArray(Ho[r])&&Ho[r].forEach(o=>XI(o)),delete Ho[r]}),cU(null);else if(Array.isArray(n))n.forEach(r=>{r.key&&XI(r)});else if("object"==typeof n)n.key&&XI(n);else if("string"==typeof n){for(var t=arguments.length,e=new Array(t>1?t-1:0),i=1;i{let{key:t,scope:e,method:i,splitKey:r="+"}=n;ine(t).forEach(s=>{const a=s.split(r),l=a.length,c=a[l-1],d="*"===c?"*":Sx(c);if(!Ho[d])return;e||(e=Tx());const u=l>1?nne(Fu,a):[],h=[];Ho[d]=Ho[d].filter(f=>{const y=(!i||f.method===i)&&f.scope===e&&function E9e(n,t){const e=n.length>=t.length?n:t,i=n.length>=t.length?t:n;let r=!0;for(let o=0;ocU(f))})};function ane(n,t,e,i){if(t.element!==i)return;let r;if(t.scope===e||"all"===t.scope){r=t.mods.length>0;for(const o in da)Object.prototype.hasOwnProperty.call(da,o)&&(!da[o]&&t.mods.indexOf(+o)>-1||da[o]&&-1===t.mods.indexOf(+o))&&(r=!1);(0===t.mods.length&&!da[16]&&!da[18]&&!da[17]&&!da[91]||r||"*"===t.shortcut)&&(t.keys=[],t.keys=t.keys.concat(go),!1===t.method(n,t)&&(n.preventDefault?n.preventDefault():n.returnValue=!1,n.stopPropagation&&n.stopPropagation(),n.cancelBubble&&(n.cancelBubble=!0)))}}function lne(n,t){const e=Ho["*"];let i=n.keyCode||n.which||n.charCode;if(!Du.filter.call(this,n))return;if((93===i||224===i)&&(i=91),-1===go.indexOf(i)&&229!==i&&go.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(a=>{const l=lU[a];n[a]&&-1===go.indexOf(l)?go.push(l):!n[a]&&go.indexOf(l)>-1?go.splice(go.indexOf(l),1):"metaKey"===a&&n[a]&&3===go.length&&(n.ctrlKey||n.shiftKey||n.altKey||(go=go.slice(go.indexOf(l))))}),i in da){da[i]=!0;for(const a in Fu)Fu[a]===i&&(Du[a]=!0);if(!e)return}for(const a in da)Object.prototype.hasOwnProperty.call(da,a)&&(da[a]=n[lU[a]]);n.getModifierState&&(!n.altKey||n.ctrlKey)&&n.getModifierState("AltGraph")&&(-1===go.indexOf(17)&&go.push(17),-1===go.indexOf(18)&&go.push(18),da[17]=!0,da[18]=!0);const r=Tx();if(e)for(let a=0;a1&&(r=nne(Fu,n)),(n="*"===(n=n[n.length-1])?"*":Sx(n))in Ho||(Ho[n]=[]),Ho[n].push({keyup:l,keydown:c,scope:o,mods:r,shortcut:i[a],method:e,key:i[a],splitKey:d,element:s});if(typeof s<"u"&&window){if(!df.has(s)){const f=function(){return lne(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,s)},A=function(){let y=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;lne(y,s),function R9e(n){let t=n.keyCode||n.which||n.charCode;const e=go.indexOf(t);if(e>=0&&go.splice(e,1),n.key&&"meta"===n.key.toLowerCase()&&go.splice(0,go.length),(93===t||224===t)&&(t=91),t in da){da[t]=!1;for(const i in Fu)Fu[i]===t&&(Du[i]=!1)}}(y)};df.set(s,{keydownListener:f,keyupListenr:A,capture:u}),aU(s,"keydown",f,u),aU(s,"keyup",A,u)}if(!Ex){const f=()=>{go=[]};Ex={listener:f,capture:u},aU(window,"focus",f,u)}}}function cU(n){const t=Object.values(Ho).flat();if(t.findIndex(i=>{let{element:r}=i;return r===n})<0){const{keydownListener:i,keyupListenr:r,capture:o}=df.get(n)||{};i&&r&&(Cx(n,"keyup",r,o),Cx(n,"keydown",i,o),df.delete(n))}if((t.length<=0||df.size<=0)&&(Object.keys(df).forEach(r=>{const{keydownListener:o,keyupListenr:s,capture:a}=df.get(r)||{};o&&s&&(Cx(r,"keyup",s,a),Cx(r,"keydown",o,a),df.delete(r))}),df.clear(),Object.keys(Ho).forEach(r=>delete Ho[r]),Ex)){const{listener:r,capture:o}=Ex;Cx(window,"focus",r,o),Ex=null}}const dU={getPressedKeyString:function F9e(){return go.map(n=>(n=>Object.keys(Mx).find(t=>Mx[t]===n))(n)||(n=>Object.keys(Fu).find(t=>Fu[t]===n))(n)||String.fromCharCode(n))},setScope:one,getScope:Tx,deleteScope:function P9e(n,t){let e,i;n||(n=Tx());for(const r in Ho)if(Object.prototype.hasOwnProperty.call(Ho,r))for(e=Ho[r],i=0;i{let{element:a}=s;return cU(a)}):i++;Tx()===n&&one(t||"all")},getPressedKeyCodes:function I9e(){return go.slice(0)},getAllKeyCodes:function D9e(){const n=[];return Object.keys(Ho).forEach(t=>{Ho[t].forEach(e=>{let{key:i,scope:r,mods:o,shortcut:s}=e;n.push({scope:r,shortcut:s,mods:o,keys:i.split("+").map(a=>Sx(a))})})}),n},isPressed:function B9e(n){return"string"==typeof n&&(n=Sx(n)),-1!==go.indexOf(n)},filter:function k9e(n){const t=n.target||n.srcElement,{tagName:e}=t;let i=!0;const r="INPUT"===e&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(r||"TEXTAREA"===e||"SELECT"===e)&&!t.readOnly)&&(i=!1),i},trigger:function O9e(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(Ho).forEach(e=>{Ho[e].filter(r=>r.scope===t&&r.shortcut===n).forEach(r=>{r&&r.method&&r.method()})})},unbind:sne,keyMap:Mx,modifier:Fu,modifierMap:lU};for(const n in dU)Object.prototype.hasOwnProperty.call(dU,n)&&(Du[n]=dU[n]);if(typeof window<"u"){const n=window.hotkeys;Du.noConflict=t=>(t&&window.hotkeys===Du&&(window.hotkeys=n),Du),window.hotkeys=Du}var L9e=p(7239),N9e=p.n(L9e);function uU(){return(uU=k(function*(n){const t=[new ClipboardItem({[n.type]:n})];yield navigator.clipboard.write(t)})).apply(this,arguments)}const cne=Kt(so,n=>n.screenshotToClipboardEnabled);function V9e(n,t){if(1&n){const e=Dn();D(0,"cc-action-icon",2),ze("click",function(){return Ot(e),Rt(Le().makeScreenshotToClipboard())}),U()}if(2&n){const e=Le();Un("disabled",!e.isWriteToClipboardAllowed),Ua("title",e.TITLE_CLIPBOARD_BUTTON),_e("icon","fa fa-camera")}}function Q9e(n,t){if(1&n){const e=Dn();D(0,"cc-action-icon",2),ze("click",function(){return Ot(e),Rt(Le().makeScreenshotToFile())}),U()}2&n&&(Ua("title",Le().TITLE_FILE_BUTTON),_e("icon","fa fa-camera"))}let z9e=(()=>{class n{constructor(e,i,r,o,s){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.store=o,this.state=s,this.SCREENSHOT_HOTKEY_TO_FILE="Ctrl+Alt+S",this.SCREENSHOT_HOTKEY_TO_CLIPBOARD="Ctrl+Alt+F",this.isScreenshotToClipboardEnabled$=this.store.select(cne)}ngOnInit(){this.isWriteToClipboardAllowed=function H9e(){return"clipboard"in navigator&&"write"in navigator.clipboard}(),this.TITLE_CLIPBOARD_BUTTON=this.createTitleClipboardButton(),this.TITLE_FILE_BUTTON=this.createTitleFileButton(),Du(this.SCREENSHOT_HOTKEY_TO_FILE,()=>{this.makeScreenshotToFile()}),Du(this.SCREENSHOT_HOTKEY_TO_CLIPBOARD,()=>{this.makeScreenshotToClipboard()})}makeScreenshotToFile(){var e=this;return k(function*(){const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i);e.downloadScreenshot(o,e.state.getValue().files),e.applyRenderSettings(i,r)})()}makeScreenshotToClipboard(){var e=this;return k(function*(){if(!e.isWriteToClipboardAllowed)return;const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i),s=new Promise(l=>o.toBlob(l));e.applyRenderSettings(i,r);const a=yield s;yield function U9e(n){return uU.apply(this,arguments)}(a)})()}downloadScreenshot(e,i){const r=e.toDataURL("image/png"),o=document.createElement("a");o.download=function _be(n,t){const e=ou(n)?"delta":"",r=l2(n).map(a=>function bbe(n){return n.file.fileMeta.fileName.replace(/(.cc)?.json$/,"")}(a)),o=function vbe(n){return n.length<=3?n.join(a2):[n.at(0),wW,n.at(-1)].join(a2)}(r);return function ybe(n,t,e){const i=[t,n].filter(o=>o.length>0).join(a2),r=255-e.length-iR.length;return i.length<=r?[i,a2,e,iR].join(""):[i.slice(0,r-1),wW,e,iR].join("")}(o,e,t)}(i,"map"),o.href=r,document.body.appendChild(o),o.click(),o.remove()}saveRenderSettings(e){const i=e.getPixelRatio(),r=new tn;return e.getClearColor(r),{pixelRatio:i,clearColor:r}}applyRenderSettings(e,i){const{pixelRatio:r,clearColor:o}=i;e.setPixelRatio(r),e.setClearColor(o),e.render(this.threeSceneService.scene,this.threeCameraService.camera)}buildScreenShotCanvas(e){var i=this;return k(function*(){e.setPixelRatio(window.devicePixelRatio),e.setClearColor(new tn(0,0,0),0),e.render(i.threeSceneService.scene,i.threeCameraService.camera);const r=new Set(["cc-logo","cc-tool-bar","cc-view-cube","cc-ribbon-bar","cc-file-extension-bar","cc-attribute-side-bar","cc-loading-file-progess-spinner"]),o=new Set(["legend-panel-button"]),s=document.querySelector("body")?.offsetHeight,a=document.querySelector("cc-ribbon-bar")?.offsetHeight,l=document.querySelector("cc-tool-bar")?.offsetHeight,c=document.querySelector("cc-file-extension-bar")?.offsetHeight,d=a+l+c,u=yield N9e()(document.querySelector("body"),{removeContainer:!0,backgroundColor:"#00",scrollY:-d,height:s-d,ignoreElements:h=>r.has(h.tagName.toLowerCase())||o.has(h.id)||"10000"===h.style.zIndex});return i.getCroppedCanvas(u)})()}getCroppedCanvas(e){const i=e.getContext("2d"),r=e.width,o=e.height,a=i.getImageData(0,0,r,o).data;let l=r,c=o,d=0,u=0;for(let A=0;A0&&(l=Math.min(l,A),d=Math.max(d,A),c=Math.min(c,y),u=Math.max(u,y));const h=document.createElement("canvas"),f=h.getContext("2d");return h.width=d-l+1,h.height=u-c+1,f.drawImage(e,l,c,h.width,h.height,0,0,h.width,h.height),h}createTitleClipboardButton(){return this.isWriteToClipboardAllowed?`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard) or ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file)`:"Firefox does not support copying to clipboard"}createTitleFileButton(){return`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file) or ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard)`}static{this.\u0275fac=function(i){return new(i||n)($(Mu),$(Vc),$(Ki),$($t),$(Zr))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-screenshot-button"]],decls:4,vars:6,consts:[[3,"icon","title","disabled"],[3,"icon","title"],[3,"click","icon","title"]],template:function(i,r){1&i&&(pt(0,V9e,1,4,"cc-action-icon",0),qe(1,"async"),pt(2,Q9e,1,2,"cc-action-icon",1),qe(3,"async")),2&i&&(Tt(0,rt(1,2,r.isScreenshotToClipboardEnabled$)?0:-1),Q(2),Tt(2,rt(3,4,r.isScreenshotToClipboardEnabled$)?-1:2))},dependencies:[eg,Kn],encapsulation:2})}}return n})();function q9e(n){return`\t\u2022 ${n.filePath} (${n.value})\n`}function G9e(n){return`${n.toUpperCase()}\n`}function X9e(n){return n.type===qa.FILE&&void 0!==n.attributes}function K9e(n,t,e){for(const[i,r]of Object.entries(n.attributes)){const o=t?.[i]?.direction,s={filePath:n.path,value:r};if(e.has(i)){const a=e.get(i);Y9e(a,s,o),e.set(i,a.slice(0,10))}else e.set(i,[s])}}function Y9e(n,t,e){const i=function Z9e(n){return 1===n?(t,e)=>t.value-e.value:(t,e)=>e.value-t.value}(e),r=n.findIndex(o=>i(t,o)<0);-1===r?n.push(t):n.splice(r,0,t)}let dne=(()=>{class n{constructor(e){this.state=e}getClipboardText(){const r=function j9e(n,t){const e=new Map;for(const{data:i}of yo(n))X9e(i)&&K9e(i,t,e);return e}(this.getUnifiedMapNode(),this.state.getValue().fileSettings.attributeDescriptors);return function W9e(n){let t="";for(const[e,i]of n.entries()){t+=G9e(e);for(const r of i)t+=q9e(r)}return t}(r)}getUnifiedMapNode(){const{unifiedMapNode:e}=Hc(this.state.getValue());return e}static{this.\u0275fac=function(i){return new(i||n)(ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),J9e=(()=>{class n{constructor(e){this.copyToClipboardService=e}copyNamesToClipBoard(){var e=this;return k(function*(){yield navigator.clipboard.writeText(e.copyToClipboardService.getClipboardText())})()}static{this.\u0275fac=function(i){return new(i||n)($(dne))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-copy-to-clipboard-button"]],decls:1,vars:0,consts:[["icon","fa fa-clipboard","title","Copy filenames with highest metric values to clipboard",3,"click"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.copyNamesToClipBoard()}),U())},dependencies:[eg],encapsulation:2})}}return n})();class eHe{parse(t,e={}){const i=(e=Object.assign({binary:!1},e)).binary,r=[];let o=0;t.traverse(function(b){if(b.isMesh){const M=b.geometry,C=M.index,E=M.getAttribute("position");o+=null!==C?C.count/3:E.count/3,r.push({object3d:b,geometry:M})}});let s,a=80;if(!0===i){const M=new ArrayBuffer(2*o+3*o*4*4+80+4);s=new DataView(M),s.setUint32(a,o,!0),a+=4}else s="",s+="solid exported\n";const l=new se,c=new se,d=new se,u=new se,h=new se,f=new se;for(let b=0,M=r.length;b>1|(21845&Mo)<<1;Dx[Mo]=((65280&(Km=(61680&(Km=(52428&Km)>>2|(13107&Km)<<2))>>4|(3855&Km)<<4))>>8|(255&Km)<<8)>>1}var ku=function(n,t,e){for(var i=n.length,r=0,o=new el(t);r>l]=c}else for(a=new el(i),r=0;r>15-n[r]);return a},Ym=new $r(288);for(Mo=0;Mo<144;++Mo)Ym[Mo]=8;for(Mo=144;Mo<256;++Mo)Ym[Mo]=9;for(Mo=256;Mo<280;++Mo)Ym[Mo]=7;for(Mo=280;Mo<288;++Mo)Ym[Mo]=8;var kx=new $r(32);for(Mo=0;Mo<32;++Mo)kx[Mo]=5;var Ane=ku(Ym,9,0),_ne=ku(kx,5,0),Bx=function(n){return(n+7)/8|0},Zm=function(n,t,e){return(null==t||t<0)&&(t=0),(null==e||e>n.length)&&(e=n.length),new $r(n.subarray(t,e))},vne=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],gr=function(n,t,e){var i=new Error(t||vne[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,gr),!e)throw i;return i},Bu=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8},Vb=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8,n[i+2]|=e>>16},eF=function(n,t){for(var e=[],i=0;ih&&(h=o[i].s);var f=new el(h+1),A=tF(e[d-1],f,0);if(A>t){i=0;var y=0,_=A-t,b=1<<_;for(o.sort(function(N,H){return f[H.s]-f[N.s]||N.f-H.f});it))break;y+=b-(1<>=_;y>0;){var C=o[i].s;f[C]=0&&y;--i){var E=o[i].s;f[E]==t&&(--f[E],++y)}A=t}return{t:new $r(f),l:A}},tF=function(n,t,e){return-1==n.s?Math.max(tF(n.l,t,e+1),tF(n.r,t,e+1)):t[n.s]=e},mU=function(n){for(var t=n.length;t&&!n[--t];);for(var e=new el(++t),i=0,r=n[0],o=1,s=function(l){e[i++]=l},a=1;a<=t;++a)if(n[a]==r&&a!=t)++o;else{if(!r&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(r),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(r);o=1,r=n[a]}return{c:e.subarray(0,i),n:t}},Qb=function(n,t){for(var e=0,i=0;i>8,n[r+2]=255^n[r],n[r+3]=255^n[r+1];for(var o=0;o4&&!B[Fx[we-1]];--we);var te,Ae,le,Pe,Ee=c+5<<3,ne=Qb(r,Ym)+Qb(o,kx)+s,Ie=Qb(r,h)+Qb(o,y)+s+14+3*we+Qb(H,B)+2*H[16]+3*H[17]+7*H[18];if(l>=0&&Ee<=ne&&Ee<=Ie)return pU(t,d,n.subarray(l,l+c));if(Bu(t,d,1+(Ie15&&(Bu(t,d,cn[j]>>5&127),d+=cn[j]>>12)}}else te=Ane,Ae=Ym,le=_ne,Pe=kx;for(j=0;j255){var ce;Vb(t,d,te[257+(ce=ue>>18&31)]),d+=Ae[ce+257],ce>7&&(Bu(t,d,ue>>23&31),d+=Ub[ce]);var ae=31&ue;Vb(t,d,le[ae]),d+=Pe[ae],ae>3&&(Vb(t,d,ue>>5&8191),d+=Hb[ae])}else Vb(t,d,te[ue]),d+=Ae[ue]}return Vb(t,d,te[256]),d+Ae[256]},yne=new Ix([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),gU=new $r(0),xne=function(){for(var n=new Int32Array(256),t=0;t<256;++t){for(var e=t,i=9;--i;)e=(1&e&&-306674912)^e>>>1;n[t]=e}return n}(),nF=function(){var n=-1;return{p:function(t){for(var e=n,i=0;i>>8;n=e},d:function(){return~n}}},iF=function(n,t,e,i,r){if(!r&&(r={l:1},t.dictionary)){var o=t.dictionary.subarray(-32768),s=new $r(o.length+n.length);s.set(o),s.set(n,o.length),n=s,r.w=o.length}return function(n,t,e,i,r,o){var s=o.z||n.length,a=new $r(i+s+5*(1+Math.ceil(s/7e3))+r),l=a.subarray(i,a.length-r),c=o.l,d=7&(o.r||0);if(t){d&&(l[0]=o.r>>3);for(var u=yne[t-1],h=u>>13,f=8191&u,A=(1<7e3||B>24576)&&(te>423||!c)){d=AU(n,l,0,E,L,N,j,B,we,R-we,d),B=H=j=0,we=R;for(var Ae=0;Ae<286;++Ae)L[Ae]=0;for(Ae=0;Ae<30;++Ae)N[Ae]=0}var le=2,Pe=0,it=f,_t=ne-Ie&32767;if(te>2&&Ee==C(R-_t))for(var Ht=Math.min(h,te)-1,cn=Math.min(32767,R),ce=Math.min(258,te);_t<=cn&&--it&&ne!=Ie;){if(n[R+le]==n[R+le-_t]){for(var ue=0;uele){if(le=ue,Pe=_t,ue>Ht)break;var ae=Math.min(_t,ue-2),Z=0;for(Ae=0;AeZ&&(Z=je,Ie=$e)}}}_t+=(ne=Ie)-(Ie=y[ne])&32767}if(Pe){E[B++]=268435456|KI[le]<<18|fU[Pe];var Nt=31&KI[le],re=31&fU[Pe];j+=Ub[Nt]+Hb[re],++L[257+Nt],++N[re],ee=R+le,++H}else E[B++]=n[R],++L[n[R]]}}for(R=Math.max(R,ee);R=s&&(l[d/8|0]=c,ht=s),d=pU(l,d+1,n.subarray(R,ht))}o.i=s}return Zm(a,0,i+Bx(d)+r)}(n,null==t.level?6:t.level,null==t.mem?r.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(n.length)))):20:12+t.mem,e,i,r)},rF=function(n,t){var e={};for(var i in n)e[i]=n[i];for(var i in t)e[i]=t[i];return e},Do=function(n,t,e){for(;e;++t)n[t]=e,e>>>=8};function sF(n,t){return iF(n,t||{},0,0)}var MU=function(n,t,e,i){for(var r in n){var o=n[r],s=t+r,a=i;Array.isArray(o)&&(a=rF(i,o[1]),o=o[0]),o instanceof $r?e[s]=[o,a]:(e[s+="/"]=[new $r(0),a],MU(o,s,e,i))}},Rne=typeof TextEncoder<"u"&&new TextEncoder,EU=typeof TextDecoder<"u"&&new TextDecoder;try{EU.decode(gU,{stream:!0})}catch{}function ep(n,t){if(t){for(var e=new $r(n.length),i=0;i>1)),s=0,a=function(d){o[s++]=d};for(i=0;io.length){var l=new $r(s+8+(r-i<<1));l.set(o),o=l}var c=n.charCodeAt(i);c<128||t?a(c):c<2048?(a(192|c>>6),a(128|63&c)):c>55295&&c<57344?(a(240|(c=65536+(1047552&c)|1023&n.charCodeAt(++i))>>18),a(128|c>>12&63),a(128|c>>6&63),a(128|63&c)):(a(224|c>>12),a(128|c>>6&63),a(128|63&c))}return Zm(o,0,s)}var Rx=function(n){var t=0;if(n)for(var e in n){var i=n[e].length;i>65535&&gr(9),t+=i+4}return t},aF=function(n,t,e,i,r,o,s,a){var l=i.length,c=e.extra,d=a&&a.length,u=Rx(c);Do(n,t,null!=s?33639248:67324752),t+=4,null!=s&&(n[t++]=20,n[t++]=e.os),n[t]=20,t+=2,n[t++]=e.flag<<1|(o<0&&8),n[t++]=r&&8,n[t++]=255&e.compression,n[t++]=e.compression>>8;var h=new Date(null==e.mtime?Date.now():e.mtime),f=h.getFullYear()-1980;if((f<0||f>119)&&gr(10),Do(n,t,f<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>1),t+=4,-1!=o&&(Do(n,t,e.crc),Do(n,t+4,o<0?-o-2:o),Do(n,t+8,e.size)),Do(n,t+12,l),Do(n,t+14,u),t+=16,null!=s&&(Do(n,t,d),Do(n,t+6,e.attrs),Do(n,t+10,s),t+=14),n.set(i,t),t+=l,u)for(var A in c){var y=c[A],_=y.length;Do(n,t,+A),Do(n,t+2,_),n.set(y,t+4),t+=4+_}return d&&(n.set(a,t),t+=d),t};function bHe(n){return` \n \n \n \n \n \n`}function SU(){return(SU=k(function*(n){const{vertices:t,triangles:e,volumes:i}=function Une(n){const t=[],e=[],i=[],r=new Map,o=new Map;for(const a of n.children)TU(a,t,e,r,1,o,i);return{vertices:t,triangles:e,volumes:i}}(n),r=function yHe(n,t){const i=function xHe(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(n),r=function CHe(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(t);return'\n\n PrusaSlicer-2.7.2\n \n \n \n'+i+r+' \n \n \n \n\n'}(t,e),o=function gHe(n){let t='\n\n \n \n';for(const e of n)t+=bHe(e);return t+=" \n\n",t}(i);return function mHe(n,t){t||(t={});var e={},i=[];MU(n,"",e,t);var r=0,o=0;for(var s in e){var a=e[s],l=a[0],c=a[1],d=0==c.level?0:8,h=(u=ep(s)).length,f=c.comment,A=f&&ep(f),y=A&&A.length,_=Rx(c.extra);h>65535&&gr(11);var b=d?sF(l,c):l,M=b.length,C=nF();C.p(l),i.push(rF(c,{size:l.length,crc:C.d(),c:b,f:u,m:A,u:h!=s.length||A&&f.length!=y,o:r,compression:d})),r+=30+h+_+M,o+=76+2*(h+_)+(y||0)+M}for(var E=new $r(o+22),L=r,N=o-r,H=0;H\n \n \n')},Metadata:{"Slic3r_PE_model.config":ep(o)},"[Content_Types].xml":ep('\n\n \n \n')},{comment:"created by CodeCharta"}).buffer})).apply(this,arguments)}function TU(n,t,e,i,r,o,s,a=void 0){if(!n.visible)return;for(const d of n.children){let u=n.matrix;a&&(u=a.clone().multiply(n.matrix)),TU(d,t,e,i,r,o,s,u)}const l=function Hne(n){const t=new Map;if(n.geometry.attributes.color)for(let e=0;es);t.set(i,r)}return t}(n),c=new Map;for(const[d,u]of l.entries()){const h=e.length;Vne(t,i,c,u,n,a),Qne(n.geometry,e,c,u),zne(n,d,h,e.length-1,s,r,o),r++}}function Vne(n,t,e,i,r,o){const s=r.geometry.attributes.position;for(const a of i){const l=new se(s.getX(a),s.getY(a),s.getZ(a));l.applyMatrix4(r.matrix),o&&l.applyMatrix4(o);const c=``;t.has(c)?e.set(a,t.get(c)):(n.push(c),t.set(c,n.length-1),e.set(a,n.length-1))}}function Qne(n,t,e,i){if(n.index){const r=n.index;for(let o=0;o`;t.push(c)}}}else for(let r=0;r`;t.push(o)}}function zne(n,t,e,i,r,o,s){s.has(t)||s.set(t,s.size+1);const a=s.get(t);r.push({id:o,name:"Map"===n.name?`${n.name} 0x${t}`:n.name,color:t,extruder:a,firstTriangleId:e,lastTriangleId:i})}function IU(n,t){return(n instanceof tr?[n.getX(t),n.getY(t),n.getZ(t)]:[n[t],n[t+1],n[t+2]]).map(i=>Math.round(255*i).toString(16).padStart(2,"0")).join("")}"function"==typeof queueMicrotask?queueMicrotask:"function"==typeof setTimeout&&setTimeout;class FU{constructor(t){this.isFont=!0,this.type="Font",this.data=t}generateShapes(t,e=100){const i=[],r=function SHe(n,t,e){const i=Array.from(n),r=t/e.resolution,o=(e.boundingBox.yMax-e.boundingBox.yMin+e.underlineThickness)*r,s=[];let a=0,l=0;for(let c=0;c{e.geometry=r});const i=new Al;return i.copy(t.defaultMaterial),i.polygonOffset=!0,i.polygonOffsetUnits=1,i.polygonOffsetFactor=.1,e.material=i,e.updateColor(t.numberOfColors),new Promise(r=>{r(e)})})()}changeSize(t){this.boundingBoxCalculated=!1,this.createBaseplateGeometryStrategy.create(t).then(e=>{this.geometry=e})}}class lg extends Fd{constructor(t,e,i=1,r=!0){super(t,e),this.minWidth=i,this.manualVisibility=r}setManualVisibility(t){this.manualVisibility=t,this.updateVisibility()}setCurrentWidth(t){this.currentWidth=t,this.updateVisibility()}updateVisibility(){this.visible=this.manualVisibility&&this.visibleBecauseOfColor&&(!this.currentWidth||this.currentWidth>=this.minWidth)}updateColor(t){this.visibleBecauseOfColor=this.colorChangeStrategy.execute(t,this);for(const e of this.children)e instanceof Fd&&e.updateColor(t);this.updateVisibility()}}class yl{execute(t,e){if(t<=1)return!1;let i;return i=t<4?[1,1,1]:4===t?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class kHe extends lg{constructor(){super("Map",new yl,1,!1)}init(t){var e=this;return k(function*(){e.material=t.originalMapMesh.clone().material,e.originalColors=t.originalMapMesh.geometry.attributes.color;const i=t.originalMapMesh.geometry.clone();return i.computeBoundingBox(),i.rotateX(Math.PI/2),e.updateMapGeometry(t,i),i.computeBoundingBox(),i.rotateZ(-Math.PI/2),e.geometry=i,e})()}updateMapGeometry(t,e){const i=t.width-2*t.mapSideOffset,o=i/e.boundingBox.max.x;return e.scale(o,o,o),e.translate(-i/2,i/2,0),this.updateMapColors(this.originalColors,e,t.numberOfColors),e}updateMapColors(t,e,i){const r=[];for(let o=0;o.75&&a>.75?c=i<4?[1,1,1]:[1,1,0]:s>.45&&a<.1?c=i<4?[1,1,1]:[1,0,0]:s<5&&a>.6?c=i<4?[1,1,1]:[0,1,0]:(console.error("Unknown color"),c=[1,1,1]),r.push(...c)}e.setAttribute("color",new Bn(r,3))}changeSize(t,e){var i=this;return k(function*(){const r=(t.width-2*t.mapSideOffset)/(e-2*t.mapSideOffset);i.geometry.scale(r,r,r)})()}updateColor(t){this.updateMapColors(this.originalColors,this.geometry,t)}}const BHe=Oc;class DU extends _l{constructor(t){super(t),this.defaultDPI=90,this.defaultUnit="px"}load(t,e,i,r){const o=this,s=new xu(o.manager);s.setPath(o.path),s.setRequestHeader(o.requestHeader),s.setWithCredentials(o.withCredentials),s.load(t,function(a){try{e(o.parse(a))}catch(l){r?r(l):console.error(l),o.manager.itemError(t)}},i,r)}parse(t){const e=this;function s(ce,ue,ae,Z,$e,wt,je,Nt){if(0==ue||0==ae)return void ce.lineTo(Nt.x,Nt.y);Z=Z*Math.PI/180,ue=Math.abs(ue),ae=Math.abs(ae);const re=(je.x-Nt.x)/2,ht=(je.y-Nt.y)/2,Ve=Math.cos(Z)*re+Math.sin(Z)*ht,At=-Math.sin(Z)*re+Math.cos(Z)*ht;let ot=ue*ue,vt=ae*ae;const Ce=Ve*Ve,be=At*At,de=Ce/ot+be/vt;if(de>1){const Zt=Math.sqrt(de);ot=(ue*=Zt)*ue,vt=(ae*=Zt)*ae}const Y=ot*be+vt*Ce;let Ut=Math.sqrt(Math.max(0,(ot*vt-Y)/Y));$e===wt&&(Ut=-Ut);const Bt=Ut*ue*At/ae,Vt=-Ut*ae*Ve/ue,$n=Math.cos(Z)*Bt-Math.sin(Z)*Vt+(je.x+Nt.x)/2,fn=Math.sin(Z)*Bt+Math.cos(Z)*Vt+(je.y+Nt.y)/2,xn=a(1,0,(Ve-Bt)/ue,(At-Vt)/ae),Ei=a((Ve-Bt)/ue,(At-Vt)/ae,(-Ve-Bt)/ue,(-At-Vt)/ae)%(2*Math.PI);ce.currentPath.absellipse($n,fn,ue,ae,xn,xn+Ei,0===wt,Z)}function a(ce,ue,ae,Z){const $e=ce*ae+ue*Z,wt=Math.sqrt(ce*ce+ue*ue)*Math.sqrt(ae*ae+Z*Z);let je=Math.acos(Math.max(-1,Math.min(1,$e/wt)));return ce*Z-ue*ae<0&&(je=-je),je}function A(ce,ue){ue=Object.assign({},ue);let ae={};if(ce.hasAttribute("class")){const je=ce.getAttribute("class").split(/\s/).filter(Boolean).map(Nt=>Nt.trim());for(let Nt=0;NtNumber.EPSILON}function R(ce){const ue=ce.elements;return Math.sqrt(ue[0]*ue[0]+ue[1]*ue[1])}function B(ce){const ue=ce.elements;return Math.sqrt(ue[3]*ue[3]+ue[4]*ue[4])}const we=[],Ee={},ne=[],Ie=new xi,te=new xi,Ae=new xi,le=new xi,Pe=new nt,it=new se,_t=new xi,Ht=(new DOMParser).parseFromString(t,"image/svg+xml");return function i(ce,ue){if(1!==ce.nodeType)return;const ae=function E(ce){if(!(ce.hasAttribute("transform")||"use"===ce.nodeName&&(ce.hasAttribute("x")||ce.hasAttribute("y"))))return null;const ue=function L(ce){const ue=new xi,ae=Ie;if("use"===ce.nodeName&&(ce.hasAttribute("x")||ce.hasAttribute("y"))){const Z=C(ce.getAttribute("x")),$e=C(ce.getAttribute("y"));ue.translate(Z,$e)}if(ce.hasAttribute("transform")){const Z=ce.getAttribute("transform").split(")");for(let $e=Z.length-1;$e>=0;$e--){const wt=Z[$e].trim();if(""===wt)continue;const je=wt.indexOf("(");if(je>0&&je=1){let At=0;ht.length>=2&&(At=ht[1]),ae.translate(ht[0],At)}break;case"rotate":if(ht.length>=1){let Ve=0,At=0,ot=0;Ve=ht[0]*Math.PI/180,ht.length>=3&&(At=ht[1],ot=ht[2]),te.makeTranslation(-At,-ot),Ae.makeRotation(Ve),le.multiplyMatrices(Ae,te),te.makeTranslation(At,ot),ae.multiplyMatrices(te,le)}break;case"scale":if(ht.length>=1){const Ve=ht[0];let At=Ve;ht.length>=2&&(At=ht[1]),ae.scale(Ve,At)}break;case"skewX":1===ht.length&&ae.set(1,Math.tan(ht[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===ht.length&&ae.set(1,0,0,Math.tan(ht[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===ht.length&&ae.set(ht[0],ht[2],ht[4],ht[1],ht[3],ht[5],0,0,1)}}ue.premultiply(ae)}}return ue}(ce);return ne.length>0&&ue.premultiply(ne[ne.length-1]),_t.copy(ue),ne.push(ue),ue}(ce);let Z=!1,$e=null;switch(ce.nodeName){case"svg":case"g":ue=A(ce,ue);break;case"style":!function o(ce){if(ce.sheet&&ce.sheet.cssRules&&ce.sheet.cssRules.length)for(let ue=0;ue$e.trim());for(let $e=0;$e""!==je));Ee[Z[$e]]=Object.assign(Ee[Z[$e]]||{},wt)}}}(ce);break;case"path":ue=A(ce,ue),ce.hasAttribute("d")&&($e=function r(ce){const ue=new Om,ae=new nt,Z=new nt,$e=new nt;let wt=!0,je=!1;const Nt=ce.getAttribute("d");if(""===Nt||"none"===Nt)return null;const re=Nt.match(/[a-df-z][^a-df-z]*/gi);for(let ht=0,Ve=re.length;ht0&&(ae.copy($e),ue.currentPath.currentPoint.copy(ae),wt=!0);break;default:console.warn(At)}je=!1}return ue}(ce));break;case"rect":ue=A(ce,ue),$e=function l(ce){const ue=C(ce.getAttribute("x")||0),ae=C(ce.getAttribute("y")||0),Z=C(ce.getAttribute("rx")||ce.getAttribute("ry")||0),$e=C(ce.getAttribute("ry")||ce.getAttribute("rx")||0),wt=C(ce.getAttribute("width")),je=C(ce.getAttribute("height")),Nt=.448084975506,re=new Om;return re.moveTo(ue+Z,ae),re.lineTo(ue+wt-Z,ae),(0!==Z||0!==$e)&&re.bezierCurveTo(ue+wt-Z*Nt,ae,ue+wt,ae+$e*Nt,ue+wt,ae+$e),re.lineTo(ue+wt,ae+je-$e),(0!==Z||0!==$e)&&re.bezierCurveTo(ue+wt,ae+je-$e*Nt,ue+wt-Z*Nt,ae+je,ue+wt-Z,ae+je),re.lineTo(ue+Z,ae+je),(0!==Z||0!==$e)&&re.bezierCurveTo(ue+Z*Nt,ae+je,ue,ae+je-$e*Nt,ue,ae+je-$e),re.lineTo(ue,ae+$e),(0!==Z||0!==$e)&&re.bezierCurveTo(ue,ae+$e*Nt,ue+Z*Nt,ae,ue+Z,ae),re}(ce);break;case"polygon":ue=A(ce,ue),$e=function c(ce){const Z=new Om;let $e=0;return ce.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function ue(wt,je,Nt){const re=C(je),ht=C(Nt);0===$e?Z.moveTo(re,ht):Z.lineTo(re,ht),$e++}),Z.currentPath.autoClose=!0,Z}(ce);break;case"polyline":ue=A(ce,ue),$e=function d(ce){const Z=new Om;let $e=0;return ce.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function ue(wt,je,Nt){const re=C(je),ht=C(Nt);0===$e?Z.moveTo(re,ht):Z.lineTo(re,ht),$e++}),Z.currentPath.autoClose=!1,Z}(ce);break;case"circle":ue=A(ce,ue),$e=function u(ce){const ue=C(ce.getAttribute("cx")||0),ae=C(ce.getAttribute("cy")||0),Z=C(ce.getAttribute("r")||0),$e=new VA;$e.absarc(ue,ae,Z,0,2*Math.PI);const wt=new Om;return wt.subPaths.push($e),wt}(ce);break;case"ellipse":ue=A(ce,ue),$e=function h(ce){const ue=C(ce.getAttribute("cx")||0),ae=C(ce.getAttribute("cy")||0),Z=C(ce.getAttribute("rx")||0),$e=C(ce.getAttribute("ry")||0),wt=new VA;wt.absellipse(ue,ae,Z,$e,0,2*Math.PI);const je=new Om;return je.subPaths.push(wt),je}(ce);break;case"line":ue=A(ce,ue),$e=function f(ce){const ue=C(ce.getAttribute("x1")||0),ae=C(ce.getAttribute("y1")||0),Z=C(ce.getAttribute("x2")||0),$e=C(ce.getAttribute("y2")||0),wt=new Om;return wt.moveTo(ue,ae),wt.lineTo(Z,$e),wt.currentPath.autoClose=!1,wt}(ce);break;case"defs":Z=!0;break;case"use":ue=A(ce,ue);const Nt=(ce.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),re=ce.viewportElement.getElementById(Nt);re?i(re,ue):console.warn("SVGLoader: 'use node' references non-existent node id: "+Nt)}$e&&(void 0!==ue.fill&&"none"!==ue.fill&&$e.color.setStyle(ue.fill,BHe),function N(ce,ue){function ae(je){it.set(je.x,je.y,1).applyMatrix3(ue),je.set(it.x,it.y)}function Z(je){const Nt=je.xRadius,re=je.yRadius,ht=Math.cos(je.aRotation),Ve=Math.sin(je.aRotation),At=new se(Nt*ht,Nt*Ve,0),ot=new se(-re*Ve,re*ht,0),vt=At.applyMatrix3(ue),Ce=ot.applyMatrix3(ue),be=Ie.set(vt.x,Ce.x,0,vt.y,Ce.y,0,0,0,1),de=te.copy(be).invert(),Ut=Ae.copy(de).transpose().multiply(de).elements,Bt=function ee(ce,ue,ae){let Z,$e,wt,je,Nt;const re=ce+ae,ht=ce-ae,Ve=Math.sqrt(ht*ht+4*ue*ue);return re>0?(Z=.5*(re+Ve),Nt=1/Z,$e=ce*Nt*ae-ue*Nt*ue):re<0?$e=.5*(re-Ve):(Z=.5*Ve,$e=-.5*Ve),wt=ht>0?ht+Ve:ht-Ve,Math.abs(wt)>2*Math.abs(ue)?(Nt=-2*ue/wt,je=1/Math.sqrt(1+Nt*Nt),wt=Nt*je):0===Math.abs(ue)?(wt=1,je=0):(Nt=-.5*wt/ue,wt=1/Math.sqrt(1+Nt*Nt),je=Nt*wt),ht>0&&(Nt=wt,wt=-je,je=Nt),{rt1:Z,rt2:$e,cs:wt,sn:je}}(Ut[0],Ut[1],Ut[4]),Vt=Math.sqrt(Bt.rt1),$n=Math.sqrt(Bt.rt2);if(je.xRadius=1/Vt,je.yRadius=1/$n,je.aRotation=Math.atan2(Bt.sn,Bt.cs),!((je.aEndAngle-je.aStartAngle)%(2*Math.PI){const{x:Ci,y:Rn}=new se(Math.cos(cr),Math.sin(cr),0).applyMatrix3(Zt);return Math.atan2(Rn,Ci)};je.aStartAngle=Cn(je.aStartAngle),je.aEndAngle=Cn(je.aEndAngle),H(ue)&&(je.aClockwise=!je.aClockwise)}}function $e(je){const Nt=R(ue),re=B(ue);je.xRadius*=Nt,je.yRadius*=re;const ht=Nt>Number.EPSILON?Math.atan2(ue.elements[1],ue.elements[0]):Math.atan2(-ue.elements[3],ue.elements[4]);je.aRotation+=ht,H(ue)&&(je.aStartAngle*=-1,je.aEndAngle*=-1,je.aClockwise=!je.aClockwise)}const wt=ce.subPaths;for(let je=0,Nt=wt.length;je0?_t.copy(ne[ne.length-1]):_t.identity())}(Ht.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:we,xml:Ht.documentElement}}static createShapes(t){const r={loc:0,t:0};function o(y,_,b,M){const C=y.x,E=_.x,L=b.x,N=M.x,H=y.y,j=_.y,R=b.y,B=M.y,ee=(N-L)*(H-R)-(B-R)*(C-L),Ee=(B-R)*(E-C)-(N-L)*(j-H),ne=ee/Ee,Ie=((E-C)*(H-R)-(j-H)*(C-L))/Ee;if(0===Ee&&0!==ee||ne<=0||ne>=1||Ie<0||Ie>1)return null;if(0===ee&&0===Ee){for(let te=0;te<2;te++){if(s(0===te?b:M,y,_),0==r.loc){const Ae=0===te?b:M;return{x:Ae.x,y:Ae.y,t:r.t}}if(2==r.loc)return{x:+(C+r.t*(E-C)).toPrecision(10),y:+(H+r.t*(j-H)).toPrecision(10),t:r.t}}return null}for(let le=0;le<2;le++)if(s(0===le?b:M,y,_),0==r.loc){const Pe=0===le?b:M;return{x:Pe.x,y:Pe.y,t:r.t}}return{x:+(C+ne*(E-C)).toPrecision(10),y:+(H+ne*(j-H)).toPrecision(10),t:ne}}function s(y,_,b){const M=b.x-_.x,C=b.y-_.y,E=y.x-_.x,L=y.y-_.y,N=M*L-E*C;if(y.x===_.x&&y.y===_.y)return r.loc=0,void(r.t=0);if(y.x===b.x&&y.y===b.y)return r.loc=1,void(r.t=1);if(N<-Number.EPSILON)return void(r.loc=3);if(N>Number.EPSILON)return void(r.loc=4);if(M*E<0||C*L<0)return void(r.loc=5);if(Math.sqrt(M*M+C*C){const _=y.getPoints();let b=-999999999,M=999999999,C=-999999999,E=999999999;for(let L=0;L<_.length;L++){const N=_[L];N.y>b&&(b=N.y),N.yC&&(C=N.x),N.x=E&&(d=E-1),{curves:y.curves,points:_,isCW:yu.isClockWise(_),identifier:-1,boundingBox:new FDe(new nt(E,M),new nt(C,b))}});h=h.filter(y=>y.points.length>1);for(let y=0;yfunction c(y,_,b,M,C){(null==C||""===C)&&(C="nonzero");const E=new nt;y.boundingBox.getCenter(E);const N=function l(y,_,b){const M=new nt;_.getCenter(M);const C=[];return b.forEach(E=>{E.boundingBox.containsPoint(M)&&function a(y,_){const b=[],M=[];for(let C=1;CB.t<=R.t+Number.EPSILON&&B.t>=R.t-Number.EPSILON)&&(b.push(R),M.push(new nt(R.x,R.y)))}}return M}(y,E.points).forEach(N=>{C.push({identifier:E.identifier,isCW:E.isCW,point:N})})}),C.sort((E,L)=>E.point.x-L.point.x),C}([new nt(b,E.y),new nt(M,E.y)],y.boundingBox,_);N.sort((we,Ee)=>we.point.x-Ee.point.x);const H=[],j=[];N.forEach(we=>{we.identifier===y.identifier?H.push(we):j.push(we)});const R=H[0].point.x,B=[];let ee=0;for(;ee0&&B[B.length-1]===j[ee].identifier?B.pop():B.push(j[ee].identifier),ee++;if(B.push(y.identifier),"evenodd"===C)return{identifier:y.identifier,isHole:B.length%2==0,for:B[B.length-2]};if("nonzero"===C){let we=!0,Ee=null,ne=null;for(let Ie=0;Ie{if(!f[y.identifier].isHole){const b=new Bm;b.curves=y.curves,f.filter(C=>C.isHole&&C.for===y.identifier).forEach(C=>{const E=h[C.identifier],L=new VA;L.curves=E.curves,b.holes.push(L)}),A.push(b)}}),A}static getStrokeStyle(t,e,i,r,o){return{strokeColor:e=void 0!==e?e:"#000",strokeWidth:t=void 0!==t?t:1,strokeLineJoin:i=void 0!==i?i:"miter",strokeLineCap:r=void 0!==r?r:"butt",strokeMiterLimit:o=void 0!==o?o:4}}static pointsToStroke(t,e,i,r){const o=[],s=[],a=[];if(0===DU.pointsToStrokeWithBuffers(t,e,i,r,o,s,a))return null;const l=new gi;return l.setAttribute("position",new Bn(o,3)),l.setAttribute("normal",new Bn(s,3)),l.setAttribute("uv",new Bn(a,2)),l}static pointsToStrokeWithBuffers(t,e,i,r,o,s,a,l){const c=new nt,d=new nt,u=new nt,h=new nt,f=new nt,A=new nt,y=new nt,_=new nt,b=new nt,M=new nt,C=new nt,E=new nt,L=new nt,N=new nt,H=new nt,j=new nt,R=new nt;i=void 0!==i?i:12,r=void 0!==r?r:.001,l=void 0!==l?l:0;const B=(t=function ht(Ve){let At=!1;for(let vt=1,Ce=Ve.length-1;vt=r&&ot.push(Ve[vt]);return ot.push(Ve[Ve.length-1]),ot}(t)).length;if(B<2)return 0;const ee=t[0].equals(t[B-1]);let we,ne,Ee=t[0];const Ie=e.strokeWidth/2,te=1/(B-1);let le,Pe,it,_t,Ae=0,Ht=!1,cn=0,ce=3*l,ue=2*l;ae(t[0],t[1],c).multiplyScalar(Ie),_.copy(t[0]).sub(c),b.copy(t[0]).add(c),M.copy(_),C.copy(b);for(let Ve=1;VeNumber.EPSILON){const vt=Ie/ot;u.multiplyScalar(-vt),h.subVectors(we,Ee),f.copy(h).setLength(vt).add(u),j.copy(f).negate();const Ce=f.length(),be=h.length();h.divideScalar(be),A.subVectors(ne,we);const de=A.length();switch(A.divideScalar(de),h.dot(j){r.load(i,function(a){const l=a.paths,c=[];for(const A of l){const y=A.toShapes(!0);for(const _ of y){const b=new cb(_,{depth:t.printHeight,bevelEnabled:!1});c.push(b)}}const d=cF(c);d.computeBoundingBox();const f=e.size/Math.max(d.boundingBox.max.x-d.boundingBox.min.x,d.boundingBox.max.y-d.boundingBox.min.y);d.scale(f,f,1),d.center(),"back"===e.side?d.rotateZ(Math.PI):(d.rotateZ(Math.PI),d.rotateY(Math.PI)),o(d)},void 0,function(a){console.error(`Error loading ${i}`),s(a)})})})()}}class PHe extends lg{constructor(t){super(t,new yl,120,!0),this.name="BackMWLogo"}init(t){var e=this;return k(function*(){const i=new Ox;return e.geometry=yield i.create(t,{filePath:"codeCharta/assets/mw_logo_text.svg",size:.31,side:"back"}),e.position.set(0,.37,t.printHeight/2-t.baseplateHeight),e.updateColor(t.numberOfColors),e})()}}class Gne extends cb{constructor(t,e={}){const i=e.font;if(void 0===i)super();else{const r=i.generateShapes(t,e.size);void 0===e.depth&&void 0!==e.height&&console.warn("THREE.TextGeometry: .height is now depreciated. Please use .depth instead"),e.depth=void 0!==e.depth?e.depth:void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(r,e)}this.type="TextGeometry"}}class Wne{create(t,e){var i=this;return k(function*(){const{font:r,side:o,text:s,xPosition:a,yPosition:l,align:c}=e;if(!s)return new gi;let{textSize:d}=e;d||(d=.025);const u="center"===c&&s.includes("\n")?i.createMultilineCenteredTextGeometry(s,r,d,t.printHeight):new Gne(s,{font:r,size:d,height:t.printHeight});return u.center(),"back"===o&&u.rotateY(Math.PI),u.computeBoundingBox(),u.translate(("front"===o?1:-1)*(("center"===c?0:(u.boundingBox.max.x-u.boundingBox.min.x)/2)+a),l,"front"===o?t.printHeight/2:t.printHeight/2-t.baseplateHeight),u})()}createMultilineCenteredTextGeometry(t,e,i,r){const o=t.split("\n"),s=[];for(const[a,l]of o.entries()){const c=new Gne(l,{font:e,size:i,height:r});c.center(),c.translate(0,-a*i*1.5,0),s.push(c)}return cF(s)}}class Lx extends lg{constructor(t,e=new yl,i,r,o,s=new Wne){super(t,e,i,r),this.createTextGeometryOptions=o,this.createTextGeometryStrategy=s}init(t){var e=this;return k(function*(){return e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.updateColor(t.numberOfColors),e})()}updateText(t){var e=this;return k(function*(){e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.boundingBoxCalculated=!1})()}updateTextGeometryOptions(t){this.createTextGeometryOptions.text=t}}class RHe extends Lx{constructor(t,e){const i={font:e,text:"IT Stabilization & Modernization\nmaibornwolff.de/service/it-sanierung",side:"back",xPosition:0,yPosition:.23,align:"center"};super(t,new yl,200,!0,i)}}var OHe=p(8314);class LHe extends lg{constructor(t){super(t,new yl,0,!1)}init(t){var e=this;return k(function*(){return e.geometry=yield e.create(t),e.position.set(.45,.45,t.printHeight/2-t.baseplateHeight),e.updateColor(t.numberOfColors),e})()}changeText(t){var e=this;return k(function*(){e.geometry=yield e.create(t)})()}create(t){var e=this;return k(function*(){if(!t.qrCodeText||0===t.qrCodeText.length)return new gi;const i=document.createElement("canvas");yield OHe.mo(i,t.qrCodeText,{errorCorrectionLevel:"H"});const o=i.getContext("2d").getImageData(0,0,i.width,i.height),s=[],a=.6/o.width;for(let l=0;lsuper.init,i=this;return k(function*(){const r=yield i.createColoredBackTextChildren(t);for(const o of r)i.add(o);return e().call(i,t),i})()}createTextGeometry(t,e,i){var r=this;return k(function*(){return t.create(i,{font:r.font,text:e,side:"back",xPosition:.05,yPosition:.015,align:"left"})})()}getText(){return`${this.metricDescriptionBlockOptions.nodeMetricData.name}\n${this.metricDescriptionBlockOptions.title}\n`}createColoredBackTextChildren(t){var e=this;return k(function*(){const i=e.metricDescriptionBlockOptions,r=[],o=["Value ranges:",`${i.nodeMetricData.minValue} - ${i.colorRange.from-1}`,"/",`${i.colorRange.from} - ${i.colorRange.to-1}`,"/",`${i.colorRange.to} - ${i.nodeMetricData.maxValue}`],s=[new yl,new HHe,new yl,new VHe,new yl,new QHe];let a=.05;for(let l=0;l{if(e instanceof ki&&e.visible){e.geometry.computeBoundingBox();const{min:i,max:r}=e.geometry.boundingBox;t.min=Math.min(t.min,i.x),t.max=Math.max(t.max,r.x)}}),this.position.x=(t.max-t.min)/2}createColorAttributes(){return{colorIcon:"color_icon_for_3D_print.svg",colorIconScale:.075}}createHeightAttributes(){return{heightIcon:"height_icon_for_3D_print.svg",heightIconScale:.09}}createAreaAttributes(){return{areaIcon:"area_icon_for_3D_print.svg",areaIconScale:.075}}}class GHe extends Fd{constructor(t){super("BackPrintContainer",new yl),this.font=t}init(t){var e=this;return k(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("BackMWLogo",new PHe("BackMWLogo")),e.childrenMeshes.set("BackBelowLogoText",new RHe("BackBelowLogoText",e.font)),e.childrenMeshes.set("QrCode",new LHe("QrCode")),e.childrenMeshes.set("CodeChartaLogo",new NHe("CodeChartaLogo")),e.childrenMeshes.set("CodeChartaText",new UHe("CodeChartaText",e.font)),e.childrenMeshes.set("MetricDescriptionsContainer",new qHe("MetricDescriptionsContainer",e.font)),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=k(function*(r){yield r.init(t),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.changeSize(t,1),e})()}changeSize(t,e){const i=t.width/e;this.scale.set(this.scale.x*i,this.scale.y*i,this.scale.z),this.traverse(r=>{r instanceof lg&&r.setCurrentWidth(t.width)})}isQRCodeVisible(){return this.childrenMeshes.get("QrCode").visible}updateQrCodeText(t,e){var i=this;return k(function*(){e.qrCodeText=t,yield i.childrenMeshes.get("QrCode").changeText(e)})()}updateQrCodeVisibility(t){this.childrenMeshes.get("QrCode").setManualVisibility(t)}getChildrenMeshes(){return this.childrenMeshes}}class PU{execute(t,e){let i;return i=t<4?[1,1,1]:4===t?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class WHe extends Lx{constructor(t,e,i){let r=i.frontText;r||(r="FrontText");const o={font:e,side:"front",text:r,xPosition:0,yPosition:i.frontTextSize/2,textSize:i.frontTextSize,align:"center"};super(t,new PU,0,!0,o),this.name="Front Text"}}class $He extends Lx{constructor(t,e,i){const r={font:e,text:i.secondRowText,side:"front",xPosition:0,yPosition:-i.secondRowTextSize,textSize:i.secondRowTextSize,align:"center"};super(t,new PU,0,!1,r)}}class RU extends Fd{constructor(t,e){super(t,new PU),this.alignment=e}changeRelativeSize(t){const e=this.getWidth();this.boundingBoxCalculated=!1;const i=t.secondRowVisible,r=i?(t.frontTextSize+t.secondRowTextSize)/t.frontTextSize:1;this.scale.x=r,this.scale.y=r;const o=i?-1:1,s="left"===this.alignment?-1:1;this.translateY(o*t.secondRowTextSize);const a=i?e/this.getWidth():this.getWidth()/e;this.translateX(2*a*s*o)}}class jHe extends RU{constructor(t){super(t,"right")}init(t,e=new Ox){var i=this;return k(function*(){const r=t.frontTextSize*t.width/250;return i.geometry=yield e.create(t,{filePath:"codeCharta/assets/mw_logo.svg",size:r,side:"front"}),i.position.set(t.width/2-r/2-t.mapSideOffset/2,r/2,t.printHeight/2),t.secondRowVisible&&i.changeRelativeSize(t),i.updateColor(t.numberOfColors),i})()}changeSize(t,e){this.position.x+=(t.width-e)/2}}class XHe extends RU{constructor(t,e){super(t,"left"),this.filePath=e}init(t){var e=this;return k(function*(){const i=new Ox,r=t.frontTextSize*t.width/200;return e.geometry=yield i.create(t,{filePath:e.filePath,size:r,side:"front"}),e.position.set(-t.width/2+r/2+t.mapSideOffset/2,r/2,t.printHeight/2),t.secondRowVisible&&e.changeRelativeSize(t),e.updateColor(t.numberOfColors),e})()}setColor(t){this.material.color.set(t)}rotate(){this.geometry.rotateZ(Math.PI/2)}flip(){this.geometry.rotateY(Math.PI)}changeSize(t,e){this.position.x-=(t.width-e)/2}}class KHe extends Fd{constructor(t){super("FrontPrintContainer",new yl),this.font=t}init(t){var e=this;return k(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("FrontText",new WHe("FrontText",e.font,t)),e.childrenMeshes.set("SecondRowText",new $He("SecondRowText",e.font,t)),e.childrenMeshes.set("FrontMWLogo",new jHe("FrontMWLogo")),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=k(function*(r){yield r.init(t),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.position.y=-t.width/2-t.mapSideOffset/2,e})()}addCustomLogo(t,e){var i=this;return k(function*(){i.childrenMeshes.has("CustomLogo")&&i.removeCustomLogo();const r=yield new XHe("CustomLogo",t).init(e);i.add(r),i.childrenMeshes.set(r.name,r)})()}rotateCustomLogo(){this.childrenMeshes.get("CustomLogo").rotate()}flipCustomLogo(){this.childrenMeshes.get("CustomLogo").flip()}removeCustomLogo(){this.remove(this.childrenMeshes.get("CustomLogo")),this.childrenMeshes.delete("CustomLogo")}updateCustomLogoColor(t){this.childrenMeshes.get("CustomLogo").setColor(t)}updateFrontText(t,e){var i=this;return k(function*(){const r=i.childrenMeshes.get("FrontText");r.updateTextGeometryOptions(t),yield r.updateText(e)})()}changeSize(t,e){this.position.y-=(t.width-e)/2;for(const i of this.childrenMeshes.values())i instanceof RU&&i.isGeneralSizeChangeMesh()&&i.changeSize(t,e)}updateSecondRowText(t,e){var i=this;return k(function*(){const r=i.childrenMeshes.get("SecondRowText");r.updateTextGeometryOptions(t),yield r.updateText(e)})()}updateSecondRowVisibility(t){const e=this.childrenMeshes.get("FrontMWLogo"),i=this.childrenMeshes.get("SecondRowText"),r=this.childrenMeshes.get("CustomLogo");i.setManualVisibility(t.secondRowVisible),e.changeRelativeSize(t),r?.changeRelativeSize(t)}getChildrenMeshes(){return this.childrenMeshes}}const $ne=JSON.parse('{"glyphs":{"0":{"x_min":73,"x_max":715,"ha":792,"o":"m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 "},"1":{"x_min":215.671875,"x_max":574,"ha":792,"o":"m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 "},"2":{"x_min":59,"x_max":731,"ha":792,"o":"m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 "},"3":{"x_min":54,"x_max":737,"ha":792,"o":"m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 "},"4":{"x_min":48,"x_max":742.453125,"ha":792,"o":"m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 "},"5":{"x_min":54.171875,"x_max":738,"ha":792,"o":"m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 "},"6":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 "},"7":{"x_min":58.71875,"x_max":730.953125,"ha":792,"o":"m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 "},"8":{"x_min":55,"x_max":736,"ha":792,"o":"m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 "},"9":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 "},"\u03bf":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 "},"S":{"x_min":0,"x_max":788,"ha":890,"o":"m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 "},"\xa6":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"/":{"x_min":183.25,"x_max":608.328125,"ha":792,"o":"m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 "},"\u03a4":{"x_min":-0.4375,"x_max":777.453125,"ha":839,"o":"m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 "},"y":{"x_min":0,"x_max":684.78125,"ha":771,"o":"m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "},"\u03a0":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 "},"\u0390":{"x_min":-111,"x_max":339,"ha":361,"o":"m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 "},"g":{"x_min":0,"x_max":686,"ha":838,"o":"m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 "},"\xb2":{"x_min":0,"x_max":442,"ha":539,"o":"m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 "},"\u2013":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},"\u039a":{"x_min":0,"x_max":819.5625,"ha":893,"o":"m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},"\u0192":{"x_min":-46.265625,"x_max":392,"ha":513,"o":"m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 "},"e":{"x_min":0,"x_max":714,"ha":813,"o":"m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 "},"\u03cc":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 "},"J":{"x_min":0,"x_max":588,"ha":699,"o":"m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 "},"\xbb":{"x_min":-1,"x_max":503,"ha":601,"o":"m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 "},"\xa9":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 "},"\u03ce":{"x_min":0,"x_max":922,"ha":1030,"o":"m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 "},"^":{"x_min":193.0625,"x_max":598.609375,"ha":792,"o":"m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 "},"\xab":{"x_min":0,"x_max":507.203125,"ha":604,"o":"m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 "},"D":{"x_min":0,"x_max":828,"ha":935,"o":"m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 "},"\u2219":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\xff":{"x_min":0,"x_max":47,"ha":125,"o":"m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 "},"w":{"x_min":0,"x_max":1009.71875,"ha":1100,"o":"m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 "},"$":{"x_min":0,"x_max":700,"ha":793,"o":"m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 "},"\\\\":{"x_min":-0.015625,"x_max":425.0625,"ha":522,"o":"m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 "},"\xb5":{"x_min":0,"x_max":697.21875,"ha":747,"o":"m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 "},"\u0399":{"x_min":42,"x_max":181,"ha":297,"o":"m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 "},"\u038e":{"x_min":0,"x_max":1144.5,"ha":1214,"o":"m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2019":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\u039d":{"x_min":0,"x_max":801,"ha":915,"o":"m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 "},"-":{"x_min":8.71875,"x_max":350.390625,"ha":478,"o":"m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 "},"Q":{"x_min":0,"x_max":968,"ha":1072,"o":"m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 "},"\u03c2":{"x_min":1,"x_max":676.28125,"ha":740,"o":"m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 "},"M":{"x_min":0,"x_max":954,"ha":1067,"o":"m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 "},"\u03a8":{"x_min":0,"x_max":1006,"ha":1094,"o":"m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 "},"C":{"x_min":0,"x_max":886,"ha":944,"o":"m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 "},"!":{"x_min":0,"x_max":138,"ha":236,"o":"m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 "},"{":{"x_min":0,"x_max":480.5625,"ha":578,"o":"m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 "},"X":{"x_min":-0.015625,"x_max":854.15625,"ha":940,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 "},"#":{"x_min":0,"x_max":963.890625,"ha":1061,"o":"m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 "},"\u03b9":{"x_min":42,"x_max":284,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 "},"\u0386":{"x_min":0,"x_max":906.953125,"ha":982,"o":"m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},")":{"x_min":0,"x_max":318,"ha":415,"o":"m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 "},"\u03b5":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 "},"\u0394":{"x_min":0,"x_max":952.78125,"ha":1028,"o":"m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 "},"}":{"x_min":0,"x_max":481,"ha":578,"o":"m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 "},"\u2030":{"x_min":-3,"x_max":1672,"ha":1821,"o":"m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 "},"a":{"x_min":0,"x_max":698.609375,"ha":794,"o":"m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 "},"\u2014":{"x_min":0,"x_max":941.671875,"ha":1039,"o":"m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 "},"=":{"x_min":8.71875,"x_max":780.953125,"ha":792,"o":"m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 "},"N":{"x_min":0,"x_max":801,"ha":914,"o":"m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 "},"\u03c1":{"x_min":0,"x_max":712,"ha":797,"o":"m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 "},"\xaf":{"x_min":0,"x_max":941.671875,"ha":938,"o":"m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 "},"Z":{"x_min":0,"x_max":779,"ha":849,"o":"m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 "},"u":{"x_min":0,"x_max":617,"ha":729,"o":"m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 "},"k":{"x_min":0,"x_max":612.484375,"ha":697,"o":"m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 "},"\u0397":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u0391":{"x_min":0,"x_max":906.953125,"ha":985,"o":"m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},"s":{"x_min":0,"x_max":604,"ha":697,"o":"m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 "},"B":{"x_min":0,"x_max":778,"ha":876,"o":"m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 "},"\u2026":{"x_min":0,"x_max":614,"ha":708,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 "},"?":{"x_min":0,"x_max":607,"ha":704,"o":"m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 "},"H":{"x_min":0,"x_max":803,"ha":915,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u03bd":{"x_min":0,"x_max":675,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 "},"c":{"x_min":1,"x_max":701.390625,"ha":775,"o":"m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 "},"\xb6":{"x_min":0,"x_max":566.671875,"ha":678,"o":"m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 "},"\u03b2":{"x_min":0,"x_max":660,"ha":745,"o":"m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 "},"\u039c":{"x_min":0,"x_max":954,"ha":1068,"o":"m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 "},"\u038c":{"x_min":0.109375,"x_max":1120,"ha":1217,"o":"m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u0389":{"x_min":0,"x_max":1158,"ha":1275,"o":"m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2022":{"x_min":0,"x_max":663.890625,"ha":775,"o":"m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 "},"\xa5":{"x_min":0.1875,"x_max":819.546875,"ha":886,"o":"m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 "},"(":{"x_min":0,"x_max":318.0625,"ha":415,"o":"m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 "},"U":{"x_min":0,"x_max":796,"ha":904,"o":"m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 "},"\u03b3":{"x_min":0.5,"x_max":744.953125,"ha":822,"o":"m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 "},"\u03b1":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 "},"F":{"x_min":0,"x_max":683.328125,"ha":717,"o":"m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 "},"\xad":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},":":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03a7":{"x_min":0,"x_max":854.171875,"ha":935,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 "},"*":{"x_min":116,"x_max":674,"ha":792,"o":"m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 "},"\u2020":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 "},"\xb0":{"x_min":0,"x_max":347,"ha":444,"o":"m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 "},"V":{"x_min":0,"x_max":862.71875,"ha":940,"o":"m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 "},"\u039e":{"x_min":0,"x_max":734.71875,"ha":763,"o":"m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 "},"\xa0":{"x_min":0,"x_max":0,"ha":853},"\u03ab":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 "},"\u201d":{"x_min":0,"x_max":347,"ha":454,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 "},"@":{"x_min":0,"x_max":1260,"ha":1357,"o":"m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 "},"\u038a":{"x_min":0,"x_max":499,"ha":613,"o":"m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 "},"i":{"x_min":14,"x_max":136,"ha":275,"o":"m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 "},"\u0392":{"x_min":0,"x_max":778,"ha":877,"o":"m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 "},"\u03c5":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 "},"]":{"x_min":0,"x_max":275,"ha":372,"o":"m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 "},"m":{"x_min":0,"x_max":1019,"ha":1128,"o":"m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 "},"\u03c7":{"x_min":8.328125,"x_max":780.5625,"ha":815,"o":"m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 "},"\u03af":{"x_min":42,"x_max":326.71875,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 "},"\u0396":{"x_min":0,"x_max":779.171875,"ha":850,"o":"m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 "},"R":{"x_min":0,"x_max":781.953125,"ha":907,"o":"m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 "},"o":{"x_min":0,"x_max":713,"ha":821,"o":"m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 "},"K":{"x_min":0,"x_max":819.46875,"ha":906,"o":"m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},",":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 "},"d":{"x_min":0,"x_max":683,"ha":796,"o":"m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 "},"\xa8":{"x_min":-109,"x_max":247,"ha":232,"o":"m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 "},"E":{"x_min":0,"x_max":736.109375,"ha":789,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"Y":{"x_min":0,"x_max":820,"ha":886,"o":"m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 "},"\\"":{"x_min":0,"x_max":299,"ha":396,"o":"m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\u2039":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\u201e":{"x_min":0,"x_max":364,"ha":467,"o":"m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 "},"\u03b4":{"x_min":1,"x_max":710,"ha":810,"o":"m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 "},"\u03ad":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 "},"\u03c9":{"x_min":0,"x_max":922,"ha":1031,"o":"m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 "},"\xb4":{"x_min":0,"x_max":96,"ha":251,"o":"m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\xb1":{"x_min":11,"x_max":781,"ha":792,"o":"m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 "},"|":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"\u03cb":{"x_min":0,"x_max":617,"ha":725,"o":"m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 "},"\xa7":{"x_min":0,"x_max":593,"ha":690,"o":"m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 "},"b":{"x_min":0,"x_max":685,"ha":783,"o":"m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 "},"q":{"x_min":0,"x_max":683,"ha":876,"o":"m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 "},"\u03a9":{"x_min":-0.171875,"x_max":969.5625,"ha":1068,"o":"m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 "},"\u03cd":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 "},"z":{"x_min":-0.015625,"x_max":613.890625,"ha":697,"o":"m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "},"\u2122":{"x_min":0,"x_max":894,"ha":1000,"o":"m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 "},"\u03ae":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 "},"\u0398":{"x_min":0,"x_max":960,"ha":1056,"o":"m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 "},"\xae":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 "},"~":{"x_min":0,"x_max":833,"ha":931,"o":"m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 "},"\u0395":{"x_min":0,"x_max":736.21875,"ha":778,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"\xb3":{"x_min":0,"x_max":450,"ha":547,"o":"m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 "},"[":{"x_min":0,"x_max":273.609375,"ha":371,"o":"m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 "},"L":{"x_min":0,"x_max":645.828125,"ha":696,"o":"m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 "},"\u03c3":{"x_min":0,"x_max":803.390625,"ha":894,"o":"m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 "},"\u03b6":{"x_min":0,"x_max":573,"ha":642,"o":"m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 "},"\u03b8":{"x_min":0,"x_max":674,"ha":778,"o":"m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 "},"\u039f":{"x_min":0,"x_max":958,"ha":1054,"o":"m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 "},"\u0393":{"x_min":0,"x_max":705.28125,"ha":749,"o":"m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 "}," ":{"x_min":0,"x_max":0,"ha":375},"%":{"x_min":-3,"x_max":1089,"ha":1186,"o":"m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 "},"P":{"x_min":0,"x_max":726,"ha":806,"o":"m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 "},"\u0388":{"x_min":0,"x_max":1078.21875,"ha":1118,"o":"m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u038f":{"x_min":0.125,"x_max":1136.546875,"ha":1235,"o":"m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 "},"_":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 "},"\u03aa":{"x_min":-110,"x_max":246,"ha":275,"o":"m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 "},"+":{"x_min":23,"x_max":768,"ha":792,"o":"m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 "},"\xbd":{"x_min":0,"x_max":1050,"ha":1149,"o":"m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 "},"\u03a1":{"x_min":0,"x_max":720,"ha":783,"o":"m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 "},"\'":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\xaa":{"x_min":0,"x_max":350,"ha":397,"o":"m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 "},"\u0385":{"x_min":0,"x_max":450,"ha":553,"o":"m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 "},"T":{"x_min":0,"x_max":777,"ha":835,"o":"m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 "},"\u03a6":{"x_min":0,"x_max":915,"ha":997,"o":"m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 "},"\u204b":{"x_min":0,"x_max":0,"ha":694},"j":{"x_min":-77.78125,"x_max":167,"ha":349,"o":"m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 "},"\u03a3":{"x_min":0,"x_max":756.953125,"ha":819,"o":"m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 "},"\u203a":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"<":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\xa3":{"x_min":0,"x_max":704.484375,"ha":801,"o":"m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 "},"t":{"x_min":0,"x_max":367,"ha":458,"o":"m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 "},"\xac":{"x_min":0,"x_max":706,"ha":803,"o":"m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 "},"\u03bb":{"x_min":0,"x_max":750,"ha":803,"o":"m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 "},"W":{"x_min":0,"x_max":1263.890625,"ha":1351,"o":"m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 "},">":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"v":{"x_min":0,"x_max":675.15625,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},"\u03c4":{"x_min":0.28125,"x_max":644.5,"ha":703,"o":"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},"\u03be":{"x_min":0,"x_max":624.9375,"ha":699,"o":"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{"x_min":-3,"x_max":894.25,"ha":992,"o":"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},"\u039b":{"x_min":0,"x_max":862.5,"ha":942,"o":"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},"I":{"x_min":41,"x_max":180,"ha":293,"o":"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},"G":{"x_min":0,"x_max":921,"ha":1011,"o":"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},"\u03b0":{"x_min":0,"x_max":617,"ha":725,"o":"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{"x_min":0,"x_max":138.890625,"ha":236,"o":"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\u03a5":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},"r":{"x_min":0,"x_max":355.5625,"ha":432,"o":"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},"x":{"x_min":0,"x_max":675,"ha":764,"o":"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},"\u03bc":{"x_min":0,"x_max":696.609375,"ha":747,"o":"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},"h":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03c6":{"x_min":-2,"x_max":878,"ha":974,"o":"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},"f":{"x_min":0,"x_max":378,"ha":472,"o":"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{"x_min":1,"x_max":348.21875,"ha":454,"o":"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},"A":{"x_min":0.03125,"x_max":906.953125,"ha":1008,"o":"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{"x_min":1,"x_max":139.890625,"ha":236,"o":"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},"\u03ca":{"x_min":-70,"x_max":283,"ha":361,"o":"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},"\u03c0":{"x_min":-0.21875,"x_max":773.21875,"ha":857,"o":"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},"\u03ac":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},"O":{"x_min":0,"x_max":958,"ha":1057,"o":"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},"n":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},"l":{"x_min":41,"x_max":166,"ha":279,"o":"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{"x_min":40.09375,"x_max":728.796875,"ha":825,"o":"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},"\u03ba":{"x_min":0,"x_max":632.328125,"ha":679,"o":"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},"p":{"x_min":0,"x_max":685,"ha":786,"o":"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},"\u03c8":{"x_min":0,"x_max":808,"ha":907,"o":"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},"\u03b7":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},"cssFontWeight":"normal","ascender":1189,"underlinePosition":-100,"cssFontStyle":"normal","boundingBox":{"yMin":-334,"xMin":-111,"yMax":1189,"xMax":1672},"resolution":1000,"original_font_information":{"postscript_name":"Helvetiker-Regular","version_string":"Version 1.00 2004 initial release","vendor_url":"http://www.magenta.gr/","full_font_name":"Helvetiker","font_family_name":"Helvetiker","copyright":"Copyright (c) \u039cagenta ltd, 2004","description":"","trademark":"","designer":"","designer_url":"","unique_font_identifier":"\u039cagenta ltd:Helvetiker:22-10-104","license_url":"http://www.ellak.gr/fonts/MgOpen/license.html","license_description":"Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.","manufacturer_name":"\u039cagenta ltd","font_sub_family_name":"Regular"},"descender":-334,"familyName":"Helvetiker","lineHeight":1522,"underlineThickness":50}');class YHe{constructor(t,e=new KHe(new FU($ne)),i=new GHe(new FU($ne)),r=new DHe,o=new kHe){this.geometryOptions=t,this.frontPrintContainerMesh=e,this.backPrintContainerMesh=i,this.baseplateMesh=r,this.mapMesh=o,this.printMesh=new ki,this.printMesh.name="PrintMesh"}initialize(){var t=this;return k(function*(){t.baseplateMesh=yield t.baseplateMesh.init(t.geometryOptions),t.printMesh.add(t.baseplateMesh),t.mapMesh=yield t.mapMesh.init(t.geometryOptions),t.printMesh.add(t.mapMesh),t.frontPrintContainerMesh=yield t.frontPrintContainerMesh.init(t.geometryOptions),t.printMesh.add(t.frontPrintContainerMesh),t.backPrintContainerMesh=yield t.backPrintContainerMesh.init(t.geometryOptions),t.printMesh.add(t.backPrintContainerMesh),t.calculateCurrentSize()})()}getThreeMesh(){return this.printMesh}getMapMesh(){return this.mapMesh}getSize(){return this.currentSize}updateSize(t){var e=this;return k(function*(){e.geometryOptions.width=t;const i=e.currentSize.x;return yield Promise.all([...e.printMesh.children].map(function(){var r=k(function*(o){o instanceof Fd&&o.isGeneralSizeChangeMesh()&&o.changeSize(e.geometryOptions,i)});return function(o){return r.apply(this,arguments)}}())),e.calculateCurrentSize(),e.backPrintContainerMesh.isQRCodeVisible()})()}updateNumberOfColors(t){this.geometryOptions.numberOfColors=t;for(const e of this.printMesh.children)e instanceof Fd&&e.updateColor(t)}addCustomLogo(t){var e=this;return k(function*(){e.frontPrintContainerMesh.addCustomLogo(t,e.geometryOptions)})()}rotateCustomLogo(){this.frontPrintContainerMesh.rotateCustomLogo()}flipCustomLogo(){this.frontPrintContainerMesh.flipCustomLogo()}removeCustomLogo(){this.frontPrintContainerMesh.removeCustomLogo()}updateCustomLogoColor(t){this.frontPrintContainerMesh.updateCustomLogoColor(t)}updateFrontText(t){this.frontPrintContainerMesh.updateFrontText(t,this.geometryOptions)}updateSecondRowVisibility(t){this.geometryOptions.secondRowVisible!==t&&(this.geometryOptions.secondRowVisible=t,this.frontPrintContainerMesh.updateSecondRowVisibility(this.geometryOptions),this.baseplateMesh.changeSize(this.geometryOptions))}updateSecondRowText(t){var e=this;return k(function*(){yield e.frontPrintContainerMesh.updateSecondRowText(t,e.geometryOptions)})()}calculateCurrentSize(){const t=this.baseplateMesh.getWidth(),e=this.baseplateMesh.getDepth(),i=this.baseplateMesh.getHeight()+this.mapMesh.getHeight();this.currentSize=new se(t,e,i)}updateQrCodeText(t){var e=this;return k(function*(){yield e.backPrintContainerMesh.updateQrCodeText(t,e.geometryOptions)})()}updateQrCodeVisibility(t){this.backPrintContainerMesh.updateQrCodeVisibility(t)}}function jne(n,t,e,i,r){const a=n.z,l=n.x,c=n.y-e;return t.geometry.boundingBox||t.geometry.computeBoundingBox(),Math.min(l,c,(a-i)*t.geometry.boundingBox.max.x/(t.geometry.boundingBox.max.z-t.geometry.boundingBox.min.z)+2*r)}const ZHe=["rendererContainer"],JHe=["fileInput"],eVe=()=>["Color"];function tVe(n,t){if(1&n&&(D(0,"mat-option",9),ye(1),D(2,"span",35),ye(3),U()()),2&n){const e=t.$implicit;_e("value",e),Q(),sn("",e.name," "),Q(2),Sk(" (x: ",e.x,"cm, y: ",e.y,"cm, z: ",e.z,"cm, colors ",e.numberOfColors," )")}}let Xne=(()=>{class n{constructor(e,i){this.state=e,this.threeSceneService=i,this.logoColor="#ffffff",this.isFileSelected=!1,this.isPrintMeshLoaded=!1,this.secondRow={defaultText:(new Date).toLocaleDateString(),name:"Second Row Text",isVisible:!1,currentText:void 0},this.qrCode={defaultText:"maibornwolff.de/service/it-sanierung",name:"QrCode",isVisible:!1,currentText:void 0},this.printers=[{name:"Prusa MK3S (single color)",x:245,y:205,z:205,numberOfColors:1},{name:"BambuLab A1 + AMS Lite",x:251,y:251,z:251,numberOfColors:4},{name:"Prusa XL (5 colors)",x:355,y:335,z:355,numberOfColors:5}],this.selectedPrinter=this.printers[2],this.layerHeight=.2,this.frontTextSize=8,this.secondRowTextSize=6,this.frontPrintDepth=.6,this.mapSideOffset=10,this.baseplateHeight=1,this.logoSize=10,this.maxWidth=jne(new se(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.currentSize=new se,this.currentSize.x=this.maxWidth,this.wantedWidth=this.maxWidth,this.currentNumberOfColors=this.selectedPrinter.numberOfColors,this.isPrintMeshLoaded=!1,this.secondRow.currentText=this.secondRow.defaultText,this.qrCode.currentText=this.qrCode.defaultText,this.areaMetric=this.state.getValue().dynamicSettings.areaMetric,this.heightMetric=this.state.getValue().dynamicSettings.heightMetric,this.colorMetric=this.state.getValue().dynamicSettings.colorMetric;const r=l2(this.state.getValue().files),o=this.state.getValue().fileSettings.blacklist,s=DW(r,o);this.nodeMetricData=s.filter(a=>a.name===this.areaMetric||a.name===this.heightMetric||a.name===this.colorMetric)}ngAfterViewInit(){var e=this;return k(function*(){yield e.createScene(),e.isPrintMeshLoaded=!0})()}onScaleChange(){this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize()}onFrontTextChange(){this.previewMesh.updateFrontText(this.frontText)}onFileSelected(e){const i=e.target.files[0];if(i){this.isFileSelected=!0;const r=new FileReader;r.readAsDataURL(i),r.onload=()=>{this.previewMesh.addCustomLogo(r.result)}}else this.isFileSelected=!1}onRotateLogo(){this.previewMesh.rotateCustomLogo()}onFlipLogo(){this.previewMesh.flipCustomLogo()}onRemoveLogo(){this.isFileSelected=!1,this.fileInput.nativeElement.value="",this.previewMesh.removeCustomLogo()}onSelectedPrinterChange(){const e=this.selectedPrinter.numberOfColors;this.currentNumberOfColors!==e&&(this.previewMesh.updateNumberOfColors(e),this.currentNumberOfColors=e),this.makeMapMaxSize(),this.updateCameraPosition(this.printPreviewScene.getObjectByName("camera"))}onLogoColorChange(e){this.logoColor=e,this.previewMesh.updateCustomLogoColor(this.logoColor)}onQrCodeTextChange(){this.onTextChange(this.qrCode),this.previewMesh.updateQrCodeText(this.qrCode.currentText),this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible)}onQrCodeVisibilityChange(e){this.qrCode.isVisible!==e.checked&&(this.qrCode.isVisible=e.checked,this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible))}onSecondRowTextChange(){this.onTextChange(this.secondRow),this.previewMesh.updateSecondRowText(this.secondRow.currentText),this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible)}onSecondRowVisibilityChange(e){this.secondRow.isVisible!==e.checked&&(this.secondRow.isVisible=e.checked,this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible))}onTextChange(e){""!==e.currentText?e.isVisible||(e.isVisible=!0):e.isVisible=!1}createScene(){var e=this;return k(function*(){const i=new KS;i.name="printPreviewScene",e.printPreviewScene=i,i.background=new tn(15527388);const r=e.threeSceneService.scene.clone().children[3];r.name="lights",i.add(r);const o=new Hs(45,1.15,50,2e5);o.name="camera",o.up=new se(0,0,1),i.add(o),e.initRenderer(i,o),e.previewMesh=new YHe(e.initGeometryOptions()),yield e.previewMesh.initialize(),e.currentSize=e.previewMesh.getSize(),i.add(e.previewMesh.getThreeMesh()),e.updateCameraPosition(o)})()}initRenderer(e,i){const r=this.getGL(),o=new nt;r.getSize(o);const s=this.rendererContainer.nativeElement.offsetWidth;r.setSize(s,o.y*(s/o.x),!0),this.rendererContainer.nativeElement.appendChild(r.domElement);const l=new rN(i,r.domElement),c=function(){requestAnimationFrame(c),l.update(),r.render(e,i)};c()}getGL(){return new ZO}updateCameraPosition(e){e.position.set(.2*-this.currentSize.x,1.2*-this.currentSize.y,3*this.currentSize.z)}download3MFFile(){var e=this;return k(function*(){const i=yield function EHe(n){return SU.apply(this,arguments)}(e.printPreviewScene.getObjectByName("PrintMesh"));e.downloadFile(i,"3mf")})()}makeMapMaxSize(){this.wantedWidth=jne(new se(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize(),this.maxWidth=this.currentSize.x}downloadStlFile(){const e=(new eHe).parse(this.previewMesh.getMapMesh(),{binary:!0});this.downloadFile(e,"stl")}initGeometryOptions(){const e=this.state.getValue().fileSettings.attributeDescriptors,i=vb,r=e[this.areaMetric]?.title||i.get(this.areaMetric),o=e[this.heightMetric]?.title||i.get(this.heightMetric),s=e[this.colorMetric]?.title||i.get(this.colorMetric);return{originalMapMesh:this.threeSceneService.getMapMesh().getThreeMesh(),width:this.wantedWidth,areaMetricTitle:r,areaMetricData:this.nodeMetricData.find(a=>a.name===this.areaMetric),heightMetricTitle:o,heightMetricData:this.nodeMetricData.find(a=>a.name===this.heightMetric),colorMetricTitle:s,colorMetricData:this.nodeMetricData.find(a=>a.name===this.colorMetric),colorRange:this.state.getValue().dynamicSettings.colorRange,frontText:this.frontText,secondRowText:this.secondRow.currentText,secondRowVisible:this.secondRow.isVisible,qrCodeText:this.qrCode.currentText,defaultMaterial:this.threeSceneService.getMapMesh().getThreeMesh().material[0].clone(),numberOfColors:this.currentNumberOfColors,layerHeight:this.layerHeight,frontTextSize:this.frontTextSize,secondRowTextSize:this.secondRowTextSize,printHeight:this.frontPrintDepth,mapSideOffset:this.mapSideOffset,baseplateHeight:this.baseplateHeight,logoSize:this.logoSize}}downloadFile(e,i){const r=xh(this.state.getValue()),o=Hc(this.state.getValue()).unifiedFileMeta?.fileName,s=`${Lm.getNewFileName(o,ou(r))}.${i}`;BN.downloadData(e,s)}static{this.\u0275fac=function(i){return new(i||n)($(Zr),$(Vc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-export-3D-map-dialog"]],viewQuery:function(i,r){if(1&i&&(ti(ZHe,5),ti(JHe,5)),2&i){let o;an(o=ln())&&(r.rendererContainer=o.first),an(o=ln())&&(r.fileInput=o.first)}},inputs:{logoColor:"logoColor"},decls:84,vars:25,consts:[["rendererContainer",""],["slider",""],["fileInput",""],["color","primary"],[1,"cc-export-3D-map-dialog"],[1,"preview"],["appearance","outline",1,"cc-export-3D-map-dialog-content"],["appearance","outline"],["data-testid","selectPrinter",3,"selectionChange","valueChange","value"],["data-testid","selectedPrinter",3,"value"],["appearance","outlined"],[1,"slider-container"],["data-testid","onScaleChange","discrete","true","min","100","step","1",3,"change","max"],["matSliderThumb","",3,"ngModelChange","ngModel"],["data-testid","printSizeOverview"],["matInput","","data-testid","frontText",3,"ngModelChange","input","ngModel","placeholder"],[1,"cc-manual-visibility-content"],["data-testid","secondRowToggle",3,"change","checked"],["appearance","outline",3,"hidden"],["matInput","","data-testid","secondRowText",3,"ngModelChange","input","ngModel"],["data-testid","qrCodeToggle",3,"change","checked"],["matInput","","data-testid","qrCodeText",3,"ngModelChange","input","ngModel"],["type","file","accept",".svg",1,"cc-file-input",3,"change"],["mat-button","","title","Remove Logo Button",3,"click","hidden"],[1,"fa","fa-times"],[3,"hidden"],["mat-button","","title","Rotate Logo Button",3,"click"],[1,"fa","fa-rotate-right"],["mat-button","","title","Flip Logo Button",3,"click"],[1,"fa","fa-arrows-h"],[3,"onColorChange","hexColor","labels"],["align","end"],["mat-button","","title","Download 3MF Button",3,"click","disabled"],[1,"fa","fa-download"],["mat-button","","title","Download Stl Button",3,"click","disabled"],[1,"cc-printer-specs"]],template:function(i,r){if(1&i){const o=Dn();D(0,"mat-toolbar",3),ye(1,"3D Print CodeCharta Map"),U(),D(2,"div",4),xe(3,"div",5,0),D(5,"mat-dialog-content",6)(6,"mat-form-field",7)(7,"mat-label"),ye(8,"Printer preset"),U(),D(9,"mat-select",8),ze("selectionChange",function(){return Ot(o),Rt(r.onSelectedPrinterChange())}),ld("valueChange",function(a){return Ot(o),eu(r.selectedPrinter,a)||(r.selectedPrinter=a),Rt(a)}),D(10,"mat-select-trigger"),ye(11),U(),Or(12,tVe,4,6,"mat-option",9,qr),U()(),D(14,"mat-card",10)(15,"mat-card-header"),ye(16,"Scale:"),U(),D(17,"mat-card-content")(18,"div",11)(19,"mat-slider",12),ze("change",function(){return Ot(o),Rt(r.onScaleChange())}),D(20,"input",13,1),ld("ngModelChange",function(a){return Ot(o),eu(r.wantedWidth,a)||(r.wantedWidth=a),Rt(a)}),U()()(),D(22,"div",14)(23,"span"),ye(24),U(),xe(25,"br"),D(26,"span"),ye(27),U(),xe(28,"br"),D(29,"span"),ye(30),U()()()(),D(31,"mat-form-field",7)(32,"mat-label"),ye(33,"Bottom center label text"),U(),D(34,"input",15),ld("ngModelChange",function(a){return Ot(o),eu(r.frontText,a)||(r.frontText=a),Rt(a)}),ze("input",function(){return Ot(o),Rt(r.onFrontTextChange())}),U()(),D(35,"mat-card",10)(36,"mat-card-header"),ye(37,"Second row center text"),U(),D(38,"mat-card-content",16)(39,"mat-slide-toggle",17),ze("change",function(a){return Ot(o),Rt(r.onSecondRowVisibilityChange(a))}),ye(40," Show second row text "),U(),D(41,"mat-form-field",18)(42,"mat-label"),ye(43,"Text"),U(),D(44,"input",19),ld("ngModelChange",function(a){return Ot(o),eu(r.secondRow.currentText,a)||(r.secondRow.currentText=a),Rt(a)}),ze("input",function(){return Ot(o),Rt(r.onSecondRowTextChange())}),U()()()(),D(45,"mat-card",10)(46,"mat-card-header"),ye(47,"QR-Code"),U(),D(48,"mat-card-content",16)(49,"mat-slide-toggle",20),ze("change",function(a){return Ot(o),Rt(r.onQrCodeVisibilityChange(a))}),ye(50," Show QR-Code "),U(),D(51,"mat-form-field",18)(52,"mat-label"),ye(53,"QR-Code text"),U(),D(54,"input",21),ld("ngModelChange",function(a){return Ot(o),eu(r.qrCode.currentText,a)||(r.qrCode.currentText=a),Rt(a)}),ze("input",function(){return Ot(o),Rt(r.onQrCodeTextChange())}),U()()()(),D(55,"mat-card",10)(56,"mat-card-header"),ye(57,"Bottom left logo (SVG):"),U(),D(58,"mat-card-content")(59,"input",22,2),ze("change",function(a){return Ot(o),Rt(r.onFileSelected(a))}),U(),D(61,"button",23),ze("click",function(){return Ot(o),Rt(r.onRemoveLogo())}),D(62,"span"),xe(63,"i",24),ye(64," Remove Logo"),U()(),D(65,"div",25)(66,"button",26),ze("click",function(){return Ot(o),Rt(r.onRotateLogo())}),D(67,"span"),xe(68,"i",27),ye(69," Rotate Logo"),U()(),D(70,"button",28),ze("click",function(){return Ot(o),Rt(r.onFlipLogo())}),D(71,"span"),xe(72,"i",29),ye(73," Flip Logo"),U()(),D(74,"cc-labelled-color-picker",30),ze("onColorChange",function(a){return Ot(o),Rt(r.onLogoColorChange(a))}),U()()()()(),D(75,"mat-dialog-actions",31)(76,"button",32),ze("click",function(){return Ot(o),Rt(r.download3MFFile())}),D(77,"span"),xe(78,"i",33),ye(79," Download 3MF"),U()(),D(80,"button",34),ze("click",function(){return Ot(o),Rt(r.downloadStlFile())}),D(81,"span"),xe(82,"i",33),ye(83," Download minimal STL"),U()()()()}2&i&&(Q(9),ad("value",r.selectedPrinter),Q(2),sn(" ",r.selectedPrinter.name," "),Q(),Lr(r.printers),Q(7),_e("max",r.maxWidth),Q(),ad("ngModel",r.wantedWidth),Q(4),Jd("Width: ",(r.currentSize.x/10).toFixed(1),"cm (max. ",(r.selectedPrinter.x/10).toFixed(1),")"),Q(3),Jd("Depth: ",(r.currentSize.y/10).toFixed(1),"cm (max. ",(r.selectedPrinter.y/10).toFixed(1),")"),Q(3),Jd("Height: ",(r.currentSize.z/10).toFixed(1),"cm (max. ",(r.selectedPrinter.z/10).toFixed(1),")"),Q(4),ad("ngModel",r.frontText),_e("placeholder","CodeCharta"),Q(5),_e("checked",r.secondRow.isVisible),Q(2),_e("hidden",r.secondRow.isVisible),Q(3),ad("ngModel",r.secondRow.currentText),Q(5),_e("checked",r.qrCode.isVisible),Q(2),_e("hidden",r.qrCode.isVisible),Q(3),ad("ngModel",r.qrCode.currentText),Q(7),_e("hidden",!r.isFileSelected),Q(4),_e("hidden",!r.isFileSelected),Q(9),_e("hexColor",r.logoColor)("labels",fh(24,eVe)),Q(2),_e("disabled",!r.isPrintMeshLoaded),Q(4),_e("disabled",!r.isPrintMeshLoaded))},dependencies:[Md,Cd,Gm,JJ,du,cs,kc,ec,rx,_J,bJ,zm,qm,gee,fI,Cb,im,$0,X0,bN],styles:[".cc-printer-specs[_ngcontent-%COMP%]{color:#888}.cc-file-input[_ngcontent-%COMP%]{margin-top:16px}"]})}}return n})(),nVe=(()=>{class n{constructor(e,i,r){this.dialog=e,this.state=i,this.store=r}export3DMap(){this.state.getValue().dynamicSettings.colorMode!==hm.absolute?this.dialog.open(AA,{data:this.buildErrorDialog()}):this.dialog.open(Xne,{panelClass:"cc-export-3D-map-dialog"})}buildErrorDialog(){return{title:"Map could not be exported",message:'

    3D map can only be exported when color mode is set to absolute.
    You can change this under Color Metric Options or use "Change and continue" to directly change the color mode and continue.

    ',resolveErrorData:{buttonText:"Change and continue",onResolveErrorClick:()=>{this.store.dispatch(J0({value:hm.absolute})),this.store.select(Ree).pipe($o(1)).subscribe(s=>{s===hm.absolute&&setTimeout(()=>{this.dialog.open(Xne,{panelClass:"cc-export-3D-map-dialog"})},100)})}}}}static{this.\u0275fac=function(i){return new(i||n)($(Ns),$(Zr),$($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-export-3d-map-button"]],decls:1,vars:1,consts:[["title","Download 3MF code file",3,"click","icon"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.export3DMap()}),U()),2&i&&_e("icon","fa fa-print")},dependencies:[eg],encapsulation:2})}}return n})();const aVe=Kt(xh,n=>xW(n)),Kne=Kt(Xs,bb,Nm,ex,(n,t,e,i)=>((n,t)=>t.every(e=>((n,t)=>n.some(e=>e.name===t))(n,e)))(n.nodeMetricData,[t,e,i])),lVe=Kt(lc,n=>(n=>Object.entries(n).every(([t,e])=>((n,t)=>"edgeMetric"===n||null!==t&&("object"!=typeof t||Object.values(t).every(e=>null!==e)))(t,e)))(n)),cVe=(Kt(Xs,aVe,Kne,lVe,(n,t,e,i)=>!(null===n.nodeMetricData||!t||!e||!i)),n=>n.some(t=>"rloc"===t.name)?"rloc":"unary"),dVe=["rloc","real_lines_of_code","loc","lines_of_code","lines","statements","functions"],Yne=["complexity","mcc","cognitive_complexity","sonar_complexity","sonar_cognitive_complexity","max_nesting_level","indentation_level"];function uVe(n){return n.some(t=>t.maxValue>0)}let mVe=(()=>{class n{constructor(e){this.store=e,this.resetChosenDistributionMetric$=Ao(()=>this.store.select(Xs).pipe(Qe(i=>i.nodeMetricData),qi(uVe),hd(this.store.select(Kne)),qi(([,i])=>!i),Dr(([i])=>{Zne(this.store,i)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Zne(n,t){n.dispatch(T1({value:cVe(t)}));let[e,i,r]=function fVe(n){const t=[],e={AreaMetric:dVe,HeightMetric:Yne,ColorMetric:Yne},i=new Set(n.map(r=>r.name));for(const r in e)for(const o of e[r])if(i.has(o)){t.push(o);break}return t}(t);(!e||!i||!r)&&([e,i,r]=function hVe(n,t){const e=[];let i;for(const r of n)if(r.maxValue&&(e.push(r.name),i=r.name,0==--t))return e;if(!i)throw new Error("there are no metrics available");for(;t-- >0;)e.push(i);return e}(t,3)),n.dispatch(vh({value:e})),n.dispatch(wh({value:i})),n.dispatch(pd({value:r}))}let pVe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.httpClient=i,this.loadFileService=r,this.loadInitialFileService=o,this.urlUtils=new wX(this.httpClient)}resetMap(){var e=this;return k(function*(){if(yield function hbe(){return eR.apply(this,arguments)}(),e.store.dispatch(xb({value:kee})),e.loadInitialFileService.checkFileQueryParameterPresent())try{const r=yield e.urlUtils.getFileDataFromQueryParam();e.loadFileService.loadFiles(r),e.loadInitialFileService.setRenderStateFromUrl()}catch{e.loadFileService.loadFiles([nS,iS])}else e.loadFileService.loadFiles([nS,iS]);e.resetMetrics()})()}resetMetrics(){this.store.select(Xs).pipe(ox(),Dr(e=>{Zne(this.store,e.nodeMetricData)})).subscribe()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Zy),$(f_),$(D4))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-confirm-reset-map-dialog"]],decls:12,vars:0,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"dialog-content"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","","cdkFocusInitial","",3,"click"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Confirm reset map to default"),U()(),D(3,"mat-dialog-content")(4,"div",1)(5,"p"),ye(6,"Uploaded maps, selected metrics and settings are reset to default"),U()()(),D(7,"mat-dialog-actions")(8,"button",2),ye(9,"No"),U(),D(10,"button",3),ze("click",function(){return r.resetMap()}),ye(11,"Yes"),U()())},dependencies:[cs,Jl,kc,ec,zm],encapsulation:2})}}return n})(),AVe=(()=>{class n{constructor(e){this.dialog=e}showConfirmResetStateDialog(){this.dialog.open(pVe,{panelClass:"cc-confirm-reset-map-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-reset-map-button"]],decls:1,vars:1,consts:[["title","Reset map to default",3,"click","icon"]],template:function(i,r){1&i&&(D(0,"cc-action-icon",0),ze("click",function(){return r.showConfirmResetStateDialog()}),U()),2&i&&_e("icon","fa fa-undo")},dependencies:[eg],encapsulation:2})}}return n})();const gVe=Kt(pb,n=>`linear-gradient(${n.positiveDelta} 50%, ${n.negativeDelta} 50%)`),OU="alertOnIncompatibleMaps";let _Ve=(()=>{class n{constructor(e){this.data=e}setDoNotAlertOnIncompatibleMaps(e){localStorage.setItem(OU,JSON.stringify(!e.checked))}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-incompatible-maps-dialog"]],decls:22,vars:4,consts:[["color","primary"],[1,"cc-files"],[3,"change"],["align","end"],["href","https://maibornwolff.github.io/codecharta/docs/structure-modifier","target","_blank","rel","noopener noreferrer"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0),ye(1,"Incompatible Maps"),U(),D(2,"mat-dialog-content")(3,"p"),ye(4,"The selected maps use different complexity metrics and are therefore incompatible:"),U(),D(5,"p",1),ye(6),U(),D(7,"p"),ye(8," The file "),D(9,"b"),ye(10),U(),ye(11," is using the "),D(12,"b"),ye(13,"mcc metric"),U(),ye(14," and the other one complexity. Please migrate. "),U(),D(15,"mat-checkbox",2),ze("change",function(s){return r.setDoNotAlertOnIncompatibleMaps(s)}),ye(16,"Don't show again"),U()(),D(17,"mat-dialog-actions",3)(18,"a",4),ye(19,"Know more"),U(),D(20,"button",5),ye(21,"CLOSE"),U()()),2&i&&(Q(6),Jd("",r.data.referenceFileName," \u2192 ",r.data.comparisonFileName,""),Q(4),br(r.data.fileWithMccMetric),Q(10),_e("mat-dialog-close",!0))},dependencies:[cs,Jl,kc,ec,Xm,zm],styles:["p[_ngcontent-%COMP%]{font-size:18px}.cc-files[_ngcontent-%COMP%]{text-align:center}"]})}}return n})();function bVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),qe(2,"removeExtension"),U()),2&n){const e=t.$implicit;_e("value",e.file),Q(),sn(" ",rt(2,2,e.file.fileMeta.fileName)," ")}}function vVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),qe(2,"removeExtension"),U()),2&n){const e=t.$implicit;_e("value",e.file),Q(),sn(" ",rt(2,2,e.file.fileMeta.fileName)," ")}}let yVe=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.files$=this.store.select(xh),this.referenceFile$=this.store.select(J$),this.comparisonFile$=this.files$.pipe(Qe(r=>r.find(o=>o.selectedAs===er.Comparison)?.file)),this.possibleComparisonFiles$=this.files$.pipe(Qe(r=>r.filter(o=>o.selectedAs!==er.Reference))),this.pictogramBackground$=this.store.select(gVe),this.referenceFile$.subscribe(r=>this.referenceFile=r),this.comparisonFile$.subscribe(r=>this.comparisonFile=r)}handleDeltaReferenceFileChange(e){this.store.dispatch(uR({file:e})),this.showAlertWhenFilesAreIncompatible()}handleDeltaComparisonFileChange(e){this.store.dispatch(dR({file:e})),this.showAlertWhenFilesAreIncompatible()}showAlertWhenFilesAreIncompatible(){this.alertOnIncompatibleMaps()&&this.areMapsIncompatible()&&this.openIncompatibleMapsDialog()}alertOnIncompatibleMaps(){return!localStorage.getItem(OU)||!0===JSON.parse(localStorage.getItem(OU))}openIncompatibleMapsDialog(){this.dialog.open(_Ve,{panelClass:"cc-incompatible-maps-dialog",data:{referenceFileName:this.getFileName(this.referenceFile),comparisonFileName:this.getFileName(this.comparisonFile),fileWithMccMetric:this.getFileWithMccMetric(this.referenceFile,this.comparisonFile)}})}getFileName(e){return e?.fileMeta.fileName}hasMccMetric(e){return e?.map.children.some(i=>i.attributes.mcc)}getFileWithMccMetric(e,i){return this.hasMccMetric(e)?this.getFileName(e):this.hasMccMetric(i)?this.getFileName(i):void 0}switchReferenceAndComparison(){this.store.dispatch(cR())}areMapsIncompatible(){if(this.referenceFile&&this.comparisonFile)return this.hasMccMetric(this.referenceFile)!==this.hasMccMetric(this.comparisonFile)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel-delta-selector"]],decls:16,vars:17,consts:[[1,"delta-select-wrapper"],["panelClass","cc-file-select",1,"delta-select",3,"selectionChange","value"],[3,"value"],["title","Switch reference and comparison file",1,"reference-comparison-switch",3,"click","disabled"],[1,"fa","fa-arrows-h"],["placeholder","select comparison file","panelClass","cc-file-select",1,"delta-select",3,"selectionChange","value"],[1,"pictogram"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"mat-select",1),qe(2,"async"),ze("selectionChange",function(s){return r.handleDeltaReferenceFileChange(s.value)}),Or(3,bVe,3,4,"mat-option",2,qr),qe(5,"async"),U(),D(6,"button",3),qe(7,"async"),ze("click",function(){return r.switchReferenceAndComparison()}),xe(8,"i",4),U(),D(9,"mat-select",5),qe(10,"async"),ze("selectionChange",function(s){return r.handleDeltaComparisonFileChange(s.value)}),Or(11,vVe,3,4,"mat-option",2,qr),qe(13,"async"),U(),xe(14,"div",6),qe(15,"async"),U()),2&i&&(Q(),_e("value",rt(2,5,r.referenceFile$)),Q(2),Lr(rt(5,7,r.files$)),Q(3),_e("disabled",void 0===rt(7,9,r.comparisonFile$)),Q(3),_e("value",rt(10,11,r.comparisonFile$)),Q(2),Lr(rt(13,13,r.possibleComparisonFiles$)),Q(3),zi("background",rt(15,15,r.pictogramBackground$)))},dependencies:[Gm,du,Kn,sN],styles:[".delta-select-wrapper[_ngcontent-%COMP%]{display:flex;gap:12px}.delta-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}.reference-comparison-switch[_ngcontent-%COMP%]{background-color:#1b9cfc;margin:0;height:24px;width:36px;border-radius:5px}.reference-comparison-switch[disabled][_ngcontent-%COMP%]{background-color:#ccc}.reference-comparison-switch[_ngcontent-%COMP%]:hover{background-color:#0374c9}.reference-comparison-switch[_ngcontent-%COMP%]:hover[disabled]{background-color:#ccc}.reference-comparison-switch[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{vertical-align:middle;color:#fff}.pictogram[_ngcontent-%COMP%]{display:inline-flex;width:10px;margin-right:5px;margin-left:5px;height:22px;border-radius:2px;align-self:center;vertical-align:bottom}"]})}}return n})(),wVe=(()=>{class n{constructor(e){this.store=e}onRemoveFile(e,i){this.store.dispatch(oR({fileName:e})),i.stopPropagation(),i.preventDefault()}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-remove-file-button"]],inputs:{filename:"filename"},decls:2,vars:0,consts:[["title","Remove map",3,"click"],[1,"fa","fa-trash","delete-symbol"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(s){return r.onRemoveFile(r.filename,s)}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{padding:8px 10px}button[_ngcontent-%COMP%]:hover{border-radius:50%}"]})}}return n})();function xVe(n,t){1&n&&xe(0,"cc-remove-file-button",4),2&n&&_e("filename",Le().$implicit.file.fileMeta.fileName)}function CVe(n,t){if(1&n&&(D(0,"mat-option",3),ye(1),qe(2,"removeExtension"),pt(3,xVe,1,1,"cc-remove-file-button",4),U()),2&n){const e=t.$implicit,i=Le();_e("value",e.file),Q(),sn(" ",rt(2,3,e.file.fileMeta.fileName)," "),Q(2),Tt(3,i.fileStates.length>1?3:-1)}}let MVe=(()=>{class n{constructor(e){this.store=e,this.fileStates=[],this.selectedFilesInUI=[],this.selectedFilesInStore=[],this.filesSubscription=this.store.select(xh).subscribe(i=>{this.fileStates=i,this.selectedFilesInStore=i.filter(r=>r.selectedAs===er.Partial).map(r=>r.file),this.selectedFilesInUI=this.selectedFilesInStore})}ngOnDestroy(){this.filesSubscription.unsubscribe()}handleSelectedFilesChanged(e){this.selectedFilesInUI=e,e.length>0&&this.store.dispatch(P1({files:e}))}handleOpenedChanged(e){e||(this.selectedFilesInUI=this.selectedFilesInStore)}handleSelectZeroFiles(){this.selectedFilesInUI=[]}handleInvertSelectedFiles(){this.selectedFilesInUI.length===this.fileStates.length?this.selectedFilesInUI=[]:this.store.dispatch(lR())}handleSelectAllFiles(){this.store.dispatch(aR())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel-file-selector"]],decls:10,vars:1,consts:[["panelClass","cc-file-select","multiple","",1,"cc-standard-select",3,"valueChange","selectionChange","openedChange","value"],[1,"cc-file-selection-actions"],[1,"cc-file-select-action-button",3,"click"],[1,"cc-file-name",3,"value"],[3,"filename"]],template:function(i,r){1&i&&(D(0,"mat-select",0),ld("valueChange",function(s){return eu(r.selectedFilesInUI,s)||(r.selectedFilesInUI=s),s}),ze("selectionChange",function(s){return r.handleSelectedFilesChanged(s.value)})("openedChange",function(s){return r.handleOpenedChanged(s)}),D(1,"div",1)(2,"button",2),ze("click",function(){return r.handleSelectAllFiles()}),ye(3,"All"),U(),D(4,"button",2),ze("click",function(){return r.handleSelectZeroFiles()}),ye(5,"None"),U(),D(6,"button",2),ze("click",function(){return r.handleInvertSelectedFiles()}),ye(7,"Invert"),U()(),Or(8,CVe,4,5,"mat-option",3,qr),U()),2&i&&(ad("value",r.selectedFilesInUI),Q(8),Lr(r.fileStates))},dependencies:[Gm,du,wVe,sN],styles:[".cc-standard-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}"]})}}return n})();function LU(){return fe((n,t)=>{let e,i=!1;n.subscribe(De(t,r=>{const o=e;e=r,i&&t.next([o,r]),i=!0}))})}let Jne=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.lastSetFilesOfPreviousMode=[],this.subscription=this.store.select(xh).pipe(LU(),qi(([r,o])=>ou(r)!==ou(o)||0===o.length),Dr(([r,o])=>{this.lastSetFilesOfPreviousMode=0===o.length?o:r})).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}toggle(){if(0===this.lastSetFilesOfPreviousMode.length||ou(this.lastSetFilesOfPreviousMode)){const i=xh(this.state.getValue());this.lastSetFilesOfPreviousMode=this.filterNoneExisting(i,this.lastSetFilesOfPreviousMode);const r=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===er.Reference)??i.find(s=>s.selectedAs===er.Partial),o=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===er.Comparison);this.store.dispatch(g2({referenceFile:r.file,comparisonFile:o?.file}))}else this.store.dispatch(B1({value:this.lastSetFilesOfPreviousMode}))}filterNoneExisting(e,i){return i.filter(r=>e.find(o=>c2(o.file,r.file)))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),EVe=(()=>{class n{constructor(e,i){this.store=e,this.fileSelectionModeService=i,this.isDeltaState$=this.store.select(Hm)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Jne))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel-state-buttons"]],decls:10,vars:14,consts:[["mat-button","",1,"state-selector-button","left",3,"click","disabled"],[1,"text"],["mat-button","",1,"state-selector-button","right",3,"click","disabled"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),qe(2,"async"),ze("click",function(){return r.fileSelectionModeService.toggle()}),D(3,"span",1),ye(4,"Standard"),U()(),D(5,"button",2),qe(6,"async"),qe(7,"async"),ze("click",function(){return r.fileSelectionModeService.toggle()}),D(8,"span",1),ye(9,"Delta"),U()()),2&i&&(Un("current",!rt(1,6,r.isDeltaState$)),_e("disabled",!rt(2,8,r.isDeltaState$)),Q(5),Un("current",rt(6,10,r.isDeltaState$)),_e("disabled",rt(7,12,r.isDeltaState$)))},dependencies:[cs,Kn],styles:[".state-selector-button[_ngcontent-%COMP%]{height:24px;width:66px;margin:0;padding:0;background-color:#fff;font-size:10pt}.state-selector-button[_ngcontent-%COMP%]:hover{background-color:#e6e6e6f5}.state-selector-button.left[_ngcontent-%COMP%]{border-radius:5px 0 0 5px}.state-selector-button.right[_ngcontent-%COMP%]{border-radius:0 5px 5px 0}.state-selector-button.current[_ngcontent-%COMP%]{background-color:#1b9cfc;color:#fff}.state-selector-button.current[_ngcontent-%COMP%]:hover{background-color:#1b9cfc}"]})}}return n})();function SVe(n,t){1&n&&xe(0,"cc-file-panel-file-selector")}function TVe(n,t){1&n&&xe(0,"cc-file-panel-delta-selector")}let IVe=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Hm)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-panel"]],decls:4,vars:3,template:function(i,r){1&i&&(xe(0,"cc-file-panel-state-buttons"),pt(1,SVe,1,0,"cc-file-panel-file-selector"),qe(2,"async"),pt(3,TVe,1,0)),2&i&&(Q(),Tt(1,rt(2,1,r.isDeltaState$)?3:1))},dependencies:[yVe,MVe,EVe,Kn],styles:["[_nghost-%COMP%]{display:flex;gap:inherit}.hidden[_nghost-%COMP%]{display:none}"]})}}return n})();const FVe=Kt(tee,n=>n&&{path:n.path.slice(1).split("/"),isFile:"File"===n.type});function DVe(n,t){if(1&n&&xe(0,"i",2),2&n){const e=Le(2);Un("fa-file-o",e.isFile)("fa-folder",!e.isFile)}}function kVe(n,t){1&n&&xe(0,"i",1)}function BVe(n,t){if(1&n&&(D(0,"span"),pt(1,DVe,1,4,"i",0),D(2,"span"),ye(3),U(),pt(4,kVe,1,0,"i",1),U()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;Q(),Tt(1,i===r-1?1:-1),Q(),Un("bold",i===r-1),Q(),br(e),Q(),Tt(4,i!==r-1?4:-1)}}function PVe(n,t){1&n&&Or(0,BVe,5,5,"span",null,qr),2&n&&Lr(t.path)}let RVe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodePathPanelData$=this.store.select(FVe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-hovered-node-path-panel"]],decls:2,vars:3,consts:[[1,"fa",3,"fa-file-o","fa-folder"],[1,"fa","fa-angle-right"],[1,"fa"]],template:function(i,r){if(1&i&&(pt(0,PVe,2,0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.hoveredNodePathPanelData$))?0:-1,o)}},dependencies:[Kn],styles:["[_nghost-%COMP%]{width:100%;min-width:400px;display:inline-block;vertical-align:middle;margin:0 8px;font-size:10pt;overflow:hidden;white-space:nowrap}[_nghost-%COMP%] .bold[_ngcontent-%COMP%]{font-weight:600}[_nghost-%COMP%] i[_ngcontent-%COMP%]{margin:0 4px}"]})}}return n})();const OVe=Kt(so,n=>n.isLoadingMap),LVe=["determinateSpinner"];function NVe(n,t){if(1&n&&(Ul(),D(0,"svg",11),xe(1,"circle",12),U()),2&n){const e=Le();pi("viewBox",e._viewBox()),Q(),zi("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),pi("r",e._circleRadius())}}const UVe=new dt("mat-progress-spinner-default-options",{providedIn:"root",factory:function HVe(){return{diameter:eie}}}),eie=100;let tie=(()=>{class n{get color(){return this._color||this._defaultColor}set color(e){this._color=e}constructor(e,i,r){this._elementRef=e,this._defaultColor="primary",this._value=0,this._diameter=eie,this._noopAnimations="NoopAnimations"===i&&!!r&&!r._forceAnimations,this.mode="mat-spinner"===e.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",r&&(r.color&&(this.color=this._defaultColor=r.color),r.diameter&&(this.diameter=r.diameter),r.strokeWidth&&(this.strokeWidth=r.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(_s,8),$(UVe))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(1&i&&ti(LVe,5),2&i){let o;an(o=ln())&&(r._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){2&i&&(pi("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===r.mode?r.value:null)("mode",r.mode),cl("mat-"+r.color),zi("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),Un("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===r.mode))},inputs:{color:"color",mode:"mode",value:[Ct.HasDecoratorInputTransform,"value","value",ba],diameter:[Ct.HasDecoratorInputTransform,"diameter","diameter",ba],strokeWidth:[Ct.HasDecoratorInputTransform,"strokeWidth","strokeWidth",ba]},exportAs:["matProgressSpinner"],standalone:!0,features:[rs,Nr],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(1&i&&(pt(0,NVe,2,8,"ng-template",null,0,jf),D(2,"div",2,1),Ul(),D(4,"svg",3),xe(5,"circle",4),U()(),Yg(),D(6,"div",5)(7,"div",6)(8,"div",7),L0(9,8),U(),D(10,"div",9),L0(11,8),U(),D(12,"div",10),L0(13,8),U()()()),2&i){const o=Lo(1);Q(4),pi("viewBox",r._viewBox()),Q(),zi("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),pi("r",r._circleRadius()),Q(4),_e("ngTemplateOutlet",o),Q(2),_e("ngTemplateOutlet",o),Q(2),_e("ngTemplateOutlet",o)}},dependencies:[zy],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}}return n})(),nie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fr]})}}return n})(),QVe=(()=>{class n{constructor(e){this.isLoadingMap$=e.select(OVe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-loading-map-progress-spinner"]],decls:2,vars:4,consts:[["id","loading-gif-map","mode","indeterminate","diameter","22","title","Rendering map"]],template:function(i,r){1&i&&(xe(0,"mat-progress-spinner",0),qe(1,"async")),2&i&&zi("visibility",rt(1,2,r.isLoadingMap$)?"visible":"hidden")},dependencies:[tie,Kn],styles:["[_nghost-%COMP%]{display:inline-block;vertical-align:middle}"]})}}return n})();const zVe=Kt(so,n=>n.isPresentationMode);let qVe=(()=>{class n{constructor(e,i){this.store=e,this.elementReference=i,this.isPresentationModeEnabled$=this.store.select(zVe)}setPresentationModeEnabled(e){this.store.dispatch(KE({value:e.checked})),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-program-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("mat-mdc-slide-toggle-focused")}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Nn))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-presentation-mode-button"]],decls:6,vars:6,consts:[["aria-label","Presentation Mode Toggle",1,"cc-presentation-mode-button",3,"change","checked","title"],[1,"presentation-mode-icon","fa","fa-television"]],template:function(i,r){1&i&&(D(0,"mat-slide-toggle",0),qe(1,"async"),qe(2,"async"),ze("change",function(s){return r.setPresentationModeEnabled(s)}),xe(3,"i",1),D(4,"span"),ye(5,"Presentation Mode"),U()()),2&i&&_e("checked",rt(1,2,r.isPresentationModeEnabled$))("title",rt(2,4,r.isPresentationModeEnabled$)?"Disable flashlight hover effect":"Enable flashlight hover effect")},dependencies:[Cb,Kn],styles:["i[_ngcontent-%COMP%]{margin-right:4px}"]})}}return n})();const GVe=Kt(so,n=>n.experimentalFeaturesEnabled),WVe=Kt(so,n=>n.hideFlatBuildings),iie=Kt(so,n=>n.resetCameraIfNewFileIsLoaded),rie=Kt(so,n=>n.layoutAlgorithm),$Ve=Kt(so,n=>n.maxTreeMapFiles);function jVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),U()),2&n){const e=t.$implicit;_e("value",e),Q(),sn(" ",e," ")}}function XVe(n,t){if(1&n&&(xe(0,"cc-slider",3),qe(1,"async")),2&n){const e=Le();_e("label","Maximum TreeMap Files")("min",1)("max",1e3)("value",rt(1,5,e.maxTreeMapFiles$))("onChange",e.handleChangeMaxTreeMapFiles)}}let KVe=(()=>{class n{constructor(e){this.store=e,this.layoutAlgorithms=Object.values(hu),this.layoutAlgorithm$=this.store.select(rie),this.maxTreeMapFiles$=this.store.select($Ve),this.handleChangeMaxTreeMapFiles=Eu(i=>{this.store.dispatch(x1({value:i}))},400)}handleSelectedLayoutAlgorithmChanged(e){this.store.dispatch(w1({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-layout-selection"]],decls:9,vars:6,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"],[1,"cc-tree-maps-max-tree-map-files",3,"label","min","max","value","onChange"]],template:function(i,r){1&i&&(D(0,"mat-form-field",0)(1,"mat-label"),ye(2,"Map Layout"),U(),D(3,"mat-select",1),qe(4,"async"),ze("selectionChange",function(s){return r.handleSelectedLayoutAlgorithmChanged(s)}),Or(5,jVe,2,2,"mat-option",2,qr),U()(),pt(7,XVe,2,7,"cc-slider",3),qe(8,"async")),2&i&&(Q(3),_e("value",rt(4,2,r.layoutAlgorithm$)),Q(2),Lr(r.layoutAlgorithms),Q(2),Tt(7,"TreeMapStreet"===rt(8,4,r.layoutAlgorithm$)?7:-1))},dependencies:[Md,Cd,Gm,du,mI,Kn],encapsulation:2})}}return n})();function YVe(n,t){if(1&n&&(D(0,"mat-option",2),ye(1),U()),2&n){const e=t.$implicit;_e("value",e),Q(),sn(" ",e," ")}}let ZVe=(()=>{class n{constructor(e){this.store=e,this.sharpnessModes=Object.values(gA),this.sharpnessMode$=this.store.select(xX)}handleSelectedSharpnessModeChanged(e){this.store.dispatch(C1({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-display-quality-selection"]],decls:7,vars:3,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(D(0,"mat-form-field",0)(1,"mat-label"),ye(2,"Display Quality"),U(),D(3,"mat-select",1),qe(4,"async"),ze("selectionChange",function(s){return r.handleSelectedSharpnessModeChanged(s)}),Or(5,YVe,2,2,"mat-option",2,qr),U()()),2&i&&(Q(3),_e("value",rt(4,1,r.sharpnessMode$)),Q(2),Lr(r.sharpnessModes))},dependencies:[Md,Cd,Gm,du,Kn],encapsulation:2})}}return n})();const JVe=()=>["appSettings.hideFlatBuildings","appSettings.isWhiteBackground","appSettings.resetCameraIfNewFileIsLoaded","appSettings.layoutAlgorithm","appSettings.maxTreeMapFiles"];let eQe=(()=>{class n{constructor(e){this.store=e,this.screenshotToClipboardEnabled$=this.store.select(cne),this.experimentalFeaturesEnabled$=this.store.select(GVe),this.isWhiteBackground$=this.store.select(PZ),this.hideFlatBuildings$=this.store.select(WVe),this.resetCameraIfNewFileIsLoaded$=this.store.select(iie)}handleResetCameraIfNewFileIsLoadedChanged(e){this.store.dispatch(JE({value:e.checked}))}handleHideFlatBuildingsChanged(e){this.store.dispatch(_1({value:e.checked}))}handleIsWhiteBackgroundChanged(e){this.store.dispatch(y1({value:e.checked}))}handleExperimentalFeaturesEnabledChanged(e){this.store.dispatch(jE({value:e.checked}))}handleScreenshotToClipboardEnabledChanged(e){this.store.dispatch($E({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-global-configuration-dialog"]],decls:37,vars:17,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"cc-global-configuration-dialog-content"],[3,"change","checked"],["title","Current experimental features:\nDynamic Floor Label Height: Raises folder labels further up to reduce flickering on large maps (Needs site refresh)",3,"change","checked"],[1,"fa","fa-info-circle"],["tooltip","Reset global settings to their defaults","label","Reset global settings",3,"settingsKeys"],[1,"cc-global-configuration-links-list"],["href","https://github.com/MaibornWolff/codecharta/blob/main/README.md","target","_blank","rel","noopener noreferrer",1,"weblink"],[1,"fa","fa-external-link","icon-link"],["href","https://github.com/MaibornWolff/codecharta/","target","_blank","rel","noopener noreferrer",1,"weblink"],["href","https://github.com/MaibornWolff/codecharta/wiki","target","_blank","rel","noopener noreferrer",1,"weblink"],["align","end"],["mat-flat-button","","mat-dialog-close",""]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0)(1,"h2"),ye(2,"Global Configuration"),U()(),D(3,"mat-dialog-content")(4,"div",1),xe(5,"cc-map-layout-selection")(6,"cc-display-quality-selection"),D(7,"mat-slide-toggle",2),qe(8,"async"),ze("change",function(s){return r.handleHideFlatBuildingsChanged(s)}),ye(9," Hide Flattened Buildings "),U(),D(10,"mat-slide-toggle",2),qe(11,"async"),ze("change",function(s){return r.handleResetCameraIfNewFileIsLoadedChanged(s)}),ye(12," Reset Camera when changing map "),U(),D(13,"mat-slide-toggle",2),qe(14,"async"),ze("change",function(s){return r.handleIsWhiteBackgroundChanged(s)}),ye(15," White Background "),U(),D(16,"mat-slide-toggle",3),qe(17,"async"),ze("change",function(s){return r.handleExperimentalFeaturesEnabledChanged(s)}),ye(18," Enable Experimental Features "),xe(19,"i",4),U(),D(20,"mat-slide-toggle",2),qe(21,"async"),ze("change",function(s){return r.handleScreenshotToClipboardEnabledChanged(s)}),ye(22," Screenshot to clipboard "),U(),xe(23,"cc-reset-settings-button",5),D(24,"div",6)(25,"a",7),xe(26,"em",8),ye(27,"How-to "),U(),D(28,"a",9),xe(29,"em",8),ye(30,"Github "),U(),D(31,"a",10),xe(32,"em",8),ye(33,"Wiki "),U()()()(),D(34,"mat-dialog-actions",11)(35,"button",12),ye(36,"Close"),U()()),2&i&&(Q(7),_e("checked",rt(8,6,r.hideFlatBuildings$)),Q(3),_e("checked",rt(11,8,r.resetCameraIfNewFileIsLoaded$)),Q(3),_e("checked",rt(14,10,r.isWhiteBackground$)),Q(3),_e("checked",rt(17,12,r.experimentalFeaturesEnabled$)),Q(4),_e("checked",rt(21,14,r.screenshotToClipboardEnabled$)),Q(3),_e("settingsKeys",fh(16,JVe)))},dependencies:[cs,Jl,kc,ec,zm,Cb,fx,KVe,ZVe,Kn],styles:[".cc-global-configuration-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:26px}.cc-global-configuration-links-list[_ngcontent-%COMP%]{display:flex;gap:16px}.cc-global-configuration-links-list[_ngcontent-%COMP%] .weblink[_ngcontent-%COMP%]{display:block;color:#000000de;text-decoration:none}.cc-global-configuration-links-list[_ngcontent-%COMP%] .weblink[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{margin:8px}"]})}}return n})(),tQe=(()=>{class n{constructor(e){this.dialog=e}showGlobalConfiguration(){this.dialog.open(eQe,{panelClass:"cc-global-configuration-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-global-configuration-button"]],decls:4,vars:1,consts:[["mat-button","","title","Global Configuration",3,"click"],[3,"icon"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.showGlobalConfiguration()}),D(1,"span"),ye(2,"Global Configuration"),U(),xe(3,"cc-action-icon",1),U()),2&i&&(Q(3),_e("icon","fa fa-cog"))},dependencies:[cs,eg],styles:["button[_ngcontent-%COMP%]{margin:0}button[_ngcontent-%COMP%] cc-action-icon[_ngcontent-%COMP%]{margin-left:12px}button[_ngcontent-%COMP%]:hover cc-action-icon[_ngcontent-%COMP%]{background-color:#0374c9}span[_ngcontent-%COMP%]{font-size:10pt}"]})}}return n})();function nQe(n,t){1&n&&xe(0,"cc-file-panel")}function iQe(n,t){1&n&&xe(0,"cc-hovered-node-path-panel")}let rQe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodeId$=this.store.select(Yw)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-tool-bar"]],decls:12,vars:3,consts:[[1,"right-aligned"]],template:function(i,r){1&i&&(xe(0,"cc-upload-files-button")(1,"cc-screenshot-button")(2,"cc-copy-to-clipboard-button")(3,"cc-export-3d-map-button")(4,"cc-reset-map-button"),pt(5,nQe,1,0,"cc-file-panel"),qe(6,"async"),pt(7,iQe,1,0),D(8,"div",0),xe(9,"cc-loading-map-progress-spinner")(10,"cc-presentation-mode-button")(11,"cc-global-configuration-button"),U()),2&i&&(Q(5),Tt(5,null===rt(6,1,r.hoveredNodeId$)?5:7))},dependencies:[M9e,z9e,J9e,nVe,AVe,IVe,RVe,QVe,qVe,tQe,Kn],styles:["[_nghost-%COMP%]{display:flex;gap:8px;padding-left:8px;align-items:center;background-color:#f0f0f0;height:35px;border-bottom:1px solid #cdcdcd}[_nghost-%COMP%] .right-aligned[_ngcontent-%COMP%]{position:absolute;right:4px;display:inline-flex;align-items:center;width:400px;justify-content:space-between}"]})}}return n})(),oie=(()=>{class n{static{this.NO_EXTENSION="None"}static{this.OTHER_EXTENSION="other"}static{this.OTHER_GROUP_THRESHOLD_VALUE=3}static getMetricDistribution(e,i){if(!e)return[];const r=new Map;let o=0;for(const a of yo(e))if(No(a)&&!a.data.isExcluded){const l=a.data.attributes[i],c=n.estimateFileExtension(a.data.name),d=r.get(c);o+=l,d?d.absoluteMetricValue+=l:r.set(c,n.getDistributionObject(c,l))}if(0===o)return[n.getNoneExtension()];let s=[];for(const a of r.values())0!==a.absoluteMetricValue&&(a.relativeMetricValue=100*a.absoluteMetricValue/o,s.push(a));return s.sort((a,l)=>l.absoluteMetricValue-a.absoluteMetricValue),s=n.getMetricDistributionWithOthers(s),s.length>0?s:[n.getNoneExtension()]}static getMetricDistributionWithOthers(e){const i=n.getOtherExtension(),r=[];for(const o of e)o.relativeMetricValue>n.OTHER_GROUP_THRESHOLD_VALUE?r.push(o):(i.absoluteMetricValue+=o.absoluteMetricValue,i.relativeMetricValue+=o.relativeMetricValue);return i.relativeMetricValue>0&&r.push(i),r}static getOtherExtension(){return{fileExtension:n.OTHER_EXTENSION,absoluteMetricValue:0,relativeMetricValue:0,color:n.getColor(n.OTHER_EXTENSION)}}static getDistributionObject(e,i){return{fileExtension:e,absoluteMetricValue:i,relativeMetricValue:0,color:n.getColor(e)}}static estimateFileExtension(e){const i=e.lastIndexOf(".");return i>0&&i!==e.length?e.slice(i+1).toLowerCase():n.NO_EXTENSION}static getNoneExtension(){return{fileExtension:n.NO_EXTENSION,absoluteMetricValue:null,relativeMetricValue:100,color:n.getColor(n.NO_EXTENSION)}}static getColor(e){if(e===n.NO_EXTENSION||e===n.OTHER_EXTENSION)return"#676867";let i=0;for(let r=0;rn.distributionMetric),oQe=Kt(Hc,sie,(n,t)=>oie.getMetricDistribution(n.unifiedMapNode,t));let sQe=(()=>{class n{constructor(e){this.store=e,this.distributionMetric$=this.store.select(sie)}handleDistributionMetricChanged(e){this.store.dispatch(T1({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-distribution-metric-chooser"]],decls:3,vars:5,consts:[[1,"fa","fa-pie-chart"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"i",0)(1,"cc-metric-chooser",1),qe(2,"async")),2&i&&(Q(),_e("selectedMetricName",rt(2,3,r.distributionMetric$))("searchPlaceholder","Distribution Metric (highest value)")("handleMetricChanged",r.handleDistributionMetricChanged))},dependencies:[ux,Kn],styles:["[_nghost-%COMP%]{width:210px;display:flex;align-items:center;font-size:12px;gap:6px;margin-left:5px;margin-right:5px}"]})}}return n})();function aQe(n,t){if(1&n){const e=Dn();D(0,"span",7),ze("click",function(){return Ot(e),Rt(Le().toggleShowAbsoluteValues())}),D(1,"div",8),ze("mouseover",function(){const r=Ot(e).$implicit;return Rt(Le().onHoverFileExtensionBar(r.fileExtension))})("mouseleave",function(){return Ot(e),Rt(Le().onUnhoverFileExtensionBar())}),ye(2),U()()}if(2&n){const e=t.$implicit,i=Le();zi("width",e.relativeMetricValue+"%")("background",e.color),Q(),Ua("title",e.fileExtension.toString()+" "+(i.showAbsoluteValues?e.absoluteMetricValue.toFixed(0):e.relativeMetricValue.toFixed(2)+"%")),Q(),Jd(" ",e.relativeMetricValue>=e.fileExtension.length/2+1?e.fileExtension:""," ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}function lQe(n,t){if(1&n&&(D(0,"div",6),xe(1,"span",9),ye(2),D(3,"span",10),ye(4),U()()),2&n){const e=t.$implicit,i=Le();Q(),zi("background",e.color),Q(),sn("",e.fileExtension," : "),Q(2),sn(" ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}let cQe=(()=>{class n{constructor(e,i){this.store=e,this.threeSceneService=i,this.showAbsoluteValues=!1,this.showDetails=!1,this.store.select(oQe).subscribe(r=>{this.metricDistribution=r})}onHoverFileExtensionBar(e){const i=new Set;for(const r of this.metricDistribution)"other"!==r.fileExtension&&i.add(r.fileExtension);for(const r of this.threeSceneService.getMapMesh().getMeshDescription().buildings)if(r.node.isLeaf){const o=oie.estimateFileExtension(r.node.name);(o===e||"other"===e&&!i.has(o))&&this.threeSceneService.addBuildingToHighlightingList(r)}this.threeSceneService.highlightBuildings()}onUnhoverFileExtensionBar(){this.threeSceneService.clearHighlight()}toggleShowDetails(){this.showDetails=!this.showDetails}toggleShowAbsoluteValues(){this.showAbsoluteValues=!this.showAbsoluteValues}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Vc))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-file-extension-bar"]],decls:10,vars:5,consts:[[1,"cc-distribution"],["title","Distribution metric"],[1,"cc-bar"],[1,"cc-bar-section",3,"width","background"],[1,"cc-show-details-button",3,"click"],[1,"cc-distribution-details",3,"click"],[1,"cc-distribution-details-entry"],[1,"cc-bar-section",3,"click"],[1,"cc-bar-section-text",3,"mouseover","mouseleave","title"],[1,"cc-dot"],[1,"cc-detail-metric-value"]],template:function(i,r){1&i&&(D(0,"div",0),xe(1,"cc-distribution-metric-chooser",1),D(2,"div",2),Or(3,aQe,3,7,"span",3,qr),U(),D(5,"button",4),ze("click",function(){return r.toggleShowDetails()}),xe(6,"i"),U()(),D(7,"div",5),ze("click",function(){return r.toggleShowAbsoluteValues()}),Or(8,lQe,5,4,"div",6,qr),U()),2&i&&(Q(3),Lr(r.metricDistribution),Q(3),hh("fa ",r.showDetails?"fa-caret-up":"fa-caret-down",""),Q(),Un("cc-hidden",!r.showDetails),Q(),Lr(r.metricDistribution))},dependencies:[sQe],styles:['#mat-select-2-panel[_ngcontent-%COMP%]{left:-24px;top:98px}[_nghost-%COMP%]{z-index:30;background-color:#fff}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%]{display:flex;height:17px}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%]{height:100%;display:inline-block;overflow:hidden;color:#fff;text-align:center;cursor:pointer;outline:none}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid white}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%] .cc-bar-section-text[_ngcontent-%COMP%]{font-size:10px;margin:2px 0;white-space:nowrap;padding:0 10px;text-overflow:""}[_nghost-%COMP%] .cc-show-details-button[_ngcontent-%COMP%]{line-height:10px;width:45px;margin:0;padding:0;background-color:#e6e6e6f5}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%]{border-top:1px solid #cdcdcd;height:25px;transition:all linear .2s}[_nghost-%COMP%] .cc-distribution-details.cc-hidden[_ngcontent-%COMP%]{height:0;border-top:0 solid #cdcdcd}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%]:hover{cursor:pointer}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%]{display:inline-block;font-size:15px;color:#000;margin:3px 0 3px 30px}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%] .cc-dot[_ngcontent-%COMP%]{height:10px;width:10px;border-radius:50%;display:inline-block;margin-right:8px}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%] .cc-detail-metric-value[_ngcontent-%COMP%]{color:gray}']})}}return n})(),dQe=(()=>{class n{constructor(e){this.isLoadingFile$=e.select(k4)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-loading-file-progress-spinner"]],decls:3,vars:4,consts:[["id","loading-gif-file"],["mode","indeterminate","diameter","96"]],template:function(i,r){1&i&&(D(0,"div",0),qe(1,"async"),xe(2,"mat-progress-spinner",1),U()),2&i&&zi("visibility",rt(1,2,r.isLoadingFile$)?"visible":"hidden")},dependencies:[tie,Kn],styles:["#loading-gif-file[_ngcontent-%COMP%]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:40;background-color:#fffc;display:inline-block;text-align:center}#loading-gif-file[_ngcontent-%COMP%] mat-progress-spinner.mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin:22% auto 0}"]})}}return n})(),uQe=(()=>{class n{constructor(e,i){this.store=e,this.loadInitialFileService=i,this.isInitialized=!1}ngOnInit(){var e=this;return k(function*(){e.store.dispatch(cA({value:!0})),yield e.loadInitialFileService.loadFilesOrSampleFiles(),e.isInitialized=!0})()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(D4))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-code-charta"]],decls:8,vars:2,template:function(i,r){1&i&&(D(0,"div"),xe(1,"cc-tool-bar")(2,"cc-file-extension-bar")(3,"cc-ribbon-bar")(4,"cc-code-map")(5,"cc-legend-panel")(6,"cc-loading-file-progress-spinner")(7,"cc-logo"),U()),2&i&&zi("visibility",r.isInitialized?"visible":"hidden")},dependencies:[ZCe,Oke,tPe,h9e,rQe,cQe,dQe],encapsulation:2})}}return n})(),hQe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})();function aie(n){return new ct(3e3,!1)}function tp(n){switch(n.length){case 0:return new j1;case 1:return n[0];default:return new P$(n)}}function lie(n,t,e=new Map,i=new Map){const r=[],o=[];let s=-1,a=null;if(t.forEach(l=>{const c=l.get("offset"),d=c==s,u=d&&a||new Map;l.forEach((h,f)=>{let A=f,y=h;if("offset"!==f)switch(A=n.normalizePropertyName(A,r),y){case"!":y=e.get(f);break;case Fh:y=i.get(f);break;default:y=n.normalizeStyleValue(f,A,y,r)}u.set(A,y)}),d||o.push(u),a=u,s=c}),r.length)throw function RQe(n){return new ct(3502,!1)}();return o}function NU(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&UU(e,"start",n)));break;case"done":n.onDone(()=>i(e&&UU(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&UU(e,"destroy",n)))}}function UU(n,t,e){const o=HU(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),s=n._data;return null!=s&&(o._data=s),o}function HU(n,t,e,i,r="",o=0,s){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:o,disabled:!!s}}function hc(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function cie(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}const $Qe=typeof document>"u"?null:document.documentElement;function VU(n){const t=n.parentNode||n.host||null;return t===$Qe?null:t}let cg=null,die=!1;function uie(n,t){for(;t;){if(t===n)return!0;t=VU(t)}return!1}function hie(n,t,e){if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]}let QU=(()=>{class n{validateStyleProperty(e){return function XQe(n){cg||(cg=function KQe(){return typeof document<"u"?document.body:null}()||{},die=!!cg.style&&"WebkitAppearance"in cg.style);let t=!0;return cg.style&&!function jQe(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in cg.style,!t&&die&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in cg.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return uie(e,i)}getParentElement(e){return VU(e)}query(e,i,r){return hie(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,o,s,a=[],l){return new j1(r,o)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();class zU{static{this.NOOP=new QU}}class qU{}const ZQe=1e3,GU="ng-enter",dF="ng-leave",uF="ng-trigger",hF=".ng-trigger",mie="ng-animating",WU=".ng-animating";function uf(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:$U(parseFloat(t[1]),t[2])}function $U(n,t){return"s"===t?n*ZQe:n}function fF(n,t,e){return n.hasOwnProperty("duration")?n:function eze(n,t,e){let r,o=0,s="";if("string"==typeof n){const a=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return t.push(aie()),{duration:0,delay:0,easing:""};r=$U(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(o=$U(parseFloat(l),a[4]));const c=a[5];c&&(s=c)}else r=n;if(!e){let a=!1,l=t.length;r<0&&(t.push(function fQe(){return new ct(3100,!1)}()),a=!0),o<0&&(t.push(function mQe(){return new ct(3101,!1)}()),a=!0),a&&t.splice(l,0,aie())}return{duration:r,delay:o,easing:s}}(n,t,e)}function Pu(n,t,e){t.forEach((i,r)=>{const o=XU(r);e&&!e.has(r)&&e.set(r,n.style[o]),n.style[o]=i})}function dg(n,t){t.forEach((e,i)=>{const r=XU(i);n.style[r]=""})}function Nx(n){return Array.isArray(n)?1==n.length?n[0]:function A1e(n,t=null){return{type:Ai.Sequence,steps:n,options:t}}(n):n}const jU=new RegExp("{{\\s*(.+?)\\s*}}","g");function Aie(n){let t=[];if("string"==typeof n){let e;for(;e=jU.exec(n);)t.push(e[1]);jU.lastIndex=0}return t}function Ux(n,t,e){const i=`${n}`,r=i.replace(jU,(o,s)=>{let a=t[s];return null==a&&(e.push(function AQe(n){return new ct(3003,!1)}()),a=""),a.toString()});return r==i?n:r}const ize=/-+([a-z0-9])/g;function XU(n){return n.replace(ize,(...t)=>t[1].toUpperCase())}function fc(n,t,e){switch(t.type){case Ai.Trigger:return n.visitTrigger(t,e);case Ai.State:return n.visitState(t,e);case Ai.Transition:return n.visitTransition(t,e);case Ai.Sequence:return n.visitSequence(t,e);case Ai.Group:return n.visitGroup(t,e);case Ai.Animate:return n.visitAnimate(t,e);case Ai.Keyframes:return n.visitKeyframes(t,e);case Ai.Style:return n.visitStyle(t,e);case Ai.Reference:return n.visitReference(t,e);case Ai.AnimateChild:return n.visitAnimateChild(t,e);case Ai.AnimateRef:return n.visitAnimateRef(t,e);case Ai.Query:return n.visitQuery(t,e);case Ai.Stagger:return n.visitStagger(t,e);default:throw function gQe(n){return new ct(3004,!1)}()}}const sze=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class gie extends qU{normalizePropertyName(t,e){return XU(t)}normalizeStyleValue(t,e,i,r){let o="";const s=i.toString().trim();if(sze.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)o="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&r.push(function _Qe(n,t){return new ct(3005,!1)}())}return s+o}}const mF="*";const pF=new Set(["true","1"]),AF=new Set(["false","0"]);function _ie(n,t){const e=pF.has(n)||AF.has(n),i=pF.has(t)||AF.has(t);return(r,o)=>{let s=n==mF||n==r,a=t==mF||t==o;return!s&&e&&"boolean"==typeof r&&(s=r?pF.has(n):AF.has(n)),!a&&i&&"boolean"==typeof o&&(a=o?pF.has(t):AF.has(t)),s&&a}}const dze=new RegExp("s*:selfs*,?","g");function YU(n,t,e,i){return new uze(n).build(t,e,i)}class uze{constructor(t){this._driver=t}build(t,e,i){const r=new mze(e);return this._resetContextStyleTimingState(r),fc(this,Nx(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const o=[],s=[];return"@"==t.name.charAt(0)&&e.errors.push(function bQe(){return new ct(3006,!1)}()),t.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==Ai.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(d=>{l.name=d,o.push(this.visitState(l,e))}),l.name=c}else if(a.type==Ai.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,r+=l.depCount,s.push(l)}else e.errors.push(function vQe(){return new ct(3007,!1)}())}),{type:Ai.Trigger,name:t.name,states:o,transitions:s,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const o=new Set,s=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{Aie(l).forEach(c=>{s.hasOwnProperty(c)||o.add(c)})})}),o.size&&e.errors.push(function yQe(n,t){return new ct(3008,!1)}(0,o.values()))}return{type:Ai.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=fc(this,Nx(t.animation),e),r=function aze(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function lze(n,t,e){if(":"==n[0]){const l=function cze(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof l)return void t.push(l);n=l}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function FQe(n){return new ct(3015,!1)}()),t;const r=i[1],o=i[2],s=i[3];t.push(_ie(r,s)),"<"==o[0]&&(r!=mF||s!=mF)&&t.push(_ie(s,r))}(i,e,t)):e.push(n),e}(t.expr,e.errors);return{type:Ai.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:ug(t.options)}}visitSequence(t,e){return{type:Ai.Sequence,steps:t.steps.map(i=>fc(this,i,e)),options:ug(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const o=t.steps.map(s=>{e.currentTime=i;const a=fc(this,s,e);return r=Math.max(r,e.currentTime),a});return e.currentTime=r,{type:Ai.Group,steps:o,options:ug(t.options)}}visitAnimate(t,e){const i=function Aze(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return ZU(fF(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=ZU(0,0,"");return o.dynamic=!0,o.strValue=e,o}const r=fF(e,t);return ZU(r.duration,r.delay,r.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,o=t.styles?t.styles:jo({});if(o.type==Ai.Keyframes)r=this.visitKeyframes(o,e);else{let s=t.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=jo(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,r=l}return e.currentAnimateTimings=null,{type:Ai.Animate,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let a of r)"string"==typeof a?a===Fh?i.push(a):e.errors.push(new ct(3002,!1)):i.push(new Map(Object.entries(a)));let o=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!o))for(let l of a.values())if(l.toString().indexOf("{{")>=0){o=!0;break}}),{type:Ai.Style,styles:i,easing:s,offset:t.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,o=e.currentTime;i&&o>0&&(o-=i.duration+i.delay),t.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),d=c.get(l);let u=!0;d&&(o!=r&&o>=d.startTime&&r<=d.endTime&&(e.errors.push(function xQe(n,t,e,i,r){return new ct(3010,!1)}()),u=!1),o=d.startTime),u&&c.set(l,{startTime:o,endTime:r}),e.options&&function nze(n,t,e){const i=t.params||{},r=Aie(n);r.length&&r.forEach(o=>{i.hasOwnProperty(o)||e.push(function pQe(n){return new ct(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:Ai.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function CQe(){return new ct(3011,!1)}()),i;let o=0;const s=[];let a=!1,l=!1,c=0;const d=t.steps.map(b=>{const M=this._makeStyleAst(b,e);let C=null!=M.offset?M.offset:function pze(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(M.styles),E=0;return null!=C&&(o++,E=M.offset=C),l=l||E<0||E>1,a=a||E0&&o{const C=h>0?M==f?1:h*M:s[M],E=C*_;e.currentTime=A+y.delay+E,y.duration=E,this._validateStyleAst(b,e),b.offset=C,i.styles.push(b)}),i}visitReference(t,e){return{type:Ai.Reference,animation:fc(this,Nx(t.animation),e),options:ug(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:Ai.AnimateChild,options:ug(t.options)}}visitAnimateRef(t,e){return{type:Ai.AnimateRef,animation:this.visitReference(t.animation,e),options:ug(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[o,s]=function hze(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(dze,"")),n=n.replace(/@\*/g,hF).replace(/@\w+/g,e=>hF+"-"+e.slice(1)).replace(/:animating/g,WU),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+o:o,hc(e.collectedStyles,e.currentQuerySelector,new Map);const a=fc(this,Nx(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ai.Query,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:s,animation:a,originalSelector:t.selector,options:ug(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function TQe(){return new ct(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:fF(t.timings,e.errors,!0);return{type:Ai.Stagger,animation:fc(this,Nx(t.animation),e),timings:i,options:null}}}class mze{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function ug(n){return n?(n={...n}).params&&(n.params=function fze(n){return n?{...n}:null}(n.params)):n={},n}function ZU(n,t,e){return{duration:n,delay:t,easing:e}}function JU(n,t,e,i,r,o,s=null,a=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:s,subTimeline:a}}class gF{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const bze=new RegExp(":enter","g"),yze=new RegExp(":leave","g");function e8(n,t,e,i,r,o=new Map,s=new Map,a,l,c=[]){return(new wze).buildKeyframes(n,t,e,i,r,o,s,a,l,c)}class wze{buildKeyframes(t,e,i,r,o,s,a,l,c,d=[]){c=c||new gF;const u=new t8(t,e,c,r,o,d,[]);u.options=l;const h=l.delay?uf(l.delay):0;u.currentTimeline.delayNextStep(h),u.currentTimeline.setStyles([s],null,u.errors,l),fc(this,i,u);const f=u.timelines.filter(A=>A.containsAnimation());if(f.length&&a.size){let A;for(let y=f.length-1;y>=0;y--){const _=f[y];if(_.element===e){A=_;break}}A&&!A.allowOnlyTimelineStyles()&&A.setStyles([a],null,u.errors,l)}return f.length?f.map(A=>A.buildKeyframes()):[JU(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),o=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,r,r.options);o!=s&&e.transformIntoNewTimeline(s)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const r of t){const o=r?.delay;if(o){const s="number"==typeof o?o:uf(Ux(o,r?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(t,e,i){let o=e.currentTimeline.currentTime;const s=null!=i.duration?uf(i.duration):null,a=null!=i.delay?uf(i.delay):null;return 0!==s&&t.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);o=Math.max(o,c.duration+c.delay)}),o}visitReference(t,e){e.updateOptions(t.options,!0),fc(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const o=t.options;if(o&&(o.params||o.delay)&&(r=e.createSubContext(o),r.transformIntoNewTimeline(),null!=o.delay)){r.previousNode.type==Ai.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=_F);const s=uf(o.delay);r.delayNextStep(s)}t.steps.length&&(t.steps.forEach(s=>fc(this,s,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const o=t.options&&t.options.delay?uf(t.options.delay):0;t.steps.forEach(s=>{const a=e.createSubContext(t.options);o&&a.delayNextStep(o),fc(this,s,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return fF(e.params?Ux(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const o=t.style;o.type==Ai.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(i.duration),this.visitStyle(o,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const o=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(o):i.setStyles(t.styles,o,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,o=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,t.styles.forEach(l=>{a.forwardTime((l.offset||0)*o),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(r+o),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},o=r.delay?uf(r.delay):0;o&&(e.previousNode.type===Ai.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=_F);let s=i;const a=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,d)=>{e.currentQueryIndex=d;const u=e.createSubContext(t.options,c);o&&u.delayNextStep(o),c===e.element&&(l=u.currentTimeline),fc(this,t.animation,u),u.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,u.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,o=t.timings,s=Math.abs(o.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const d=e.currentTimeline;l&&d.delayNextStep(l);const u=d.currentTime;fc(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-u+(r.startTime-i.currentTimeline.startTime)}}const _F={};class t8{constructor(t,e,i,r,o,s,a,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=o,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=_F,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new bF(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=uf(i.duration)),null!=i.delay&&(r.delay=uf(i.delay));const o=i.params;if(o){let s=r.params;s||(s=this.options.params={}),Object.keys(o).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=Ux(o[a],s,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,o=new t8(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(t),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(t){return this.previousNode=_F,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},o=new xze(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(o),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,o,s){let a=[];if(r&&a.push(this.element),t.length>0){t=(t=t.replace(bze,"."+this._enterClassName)).replace(yze,"."+this._leaveClassName);let c=this._driver.query(this.element,t,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!o&&0==a.length&&s.push(function IQe(n){return new ct(3014,!1)}()),a}}class bF{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new bF(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Fh),this._currentKeyframe.set(e,Fh);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);const o=r&&r.params||{},s=function Cze(n,t){const e=new Map;let i;return n.forEach(r=>{if("*"===r){i??=t.keys();for(let o of i)e.set(o,Fh)}else for(let[o,s]of r)e.set(o,s)}),e}(t,this._globalTimelineStyles);for(let[a,l]of s){const c=Ux(l,o,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Fh),this._updateStyle(a,c)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((d,u)=>{"!"===d?t.add(u):d===Fh&&e.add(u)}),i||c.set("offset",l/this.duration),r.push(c)});const o=[...t.values()],s=[...e.values()];if(i){const a=r[0],l=new Map(a);a.set("offset",0),l.set("offset",1),r=[a,l]}return JU(this.element,r,o,s,this.duration,this.startTime,this.easing,!1)}}class xze extends bF{constructor(t,e,i,r,o,s,a=!1){super(t,e,s.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=o,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const o=[],s=i+e,a=e/s,l=new Map(t[0]);l.set("offset",0),o.push(l);const c=new Map(t[0]);c.set("offset",yie(a)),o.push(c);const d=t.length-1;for(let u=1;u<=d;u++){let h=new Map(t[u]);const f=h.get("offset");h.set("offset",yie((e+f*i)/s)),o.push(h)}i=s,e=0,r="",t=o}return JU(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function yie(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}function wie(n,t,e,i,r,o,s,a,l,c,d,u,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:o,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:d,totalTime:u,errors:h}}const n8={};class xie{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function Mze(n,t,e,i,r){return n.some(o=>o(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return void 0!==t&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,o,s,a,l,c,d){const u=[],h=this.ast.options&&this.ast.options.params||n8,A=this.buildStyles(i,a&&a.params||n8,u),y=l&&l.params||n8,_=this.buildStyles(r,y,u),b=new Set,M=new Map,C=new Map,E="void"===r,L={params:Cie(y,h),delay:this.ast.options?.delay},N=d?[]:e8(t,e,this.ast.animation,o,s,A,_,L,c,u);let H=0;return N.forEach(j=>{H=Math.max(j.duration+j.delay,H)}),u.length?wie(e,this._triggerName,i,r,E,A,_,[],[],M,C,H,u):(N.forEach(j=>{const R=j.element,B=hc(M,R,new Set);j.preStyleProps.forEach(we=>B.add(we));const ee=hc(C,R,new Set);j.postStyleProps.forEach(we=>ee.add(we)),R!==e&&b.add(R)}),wie(e,this._triggerName,i,r,E,A,_,N,[...b.values()],M,C,H))}}function Cie(n,t){const e={...t};return Object.entries(n).forEach(([i,r])=>{null!=r&&(e[i]=r)}),e}class Eze{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,r=Cie(t,this.defaultParams);return this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,a)=>{s&&(s=Ux(s,r,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class Tze{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(r=>{this.states.set(r.name,new Eze(r.style,r.options&&r.options.params||{},i))}),Mie(this.states,"true","1"),Mie(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new xie(t,r,this.states))}),this.fallbackTransition=function Ize(n,t,e){return new xie(n,{type:Ai.Transition,animation:{type:Ai.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(s=>s.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function Mie(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const Fze=new gF;class Dze{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],o=YU(this._driver,e,i,[]);if(i.length)throw function OQe(n){return new ct(3503,!1)}();this._animations.set(t,o)}_buildPlayer(t,e,i){const r=t.element,o=lie(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,o,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],o=this._animations.get(t);let s;const a=new Map;if(o?(s=e8(this._driver,e,o,GU,dF,new Map,new Map,i,Fze,r),s.forEach(d=>{const u=hc(a,d.element,new Map);d.postStyleProps.forEach(h=>u.set(h,null))})):(r.push(function LQe(){return new ct(3300,!1)}()),s=[]),r.length)throw function NQe(n){return new ct(3504,!1)}();a.forEach((d,u)=>{d.forEach((h,f)=>{d.set(f,this._driver.computeStyle(u,f,Fh))})});const c=tp(s.map(d=>{const u=a.get(d.element);return this._buildPlayer(d,new Map,u)}));return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function UQe(n){return new ct(3301,!1)}();return e}listen(t,e,i,r){const o=HU(e,"","","");return NU(this._getPlayer(t),i,o,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const o=this._getPlayer(t);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const Eie="ng-animate-queued",i8="ng-animate-disabled",Oze=[],Sie={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Lze={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Dd="__ng_removed";class r8{get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function Vze(n){return n??null}(i?t.value:t),i){const{value:o,...s}=t;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const Hx="void",o8=new r8(Hx);class Nze{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,zc(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw function HQe(n,t){return new ct(3302,!1)}();if(null==i||0==i.length)throw function VQe(n){return new ct(3303,!1)}();if(!function Qze(n){return"start"==n||"done"==n}(i))throw function QQe(n,t){return new ct(3400,!1)}();const o=hc(this._elementListeners,t,[]),s={name:e,phase:i,callback:r};o.push(s);const a=hc(this._engine.statesByElement,t,new Map);return a.has(e)||(zc(t,uF),zc(t,uF+"-"+e),a.set(e,o8)),()=>{this._engine.afterFlush(()=>{const l=o.indexOf(s);l>=0&&o.splice(l,1),this._triggers.has(e)||a.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function zQe(n){return new ct(3401,!1)}();return e}trigger(t,e,i,r=!0){const o=this._getTrigger(e),s=new s8(this.id,e,t);let a=this._engine.statesByElement.get(t);a||(zc(t,uF),zc(t,uF+"-"+e),this._engine.statesByElement.set(t,a=new Map));let l=a.get(e);const c=new r8(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=o8),c.value!==Hx&&l.value===c.value){if(!function Gze(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{dg(t,_),Pu(t,b)})}return}const h=hc(this._engine.playersByElement,t,[]);h.forEach(y=>{y.namespaceId==this.id&&y.triggerName==e&&y.queued&&y.destroy()});let f=o.matchTransition(l.value,c.value,t,c.params),A=!1;if(!f){if(!r)return;f=o.fallbackTransition,A=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:f,fromState:l,toState:c,player:s,isFallbackTransition:A}),A||(zc(t,Eie),s.onStart(()=>{qb(t,Eie)})),s.onDone(()=>{let y=this.players.indexOf(s);y>=0&&this.players.splice(y,1);const _=this._engine.playersByElement.get(t);if(_){let b=_.indexOf(s);b>=0&&_.splice(b,1)}}),this.players.push(s),h.push(s),s}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,hF,!0);i.forEach(r=>{if(r[Dd])return;const o=this._engine.fetchNamespacesByElement(r);o.size?o.forEach(s=>s.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const o=this._engine.statesByElement.get(t),s=new Map;if(o){const a=[];if(o.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const d=this.trigger(t,c,Hx,r);d&&a.push(d)}}),a.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,s),i&&tp(a).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(o=>{const s=o.name;if(r.has(s))return;r.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||o8,d=new r8(Hx),u=new s8(this.id,s,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:s,transition:l,fromState:c,toState:d,player:u,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const o=i.players.length?i.playersByQueriedElement.get(t):[];if(o&&o.length)r=!0;else{let s=t;for(;s=s.parentNode;)if(i.statesByElement.get(s)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const o=t[Dd];(!o||o===Sie)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){zc(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const o=i.element,s=this._elementListeners.get(o);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=HU(o,i.triggerName,i.fromState.value,i.toState.value);l._data=t,NU(i.player,a.phase,l,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const o=i.transition.ast.depCount,s=r.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}}class Uze{_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i,r){this.bodyNode=t,this.driver=e,this._normalizer=i,this.scheduler=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new Nze(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(e);for(;a;){const l=r.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,t),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let r of i.values())if(r.namespaceId){const o=this._fetchNamespace(r.namespaceId);o&&e.add(o)}return e}trigger(t,e,i,r){if(vF(e)){const o=this._fetchNamespace(t);if(o)return o.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!vF(e))return;const o=e[Dd];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(t){const s=this._fetchNamespace(t);s&&s.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),zc(t,i8)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),qb(t,i8))}removeNode(t,e,i){if(vF(e)){this.scheduler?.notify();const r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);const o=this.namespacesByHostElement.get(e);o&&o.id!==t&&o.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,o){this.collectedLeaveElements.push(e),e[Dd]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(t,e,i,r,o){return vF(e)?this._fetchNamespace(t).listen(e,i,r,o):()=>{}}_buildInstruction(t,e,i,r,o){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,o)}destroyInnerAnimations(t){let e=this.driver.query(t,hF,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,WU,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return tp(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[Dd];if(e&&e.setForRemoval){if(t[Dd]=Sie,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(i8)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?tp(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function qQe(n){return new ct(3402,!1)}()}_flushAnimations(t,e){const i=new gF,r=[],o=new Map,s=[],a=new Map,l=new Map,c=new Map,d=new Set;this.disabledNodes.forEach(te=>{d.add(te);const Ae=this.driver.query(te,".ng-animate-queued",!0);for(let le=0;le{const le=GU+y++;A.set(Ae,le),te.forEach(Pe=>zc(Pe,le))});const _=[],b=new Set,M=new Set;for(let te=0;teb.add(Pe)):M.add(Ae))}const C=new Map,E=Fie(h,Array.from(b));E.forEach((te,Ae)=>{const le=dF+y++;C.set(Ae,le),te.forEach(Pe=>zc(Pe,le))}),t.push(()=>{f.forEach((te,Ae)=>{const le=A.get(Ae);te.forEach(Pe=>qb(Pe,le))}),E.forEach((te,Ae)=>{const le=C.get(Ae);te.forEach(Pe=>qb(Pe,le))}),_.forEach(te=>{this.processLeaveNode(te)})});const L=[],N=[];for(let te=this._namespaceList.length-1;te>=0;te--)this._namespaceList[te].drainQueuedTransitions(e).forEach(le=>{const Pe=le.player,it=le.element;if(L.push(Pe),this.collectedEnterElements.length){const Z=it[Dd];if(Z&&Z.setForMove){if(Z.previousTriggersValues&&Z.previousTriggersValues.has(le.triggerName)){const $e=Z.previousTriggersValues.get(le.triggerName),wt=this.statesByElement.get(le.element);if(wt&&wt.has(le.triggerName)){const je=wt.get(le.triggerName);je.value=$e,wt.set(le.triggerName,je)}}return void Pe.destroy()}}const _t=!u||!this.driver.containsElement(u,it),Ht=C.get(it),cn=A.get(it),ce=this._buildInstruction(le,i,cn,Ht,_t);if(ce.errors&&ce.errors.length)return void N.push(ce);if(_t)return Pe.onStart(()=>dg(it,ce.fromStyles)),Pe.onDestroy(()=>Pu(it,ce.toStyles)),void r.push(Pe);if(le.isFallbackTransition)return Pe.onStart(()=>dg(it,ce.fromStyles)),Pe.onDestroy(()=>Pu(it,ce.toStyles)),void r.push(Pe);const ue=[];ce.timelines.forEach(Z=>{Z.stretchStartingKeyframe=!0,this.disabledNodes.has(Z.element)||ue.push(Z)}),ce.timelines=ue,i.append(it,ce.timelines),s.push({instruction:ce,player:Pe,element:it}),ce.queriedElements.forEach(Z=>hc(a,Z,[]).push(Pe)),ce.preStyleProps.forEach((Z,$e)=>{if(Z.size){let wt=l.get($e);wt||l.set($e,wt=new Set),Z.forEach((je,Nt)=>wt.add(Nt))}}),ce.postStyleProps.forEach((Z,$e)=>{let wt=c.get($e);wt||c.set($e,wt=new Set),Z.forEach((je,Nt)=>wt.add(Nt))})});if(N.length){const te=[];N.forEach(Ae=>{te.push(function GQe(n,t){return new ct(3505,!1)}())}),L.forEach(Ae=>Ae.destroy()),this.reportError(te)}const H=new Map,j=new Map;s.forEach(te=>{const Ae=te.element;i.has(Ae)&&(j.set(Ae,Ae),this._beforeAnimationBuild(te.player.namespaceId,te.instruction,H))}),r.forEach(te=>{const Ae=te.element;this._getPreviousPlayers(Ae,!1,te.namespaceId,te.triggerName,null).forEach(Pe=>{hc(H,Ae,[]).push(Pe),Pe.destroy()})});const R=_.filter(te=>kie(te,l,c)),B=new Map;Iie(B,this.driver,M,c,Fh).forEach(te=>{kie(te,l,c)&&R.push(te)});const we=new Map;f.forEach((te,Ae)=>{Iie(we,this.driver,new Set(te),l,"!")}),R.forEach(te=>{const Ae=B.get(te),le=we.get(te);B.set(te,new Map([...Ae?.entries()??[],...le?.entries()??[]]))});const Ee=[],ne=[],Ie={};s.forEach(te=>{const{element:Ae,player:le,instruction:Pe}=te;if(i.has(Ae)){if(d.has(Ae))return le.onDestroy(()=>Pu(Ae,Pe.toStyles)),le.disabled=!0,le.overrideTotalTime(Pe.totalTime),void r.push(le);let it=Ie;if(j.size>1){let Ht=Ae;const cn=[];for(;Ht=Ht.parentNode;){const ce=j.get(Ht);if(ce){it=ce;break}cn.push(Ht)}cn.forEach(ce=>j.set(ce,it))}const _t=this._buildAnimation(le.namespaceId,Pe,H,o,we,B);if(le.setRealPlayer(_t),it===Ie)Ee.push(le);else{const Ht=this.playersByElement.get(it);Ht&&Ht.length&&(le.parentPlayer=tp(Ht)),r.push(le)}}else dg(Ae,Pe.fromStyles),le.onDestroy(()=>Pu(Ae,Pe.toStyles)),ne.push(le),d.has(Ae)&&r.push(le)}),ne.forEach(te=>{const Ae=o.get(te.element);if(Ae&&Ae.length){const le=tp(Ae);te.setRealPlayer(le)}}),r.forEach(te=>{te.parentPlayer?te.syncPlayerEvents(te.parentPlayer):te.destroy()});for(let te=0;te<_.length;te++){const Ae=_[te],le=Ae[Dd];if(qb(Ae,dF),le&&le.hasAnimation)continue;let Pe=[];if(a.size){let _t=a.get(Ae);_t&&_t.length&&Pe.push(..._t);let Ht=this.driver.query(Ae,WU,!0);for(let cn=0;cn!_t.destroyed);it.length?zze(this,Ae,it):this.processLeaveNode(Ae)}return _.length=0,Ee.forEach(te=>{this.players.push(te),te.onDone(()=>{te.destroy();const Ae=this.players.indexOf(te);this.players.splice(Ae,1)}),te.play()}),Ee}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,o){let s=[];if(e){const a=this.playersByQueriedElement.get(t);a&&(s=a)}else{const a=this.playersByElement.get(t);if(a){const l=!o||o==Hx;a.forEach(c=>{c.queued||!l&&c.triggerName!=r||s.push(c)})}}return(i||r)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),s}_beforeAnimationBuild(t,e,i){const o=e.element,s=e.isRemovalTransition?void 0:t,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,d=c!==o,u=hc(i,c,[]);this._getPreviousPlayers(c,d,s,a,e.toState).forEach(f=>{const A=f.getRealPlayer();A.beforeDestroy&&A.beforeDestroy(),f.destroy(),u.push(f)})}dg(o,e.fromStyles)}_buildAnimation(t,e,i,r,o,s){const a=e.triggerName,l=e.element,c=[],d=new Set,u=new Set,h=e.timelines.map(A=>{const y=A.element;d.add(y);const _=y[Dd];if(_&&_.removedBeforeQueried)return new j1(A.duration,A.delay);const b=y!==l,M=function qze(n){const t=[];return Die(n,t),t}((i.get(y)||Oze).map(H=>H.getRealPlayer())).filter(H=>!!H.element&&H.element===y),C=o.get(y),E=s.get(y),L=lie(this._normalizer,A.keyframes,C,E),N=this._buildPlayer(A,L,M);if(A.subTimeline&&r&&u.add(y),b){const H=new s8(t,a,y);H.setRealPlayer(N),c.push(H)}return N});c.forEach(A=>{hc(this.playersByQueriedElement,A.element,[]).push(A),A.onDone(()=>function Hze(n,t,e){let i=n.get(t);if(i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,A.element,A))}),d.forEach(A=>zc(A,mie));const f=tp(h);return f.onDestroy(()=>{d.forEach(A=>qb(A,mie)),Pu(l,e.toStyles)}),u.forEach(A=>{hc(r,A,[]).push(f)}),f}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new j1(t.duration,t.delay)}}class s8{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new j1,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>NU(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){hc(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function vF(n){return n&&1===n.nodeType}function Tie(n,t){const e=n.style.display;return n.style.display=t??"none",e}function Iie(n,t,e,i,r){const o=[];e.forEach(l=>o.push(Tie(l)));const s=[];i.forEach((l,c)=>{const d=new Map;l.forEach(u=>{const h=t.computeStyle(c,u,r);d.set(u,h),(!h||0==h.length)&&(c[Dd]=Lze,s.push(c))}),n.set(c,d)});let a=0;return e.forEach(l=>Tie(l,o[a++])),s}function Fie(n,t){const e=new Map;if(n.forEach(a=>e.set(a,[])),0==t.length)return e;const r=new Set(t),o=new Map;function s(a){if(!a)return 1;let l=o.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:r.has(c)?1:s(c),o.set(a,l),l}return t.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function zc(n,t){n.classList?.add(t)}function qb(n,t){n.classList?.remove(t)}function zze(n,t,e){tp(e).onDone(()=>n.processLeaveNode(t))}function Die(n,t){for(let e=0;er.add(o)):t.set(n,i),e.delete(n),!0}class Vx{constructor(t,e,i,r){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new Uze(t.body,e,i,r),this._timelineEngine=new Dze(t.body,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(t,e,i,r,o){const s=t+"-"+r;let a=this._triggerCache[s];if(!a){const l=[],d=YU(this._driver,o,l,[]);if(l.length)throw function PQe(n,t){return new ct(3404,!1)}();a=function Sze(n,t,e){return new Tze(n,t,e)}(r,d,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,r,a)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[o,s]=cie(i);this._timelineEngine.command(o,e,s,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,o){if("@"==i.charAt(0)){const[s,a]=cie(i);return this._timelineEngine.listen(s,e,a,o)}return this._transitionEngine.listen(t,e,i,r,o)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}}class Qx{static{this.initialStylesByElement=new WeakMap}constructor(t,e,i){this._element=t,this._startStyles=e,this._endStyles=i,this._state=0;let r=Qx.initialStylesByElement.get(t);r||Qx.initialStylesByElement.set(t,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Pu(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Pu(this._element,this._initialStyles),this._endStyles&&(Pu(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Qx.initialStylesByElement.delete(this._element),this._startStyles&&(dg(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(dg(this._element,this._endStyles),this._endStyles=null),Pu(this._element,this._initialStyles),this._state=3)}}const Rie="@.disabled";class Oie{constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==Rie?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class jze extends Oie{constructor(t,e,i,r,o){super(e,i,r,o),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==Rie?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function Xze(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let o=e.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function Kze(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(o)),this.engine.listen(this.namespaceId,r,o,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(t,e,i)}}class Yze{constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(r,o)=>{const s=o?.parentNode(r);s&&o.removeChild(s,r)}}createRenderer(t,e){const r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){const c=this._rendererCache;let d=c.get(r);return d||(d=new Oie("",r,this.engine,()=>c.delete(r)),c.set(r,d)),d}const o=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,t);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(o,s,t,c.name,c)};return e.data.animation.forEach(a),new jze(this,s,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(o=>{const[s,a]=o;s(a)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const Nie=[{provide:zU,useClass:QU},{provide:_s,useValue:"NoopAnimations"},...[{provide:qU,useFactory:function Jze(){return new gie}},{provide:Vx,useClass:(()=>{class n extends Vx{constructor(e,i,r){super(e,i,r,Qt(wM,{optional:!0}))}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(i){return new(i||n)(ve(Li),ve(zU),ve(qU))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})()},{provide:U3,useFactory:function eqe(n,t,e){return new Yze(n,t,e)},deps:[yB,Vx,In]}]];let l8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:Nie,imports:[Ez]})}}return n})();const Uie=["*"],Vie=["unscopedContent"],nqe=["text"],iqe=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],rqe=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"],Qie=new dt("ListOption");let zie=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"],standalone:!0})}}return n})(),qie=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Nn))}}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"],standalone:!0})}}return n})(),wqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"],standalone:!0})}}return n})(),Gie=(()=>{class n{constructor(e){this._listOption=e}_isAlignedAtStart(){return!this._listOption||"after"===this._listOption?._getTogglePosition()}static{this.\u0275fac=function(i){return new(i||n)($(Qie,8))}}static{this.\u0275dir=Wt({type:n,hostVars:4,hostBindings:function(i,r){2&i&&Un("mdc-list-item__start",r._isAlignedAtStart())("mdc-list-item__end",!r._isAlignedAtStart())},standalone:!0})}}return n})(),xqe=(()=>{class n extends Gie{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],standalone:!0,features:[yi]})}}return n})(),Cqe=(()=>{class n extends Gie{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],standalone:!0,features:[yi]})}}return n})();const Mqe=new dt("MAT_LIST_CONFIG");let Gb=(()=>{class n{constructor(){this._isNonInteractive=!0,this._disableRipple=!1,this._disabled=!1,this._defaultOptions=Qt(Mqe,{optional:!0})}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=sa(e)}get disabled(){return this._disabled}set disabled(e){this._disabled=sa(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,hostVars:1,hostBindings:function(i,r){2&i&&pi("aria-disabled",r.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),c8=(()=>{class n{set lines(e){this._explicitLines=cm(e,null),this._updateItemLines(!1)}get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=sa(e)}get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=sa(e)}get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(e,i,r,o,s,a){this._elementRef=e,this._ngZone=i,this._listBase=r,this._platform=o,this._explicitLines=null,this._disableRipple=!1,this._disabled=!1,this._subscriptions=new Xn,this._rippleRenderer=null,this._hasUnscopedTextContent=!1,this.rippleConfig=s||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement="button"===this._hostElement.nodeName.toLowerCase(),this._noopAnimations="NoopAnimations"===a,r&&!r._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),null!==this._rippleRenderer&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!(!this._avatars.length&&!this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new $1(this,this._ngZone,this._hostElement,this._platform),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Yl(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(e){if(!this._lines||!this._titles||!this._unscopedContent)return;e&&this._checkDomForUnscopedTextContent();const i=this._explicitLines??this._inferLinesFromContent(),r=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",2===i),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",3===i),this._hasUnscopedTextContent){const o=0===this._titles.length&&1===i;r.classList.toggle("mdc-list-item__primary-text",o),r.classList.toggle("mdc-list-item__secondary-text",!o)}else r.classList.remove("mdc-list-item__primary-text"),r.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let e=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(e+=1),e}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(e=>e.nodeType!==e.COMMENT_NODE).some(e=>!(!e.textContent||!e.textContent.trim()))}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(Gb,8),$(ro),$(d_,8),$(_s,8))}}static{this.\u0275dir=Wt({type:n,contentQueries:function(i,r,o){if(1&i&&(Gr(o,xqe,4),Gr(o,Cqe,4)),2&i){let s;an(s=ln())&&(r._avatars=s),an(s=ln())&&(r._icons=s)}},hostVars:4,hostBindings:function(i,r){2&i&&(pi("aria-disabled",r.disabled)("disabled",r._isButtonElement&&r.disabled||null),Un("mdc-list-item--disabled",r.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),Wie=(()=>{class n extends Gb{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275cmp=bt({type:n,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],standalone:!0,features:[ui([{provide:Gb,useExisting:n}]),yi,Nr],ngContentSelectors:Uie,decls:1,vars:0,template:function(i,r){1&i&&(Yr(),Vn(0))},styles:['@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:"";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size)}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space)}a.mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color)}a.mdc-list-item.mdc-list-item--activated.mdc-list-item{border-radius:var(--mat-list-active-indicator-shape)}'],encapsulation:2,changeDetection:0})}}return n})(),$ie=(()=>{class n extends c8{get activated(){return this._activated}set activated(e){this._activated=sa(e)}constructor(e,i,r,o,s,a){super(e,i,r,o,s,a),this._activated=!1}_getAriaCurrent(){return"A"===this._hostElement.nodeName&&this._activated?"page":null}static{this.\u0275fac=function(i){return new(i||n)($(Nn),$(In),$(Gb,8),$(ro),$(d_,8),$(_s,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,r,o){if(1&i&&(Gr(o,qie,5),Gr(o,zie,5),Gr(o,wqe,5)),2&i){let s;an(s=ln())&&(r._lines=s),an(s=ln())&&(r._titles=s),an(s=ln())&&(r._meta=s)}},viewQuery:function(i,r){if(1&i&&(ti(Vie,5),ti(nqe,5)),2&i){let o;an(o=ln())&&(r._unscopedContent=o.first),an(o=ln())&&(r._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:11,hostBindings:function(i,r){2&i&&(pi("aria-current",r._getAriaCurrent()),Un("mdc-list-item--activated",r.activated)("mdc-list-item--with-leading-avatar",0!==r._avatars.length)("mdc-list-item--with-leading-icon",0!==r._icons.length)("mdc-list-item--with-trailing-meta",0!==r._meta.length)("_mat-animation-noopable",r._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],standalone:!0,features:[yi,Nr],ngContentSelectors:rqe,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-mdc-focus-indicator"]],template:function(i,r){if(1&i){const o=Dn();Yr(iqe),Vn(0),D(1,"span",1),Vn(2,1),Vn(3,2),D(4,"span",2,0),ze("cdkObserveContent",function(){return Ot(o),Rt(r._updateItemLines(!0))}),Vn(6,3),U()(),Vn(7,4),Vn(8,5),xe(9,"div",3)}},dependencies:[KW],encapsulation:2,changeDetection:0})}}return n})(),Xie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[MR,mn,fr,u_,M$,kN]})}}return n})(),Fqe=0;const d8=new dt("CdkAccordion");let Dqe=(()=>{class n{constructor(){this._stateChanges=new Ln,this._openCloseAllActions=new Ln,this.id="cdk-accordion-"+Fqe++,this.multi=!1}openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[Ct.HasDecoratorInputTransform,"multi","multi",Jn]},exportAs:["cdkAccordion"],standalone:!0,features:[ui([{provide:d8,useExisting:n}]),rs,xr]})}}return n})(),kqe=0,Bqe=(()=>{class n{get expanded(){return this._expanded}set expanded(e){this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}constructor(e,i,r){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=r,this._openCloseAllSubscription=Xn.EMPTY,this.closed=new Fn,this.opened=new Fn,this.destroyed=new Fn,this.expandedChange=new Fn,this.id="cdk-accordion-child-"+kqe++,this._expanded=!1,this.disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=r.listen((o,s)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===s&&this.id!==o&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static{this.\u0275fac=function(i){return new(i||n)($(d8,12),$(vo),$(jZ))}}static{this.\u0275dir=Wt({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[Ct.HasDecoratorInputTransform,"expanded","expanded",Jn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Jn]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],standalone:!0,features:[ui([{provide:d8,useValue:void 0}]),rs]})}}return n})(),Pqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})();const Rqe=["body"],Oqe=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],Lqe=["mat-expansion-panel-header","*","mat-action-row"];function Nqe(n,t){}const Uqe=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Hqe=["mat-panel-title","mat-panel-description","*"];function Vqe(n,t){1&n&&(D(0,"span",1),Ul(),D(1,"svg",2),xe(2,"path",3),U()()),2&n&&_e("@indicatorRotate",Le()._getExpandedState())}const u8=new dt("MAT_ACCORDION"),Kie="225ms cubic-bezier(0.4,0.0,0.2,1)",Yie={indicatorRotate:Dh("indicatorRotate",[Dc("collapsed, void",jo({transform:"rotate(0deg)"})),Dc("expanded",jo({transform:"rotate(180deg)"})),Zl("expanded <=> collapsed, void => collapsed",Fc(Kie))]),bodyExpansion:Dh("bodyExpansion",[Dc("collapsed, void",jo({height:"0px",visibility:"hidden"})),Dc("expanded",jo({height:"*",visibility:""})),Zl("expanded <=> collapsed, void => collapsed",Fc(Kie))])},Zie=new dt("MAT_EXPANSION_PANEL");let Qqe=(()=>{class n{constructor(e,i){this._template=e,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||n)($(jl),$(Zie,8))}}static{this.\u0275dir=Wt({type:n,selectors:[["ng-template","matExpansionPanelContent",""]],standalone:!0})}}return n})(),zqe=0;const Jie=new dt("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let ere=(()=>{class n extends Bqe{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,r,o,s,a,l){super(e,i,r),this._viewContainerRef=o,this._animationMode=a,this._hideToggle=!1,this.afterExpand=new Fn,this.afterCollapse=new Fn,this._inputChanges=new Ln,this._headerId="mat-expansion-panel-header-"+zqe++,this.accordion=e,this._document=s,this._animationsDisabled="NoopAnimations"===a,l&&(this.hideToggle=l.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(gd(null),qi(()=>this.expanded&&!this._portal),$o(1)).subscribe(()=>{this._portal=new V1(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}_animationStarted(e){!tre(e)&&!this._animationsDisabled&&this._body&&this._body?.nativeElement.setAttribute("inert","")}_animationDone(e){tre(e)||("expanded"===e.toState?this.afterExpand.emit():"collapsed"===e.toState&&this.afterCollapse.emit(),!this._animationsDisabled&&this._body&&this._body.nativeElement.removeAttribute("inert"))}static{this.\u0275fac=function(i){return new(i||n)($(u8,12),$(vo),$(jZ),$(oa),$(Li),$(_s,8),$(Jie,8))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,Qqe,5),2&i){let s;an(s=ln())&&(r._lazyContent=s.first)}},viewQuery:function(i,r){if(1&i&&ti(Rqe,5),2&i){let o;an(o=ln())&&(r._body=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,r){2&i&&Un("mat-expanded",r.expanded)("_mat-animation-noopable",r._animationsDisabled)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[Ct.HasDecoratorInputTransform,"hideToggle","hideToggle",Jn],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],standalone:!0,features:[ui([{provide:u8,useValue:void 0},{provide:Zie,useExisting:n}]),rs,yi,xr,Nr],ngContentSelectors:Lqe,decls:7,vars:4,consts:[["body",""],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,r){if(1&i){const o=Dn();Yr(Oqe),Vn(0),D(1,"div",1,0),ze("@bodyExpansion.start",function(a){return Ot(o),Rt(r._animationStarted(a))})("@bodyExpansion.done",function(a){return Ot(o),Rt(r._animationDone(a))}),D(3,"div",2),Vn(4,1),pt(5,Nqe,0,0,"ng-template",3),U(),Vn(6,2),U()}2&i&&(Q(),_e("@bodyExpansion",r._getExpandedState())("id",r.id),pi("aria-labelledby",r._headerId),Q(4),_e("cdkPortalOutlet",r._portal))},dependencies:[C2],styles:['.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[Yie.bodyExpansion]},changeDetection:0})}}return n})();function tre(n){return"void"===n.fromState}let nre=(()=>{class n{constructor(e,i,r,o,s,a,l){this.panel=e,this._element=i,this._focusMonitor=r,this._changeDetectorRef=o,this._animationMode=a,this._parentChangeSubscription=Xn.EMPTY,this.tabIndex=0;const c=e.accordion?e.accordion._stateChanges.pipe(qi(d=>!(!d.hideToggle&&!d.togglePosition))):K0;this.tabIndex=parseInt(l||"")||0,this._parentChangeSubscription=Yl(e.opened,e.closed,c,e._inputChanges.pipe(qi(d=>!!(d.hideToggle||d.disabled||d.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(qi(()=>e._containsFocus())).subscribe(()=>r.focusVia(i,"program")),s&&(this.expandedHeight=s.expandedHeight,this.collapsedHeight=s.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:Ad(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static{this.\u0275fac=function(i){return new(i||n)($(ere,1),$(Nn),$(Th),$(vo),$(Jie,8),$(_s,8),zl("tabindex"))}}static{this.\u0275cmp=bt({type:n,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,r){1&i&&ze("click",function(){return r._toggle()})("keydown",function(s){return r._keydown(s)}),2&i&&(pi("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),zi("height",r._getHeaderHeight()),Un("mat-expanded",r._isExpanded())("mat-expansion-toggle-indicator-after","after"===r._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===r._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===r._animationMode))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ba(e)]},standalone:!0,features:[rs,Nr],ngContentSelectors:Hqe,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,r){1&i&&(Yr(Uqe),D(0,"span",0),Vn(1),Vn(2,1),Vn(3,2),U(),pt(4,Vqe,3,1,"span",1)),2&i&&(Un("mat-content-hide-toggle",!r._showToggle()),Q(4),Tt(4,r._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color);display:inline-block;display:var(--mat-expansion-legacy-header-indicator-display, inline-block)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color);display:none;display:var(--mat-expansion-header-indicator-display, none)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[Yie.indicatorRotate]},changeDetection:0})}}return n})(),qqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=Wt({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"],standalone:!0})}}return n})(),Gqe=(()=>{class n extends Dqe{constructor(){super(...arguments),this._ownHeaders=new sh,this.hideToggle=!1,this.displayMode="default",this.togglePosition="after"}ngAfterContentInit(){this._headers.changes.pipe(gd(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new IR(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=no(n)))(r||n)}})()}static{this.\u0275dir=Wt({type:n,selectors:[["mat-accordion"]],contentQueries:function(i,r,o){if(1&i&&Gr(o,nre,5),2&i){let s;an(s=ln())&&(r._headers=s)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){2&i&&Un("mat-accordion-multi",r.multi)},inputs:{hideToggle:[Ct.HasDecoratorInputTransform,"hideToggle","hideToggle",Jn],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],standalone:!0,features:[ui([{provide:u8,useExisting:n}]),rs,yi]})}}return n})(),ire=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,Pqe,Q1]})}}return n})();const Wqe=[eee,_N,$R,kN,$Z,pA,vJ,JZ,pA,fee,RJ,cx,FN,nie,Xie,ire,GN,UJ,l8,ud];let Wi=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[l8,Wqe,eee,_N,$R,kN,$Z,pA,vJ,JZ,pA,fee,RJ,cx,FN,nie,Xie,ire,GN,UJ,l8,ud]})}}return n})(),$qe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),jqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),rre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),h8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),Xqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,$qe,jqe,rre,h8]})}}return n})(),Kqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,hQe,Xqe]})}}return n})(),ore=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),sre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),Yqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,ore,sre]})}}return n})(),zx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[uI],imports:[mn,Wi,ud,h8,Yqe]})}}return n})(),Zqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),Jqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Zqe]})}}return n})(),are=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,gBe,Wi]})}}return n})(),f8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,are]})}}return n})(),eGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,f8]})}}return n})(),m8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,f8]})}}return n})(),tGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,eGe,m8,h8]})}}return n})(),nGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),iGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),rGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),oGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),sGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx]})}}return n})(),aGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,zx,ore,sre]})}}return n})(),lGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,ud,l1,Wi]})}}return n})(),Wb=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),cGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[MN],imports:[mn,Wi,lGe,Wb]})}}return n})(),qx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),wF=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,mn]})}}return n})(),dGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,qx,wF,Wi,m8]})}}return n})(),AGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fr,fr]})}}return n})(),hre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),fg=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),gGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,pA,mn,_N,AGe,$R,pA,fg,hre,Wb]})}}return n})(),_Ge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,pA,gGe,Wb]})}}return n})(),bGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,wF,qx]})}}return n})(),vGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({})}}return n})(),yGe=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-confirmation-dialog"]],decls:10,vars:4,consts:[[1,"confirmation-message"],["mat-dialog-title",""],["mat-dialog-content",""],["mat-dialog-actions",""],["mat-button","",3,"mat-dialog-close"],["mat-button","","cdkFocusInitial","",1,"submit-button",3,"mat-dialog-close"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"h1",1),ye(2),U(),D(3,"div",2),ye(4),U()(),D(5,"div",3)(6,"button",4),ye(7,"CANCEL"),U(),D(8,"button",5),ye(9,"OK"),U()()),2&i&&(Q(2),br(r.data.title),Q(2),br(r.data.message),Q(2),_e("mat-dialog-close",!1),Q(2),_e("mat-dialog-close",!0))},dependencies:[cs,Jl,H2,kc,ec],encapsulation:2})}}return n})();function MGe(n,t){if(1&n){const e=Dn();D(0,"span",0),ye(1,"Do you want to download and then purge old unused Configs to make space for new ones?"),U(),D(2,"button",1),ze("click",function(){return Ot(e),Rt(Le().showPurgeConfirmDialog())}),ye(3," DOWNLOAD & PURGE... "),U()}}let EGe=(()=>{class n{constructor(e){this.dialog=e,this.isLocalStorageSizeValid=!0}ngOnInit(){this.isLocalStorageSizeValid=(()=>{let t="";for(const[i,r]of Object.entries(localStorage))t+=i+r;return 3+16*t.length/8/1024<=768})()}showPurgeConfirmDialog(){const e=function CGe(){const n=new Set,t=Yi.getCustomConfigs(),e=new Map;for(const[r,o]of t.entries())void 0===o?.creationTime&&(o.creationTime=Date.now()),(Date.now()-o.creationTime)/2592e6>=6&&(e.set(r,Yi.createExportCustomConfigFromConfig(o)),n.add(o));return e.size>0&&Yi.downloadCustomConfigs(e),n}();0!==e.size?this.dialog.open(yGe,{panelClass:"cc-confirmation-dialog",data:{title:"Confirm to purge old Configs",message:"Are you sure to delete old Configs now?"}}).afterClosed().subscribe(r=>{r&&Yi.deleteCustomConfigs([...e])}):this.dialog.open(AA,{data:{title:"Download Error",message:"Could not download and purge old configs automatically! Please try it by yourself."}})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-download-and-purge-configs"]],decls:1,vars:1,consts:[[1,"exceed-local-storage-message"],["mat-flat-button","","title","Download old unused Custom Views as a backup file and then delete them in the browser.",1,"exceed-local-storage-button",3,"click"]],template:function(i,r){1&i&&pt(0,MGe,4,0),2&i&&Tt(0,r.isLocalStorageSizeValid?-1:0)},dependencies:[cs],styles:["[_nghost-%COMP%]{text-align:right;display:flex;flex-wrap:wrap;justify-content:center}.exceed-local-storage-message[_ngcontent-%COMP%]{display:block;text-align:left;padding:0 16px;color:#b02929}.exceed-local-storage-button[_ngcontent-%COMP%]{color:#fff;background-color:#b02929}.exceed-local-storage-button[_ngcontent-%COMP%]:hover{background-color:#8c1f1f}"]})}}return n})(),fre=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,l1,ud,mn,PR]})}}return n})(),SGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,l1,ud,mn,fre,Wb]})}}return n})();GM(RN,[Md,Cd,SN,CJ,cs,Jl,kc,ec,zm,qm,LJ,im,$0,LE,X0,OE,EGe],[]);let TGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[PN]})}}return n})(),IGe=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-note-dialog"]],decls:11,vars:2,consts:[[1,"cc-custom-config-note-dialog-container"],["mat-dialog-content","",1,"cc-note-input-container"],["appearance","fill",1,"note-input"],["matInput","","cdkAutosizeMinRows","10","cdkTextareaAutosize","",3,"ngModelChange","ngModel"],["mat-dialog-actions","",1,"cc-note-dialog-action-buttons"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(D(0,"div",0)(1,"div",1)(2,"mat-form-field",2)(3,"mat-label"),ye(4,"Custom Note"),U(),D(5,"textarea",3),ld("ngModelChange",function(s){return eu(r.data,s)||(r.data=s),s}),U()()(),D(6,"div",4)(7,"button",5),ye(8,"Cancel"),U(),D(9,"button",5),ye(10,"Ok"),U()()()),2&i&&(Q(5),ad("ngModel",r.data),Q(4),_e("mat-dialog-close",r.data))},dependencies:[Md,Cd,cs,Jl,kc,ec,qm,LJ,im,$0,X0],styles:["[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%]{padding:20px 24px}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-input-container[_ngcontent-%COMP%]{padding:0}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-input-container[_ngcontent-%COMP%] .note-input[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-dialog-action-buttons[_ngcontent-%COMP%]{justify-content:flex-end;padding:0}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:12px;margin:0 0 0 10px;color:#1b9cfc;background-color:#8a848414}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc}"]})}}return n})(),FGe=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.customConfigNote=this.customConfigItem.note,this.dialog.open(IGe,{width:"600px",data:this.customConfigNote}).afterClosed().subscribe(i=>{void 0!==i&&this.customConfigNote!==i&&(this.customConfigNote=i,Yi.editCustomConfigNote(this.customConfigItem.id,i))})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-note-dialog-button"]],inputs:{customConfigItem:"customConfigItem"},decls:2,vars:0,consts:[["title","Edit/View Note",1,"custom-config-note-dialog-button",3,"click"],[1,"fa","fa-pencil"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.openDialog()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{font-size:16px;padding:8px 10px;margin:0;background-color:transparent}button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}"]})}}return n})();function mre(n,t){const{mapSelectionMode:e,assignedMaps:i}=dx(t),r=[];for(const o of n.assignedMaps.keys())i.has(o)||r.push(n.assignedMaps.get(o));return{mapSelectionMode:n.mapSelectionMode!==e?n.mapSelectionMode:"",mapNames:r}}let DGe=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=mre(e,this.state.getValue());return r.length>0||i.length>0?"rgb(204, 204, 204)":"rgba(0, 0, 0, 0.87)"}static{this.\u0275fac=function(i){return new(i||n)($(Zr,16))}}static{this.\u0275pipe=ur({name:"customConfig2ApplicableColor",type:n,pure:!0})}}return n})(),kGe=(()=>{class n{transform(e){const{mapColors:i,mapSelectionMode:r}=e;return r===aI.MULTIPLE?[i.positive,i.neutral,i.negative,i.selected]:[i.positiveDelta,i.negativeDelta,i.selected]}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"customConfigColorSchemaBySelectionMode",type:n,pure:!0})}}return n})();function BGe(n,t){if(1&n&&(D(0,"p",2),xe(1,"i",8),ye(2),U()),2&n){const e=Le();Q(2),sn(" ",e.customConfigItem.metrics.edgeMetric,"")}}function PGe(n,t){if(1&n&&(D(0,"div",7),xe(1,"span",9),U()),2&n){const e=t.$implicit,i=Le();Q(),zi("background-color",i.customConfigItem.isApplicable?e:"rgb(204, 204, 204)")}}let RGe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o}applyCustomConfig(){Yi.applyCustomConfig(this.customConfigItem.id,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Mu),$(cc),$(Ki))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-apply-custom-config-button"]],inputs:{customConfigItem:"customConfigItem"},decls:17,vars:12,consts:[["mat-dialog-close","",3,"click","disabled","title"],[1,"config-metric-list"],[1,"config-metric"],[1,"fa","fa-arrows-alt"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],[1,"color-schema-container"],[1,"color-swatch-container"],[1,"fa","fa-exchange"],[1,"color-swatch"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"customConfig2ApplicableColor"),ze("click",function(){return r.applyCustomConfig()}),D(2,"div",1)(3,"p",2),xe(4,"i",3),ye(5),U(),D(6,"p",2),xe(7,"i",4),ye(8),U(),D(9,"p",2),xe(10,"i",5),ye(11),U(),pt(12,BGe,3,1,"p",2),D(13,"div",6),Or(14,PGe,2,2,"div",7,qr),qe(16,"customConfigColorSchemaBySelectionMode"),U()()()),2&i&&(zi("color",rt(1,8,r.customConfigItem)),Ua("title",r.customConfigItem.name),_e("disabled",!r.customConfigItem.isApplicable),Q(5),sn(" ",r.customConfigItem.metrics.areaMetric,""),Q(3),sn(" ",r.customConfigItem.metrics.heightMetric,""),Q(3),sn(" ",r.customConfigItem.metrics.colorMetric,""),Q(),Tt(12,r.customConfigItem.metrics.edgeMetric?12:-1),Q(2),Lr(rt(16,10,r.customConfigItem)))},dependencies:[Jl,DGe,kGe],styles:["[_nghost-%COMP%]{display:flex;flex:1}[_nghost-%COMP%] button[_ngcontent-%COMP%]{flex-direction:row;width:100%;margin:0;background-color:transparent}[_nghost-%COMP%] button[_ngcontent-%COMP%]:disabled{cursor:default}[_nghost-%COMP%] button[_ngcontent-%COMP%] .config-metric-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:10px}[_nghost-%COMP%] button[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:15px;margin:0;text-align:left}[_nghost-%COMP%] button[_ngcontent-%COMP%] p.config-name[_ngcontent-%COMP%]{flex:1 1 auto;width:100%}[_nghost-%COMP%] button[_ngcontent-%COMP%] p.config-metric[_ngcontent-%COMP%]{flex:0 0 9em}[_nghost-%COMP%] button[_ngcontent-%COMP%] .color-schema-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2px}[_nghost-%COMP%] button[_ngcontent-%COMP%] .color-schema-container[_ngcontent-%COMP%] .color-swatch-container[_ngcontent-%COMP%] .color-swatch[_ngcontent-%COMP%]{display:inline-block;width:16px;height:16px}"]})}}return n})(),OGe=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=mre(e,this.state.getValue());return r.length>0&&i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode and select the following map(s): ${r.join(", ")}.`:r.length>0?`To fulfill your view, please select the following map(s): ${r.join(", ")}.`:i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode.`:"Apply Custom View"}static{this.\u0275fac=function(i){return new(i||n)($(Zr,16))}}static{this.\u0275pipe=ur({name:"customConfig2ApplicableMessage",type:n,pure:!0})}}return n})(),LGe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase().trimEnd();return e.filter(o=>this.isItemMatchingSearchTerm(o,r))}isItemMatchingSearchTerm(e,i){const r=e.name.toLocaleLowerCase().includes(i),o=e.mapSelectionMode.toLocaleLowerCase().includes(i),s=Object.values(e.metrics).some(a=>a?.toLocaleLowerCase().includes(i));return r||o||s}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"filterCustomConfigDataBySearchTerm",type:n,pure:!0})}}return n})();const NGe=["matExpansionPanel"];function UGe(n,t){if(1&n){const e=Dn();D(0,"mat-list-item",5),qe(1,"customConfig2ApplicableMessage"),D(2,"div",6)(3,"p",7)(4,"strong")(5,"span",8),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(4).applyCustomConfig(r.id))}),ye(6),qe(7,"truncateText"),U()()()(),D(8,"div",9)(9,"p",10)(10,"span",8),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(4).applyCustomConfig(r.id))}),ye(11),qe(12,"truncateText"),U()(),xe(13,"cc-custom-config-note-dialog-button",11),U(),D(14,"div",12),xe(15,"cc-apply-custom-config-button",11),D(16,"button",13),ze("click",function(){const r=Ot(e).$implicit,o=Le(3).$implicit;return Rt(Le().removeCustomConfig(r.id,o.key))}),xe(17,"i",14),U()()()}if(2&n){const e=t.$implicit;Ua("title",rt(1,6,e)),Q(3),Ua("title",e.name),Q(3),sn(" ",Io(7,8,e.name,75)," "),Q(5),sn(" ",e.note?Io(12,11,e.note,95):"Add Note"," "),Q(2),_e("customConfigItem",e),Q(2),_e("customConfigItem",e)}}function HGe(n,t){if(1&n&&(D(0,"mat-list"),Or(1,UGe,18,14,"mat-list-item",5,qr),U()),2&n){const e=Le();Q(),Lr(e)}}function VGe(n,t){1&n&&(D(0,"div",4)(1,"p"),ye(2,"No configurations found."),U()())}function QGe(n,t){if(1&n&&pt(0,HGe,3,0,"mat-list")(1,VGe,3,0,"div",4),2&n){const e=t;Tt(0,e.length>0?0:-1),Q(),Tt(1,0===e.length?1:-1)}}function zGe(n,t){if(1&n){const e=Dn();D(0,"mat-expansion-panel",1,0)(2,"mat-expansion-panel-header",2),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le().toggleGroupExpansion(r.key))}),D(3,"mat-panel-title",3),ye(4," Custom View(s) in "),D(5,"strong"),ye(6),qe(7,"titlecase"),U(),ye(8),U()(),pt(9,QGe,2,2),qe(10,"filterCustomConfigDataBySearchTerm"),U()}if(2&n){let e;const i=t.$implicit,r=Le();_e("expanded",r.isGroupExpanded(i.key)||r.searchTerm.length>0),Q(6),sn(" ",rt(7,4,i.value.mapSelectionMode)," "),Q(2),sn(" mode for ",i.value.mapNames," "),Q(),Tt(9,(e=Io(10,6,i.value.customConfigItems,r.searchTerm))?9:-1,e)}}let qGe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o,this.searchTerm="",this.expandedStates={},this.manuallyToggled=new Set}ngOnChanges(e){if(e.searchTerm)if(e.searchTerm.currentValue.length>0)for(const i of Object.keys(this.expandedStates))this.expandedStates[i]=!0;else for(const i of Object.keys(this.expandedStates))this.manuallyToggled.has(i)||(this.expandedStates[i]=!1)}isGroupExpanded(e){return this.searchTerm.length>0?!this.manuallyToggled.has(e)||this.expandedStates[e]:this.expandedStates[e]||!1}toggleGroupExpansion(e){this.expandedStates[e]=!this.isGroupExpanded(e),this.manuallyToggled.add(e)}removeCustomConfig(e,i){Yi.deleteCustomConfig(e),this.expandedStates[i]=!0}applyCustomConfig(e){Yi.applyCustomConfig(e,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Mu),$(cc),$(Ki))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-custom-config-item-group"]],viewQuery:function(i,r){if(1&i&&ti(NGe,5),2&i){let o;an(o=ln())&&(r.matExpansionPanel=o.first)}},inputs:{customConfigItemGroups:"customConfigItemGroups",searchTerm:"searchTerm"},features:[xr],decls:3,vars:2,consts:[["matExpansionPanel",""],[1,"custom-config-item-group",3,"expanded"],[3,"click"],[1,"custom-config-item-group-title"],[1,"no-configs-found-message"],[3,"title"],[1,"metrics-box"],[1,"config-item-name",3,"title"],["mat-dialog-close","",3,"click"],[1,"custom-config-note"],[1,"custom-config-note-content"],[3,"customConfigItem"],[1,"custom-config-action-buttons"],["title","Remove Custom View",1,"remove-button",3,"click"],[1,"fa","fa-trash"]],template:function(i,r){1&i&&(Or(0,zGe,11,9,"mat-expansion-panel",1,qr),qe(2,"keyvalue")),2&i&&Lr(rt(2,0,r.customConfigItemGroups))},dependencies:[Jl,Wie,$ie,ere,nre,qqe,FGe,RGe,tz,_E,jJ,OGe,LGe],styles:[".custom-config-item-group-title[_ngcontent-%COMP%]{color:#000000de;display:inline-block}.metrics-box[_ngcontent-%COMP%]{margin-top:10px}.custom-config-note[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.custom-config-action-buttons[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:5px}p[_ngcontent-%COMP%]{font-size:15px;margin:0;white-space:pre-line}p.custom-config-note-content[_ngcontent-%COMP%]{margin-right:7px;font-size:13px}button[_ngcontent-%COMP%]{background-color:transparent}button.remove-button[_ngcontent-%COMP%]{font-size:16px;padding:8px 10px;margin:0}button.remove-button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}"]})}}return n})(),GGe=(()=>{class n{upload(){const e=Kte();e.addEventListener("change",()=>{this.uploadOnEvent(e)}),e.click()}uploadOnEvent(e){return k(function*(){const i=yield Promise.all(ene(e.files));for(const r of i)try{Yi.importCustomConfigs(r)}catch{}})()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-upload-custom-config-button"]],decls:2,vars:0,consts:[["title","Upload Custom View (.cc.config.json file).",1,"action-button",3,"click"],[1,"fa","fa-folder-open"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.upload()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),WGe=(()=>{class n{constructor(e){this.dialog=e}showAddCustomConfigDialog(){this.dialog.open(RN,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ns))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-add-custom-config-button"]],decls:2,vars:0,consts:[["title","Create new Custom View",3,"click"],[1,"fa","fa-plus"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.showAddCustomConfigDialog()}),xe(1,"i",1),U())},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),KGe=(()=>{class n{constructor(e){this.downloadCustomConfigService=e}ngOnInit(){this.subscription=this.downloadCustomConfigService.downloadableCustomConfigs$.subscribe(e=>{this.downloadableConfigs=e})}ngOnDestroy(){this.subscription.unsubscribe()}downloadPreloadedCustomConfigs(){!function XGe(n){const t={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:n},e=Lm.getNewTimestamp()+".cc.config.json";BN.downloadData(JSON.stringify(t,z2),e)}(this.downloadableConfigs)}static{this.\u0275fac=function(i){return new(i||n)($(PN))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-download-custom-configs-button"]],decls:2,vars:1,consts:[["title","Download Custom View related to currently uploaded maps, if any.",3,"click","disabled"],[1,"fa","fa-download"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.downloadPreloadedCustomConfigs()}),xe(1,"i",1),U()),2&i&&_e("disabled",0===r.downloadableConfigs.size)},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),YGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,mn,fre,vGe,SGe,TGe,ud,hre,Wb]})}}return n})();GM(QJ,[Md,Cd,EJ,ec,zm,qm,Gqe,nu,GGe,WGe,KGe,qGe],[Kn]);let ZGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,wF,qx]})}}return n})(),JGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,FN]})}}return n})(),eWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),tWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,m8,JGe,eWe,qx,Wi]})}}return n})(),nWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wb]})}}return n})();const iWe=Kt(su,n=>0===n.length);let rWe=(()=>{class n{constructor(e){this.hideBlacklistItemsIndicator$=e.select(iWe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-search-panel-mode-selector"]],inputs:{searchPanelMode:"searchPanelMode",updateSearchPanelMode:"updateSearchPanelMode"},decls:4,vars:3,consts:[["id","blacklist","value","blacklist",3,"click"],[1,"fa","fa-eye-slash"],[1,"has-blacklist-items-indicator",3,"hidden"]],template:function(i,r){1&i&&(D(0,"mat-button-toggle",0),ze("click",function(){return r.updateSearchPanelMode("blacklist")}),xe(1,"i",1)(2,"div",2),qe(3,"async"),U()),2&i&&(Q(2),_e("hidden",rt(3,1,r.hideBlacklistItemsIndicator$)))},dependencies:[tx,Kn],styles:["[_nghost-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{height:100%;align-items:center}[_nghost-%COMP%] .has-blacklist-items-indicator[_ngcontent-%COMP%]{position:absolute;margin-left:18px;margin-top:-32px;border-radius:50%;background-color:red;width:5px;height:5px}[_nghost-%COMP%] .mat-button-toggle-checked[_ngcontent-%COMP%] .mat-pseudo-checkbox[_ngcontent-%COMP%]{display:none}"]})}}return n})();const pre=n=>Kt(su,t=>oWe(n,t)),oWe=(n,t)=>{const e=t.filter(i=>i.type===n);return e.sort((i,r)=>i.path.localeCompare(r.path)),e};function sWe(n,t){1&n&&(D(0,"mat-list-item"),ye(1,"Add pattern via search or node context-menu"),U())}function aWe(n,t){if(1&n){const e=Dn();D(0,"mat-list-item",4)(1,"button",5),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(2).removeBlacklistEntry(r))}),xe(2,"em",6),ye(3),U()()}if(2&n){const e=t.$implicit;_e("title",e.path),Q(3),sn(" ",e.path," ")}}function lWe(n,t){if(1&n&&(D(0,"div"),pt(1,sWe,2,0,"mat-list-item"),Or(2,aWe,4,2,"mat-list-item",4,qr),U()),2&n){const e=t;Q(),Tt(1,0===e.length?1:-1),Q(),Lr(e)}}function cWe(n,t){1&n&&(D(0,"mat-list-item"),ye(1,"Add pattern via search or node context-menu"),U())}function dWe(n,t){if(1&n){const e=Dn();D(0,"mat-list-item",4)(1,"button",5),ze("click",function(){const r=Ot(e).$implicit;return Rt(Le(2).removeBlacklistEntry(r))}),xe(2,"em",6),ye(3),U()()}if(2&n){const e=t.$implicit;_e("title",e.path),Q(3),sn(" ",e.path," ")}}function uWe(n,t){if(1&n&&(D(0,"div"),pt(1,cWe,2,0,"mat-list-item"),Or(2,dWe,4,2,"mat-list-item",4,qr),U()),2&n){const e=t;Q(),Tt(1,0===e.length?1:-1),Q(),Lr(e)}}let hWe=(()=>{class n{constructor(e){this.store=e,this.flattenedItems$=this.store.select(pre("flatten")),this.excludedItems$=this.store.select(pre("exclude"))}removeBlacklistEntry(e){this.store.dispatch(n2({item:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-blacklist-panel"]],decls:14,vars:6,consts:[[1,"cc-blacklist-panel-list"],[1,"cc-header-text"],["matTooltip","Flattened nodes are shown as flat/short buildings and are included in folder metrics",1,"fa","fa-question-circle-o"],["matTooltip","Excluded buildings are not shown in the map and are not included in folder metrics",1,"fa","fa-question-circle-o"],[3,"title"],["mat-button","",3,"click"],["title","Remove list item",1,"fa","fa-minus-square"]],template:function(i,r){if(1&i&&(D(0,"mat-list",0)(1,"div")(2,"h3",1),ye(3,"Flattened"),U(),xe(4,"em",2),U(),pt(5,lWe,4,1,"div"),qe(6,"async"),U(),D(7,"mat-list",0)(8,"div")(9,"h3",1),ye(10,"Excluded"),U(),xe(11,"em",3),U(),pt(12,uWe,4,1,"div"),qe(13,"async"),U()),2&i){let o,s;Q(5),Tt(5,(o=rt(6,2,r.flattenedItems$))?5:-1,o),Q(7),Tt(12,(s=rt(13,4,r.excludedItems$))?12:-1,s)}},dependencies:[cs,WZ,Wie,$ie,Kn],styles:["[_nghost-%COMP%] .cc-header-text[_ngcontent-%COMP%]{display:inline-block;margin:0 .25em 0 0}"]})}}return n})(),fWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),mWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),pWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),Are=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi]})}}return n})();const A8=Kt(hb,n=>""===n||"!"===n||","===n),MF=n=>(n=n.trim()).startsWith("*")||n.endsWith("*")||n.startsWith("/")||n.startsWith("./")||n.startsWith('"')||n.endsWith('"')||n.startsWith("!")?n:`*${n}*`,gre=(n,t,e)=>{const i=e.trim().split(",");if(e.trim().startsWith("!")){i[0]=i[0].slice(1);for(const r of i){const o=`!${MF(r)}`;if(n.some(s=>o===s.path&&t===s.type))return!0}return!1}for(const r of i)if(n.some(o=>MF(r)===o.path&&t===o.type))return!0;return!1},AWe=Kt(hb,A8,su,(n,t,e)=>!!t||gre(e,"flatten",n)),gWe=Kt(hb,A8,su,(n,t,e)=>!!t||gre(e,"exclude",n)),_We=(n,t)=>{const e=[],i=t.split(",");if(i[0].startsWith("!")){i[0]=i[0].slice(1);for(const r of i)r.length>0&&e.push({path:`!${MF(r)}`,type:n})}else for(let r of i)if(r.length>0){if(r.startsWith("!"))break;r=MF(r),e.push({path:r,type:n})}return e},bWe=(n,t,e)=>{const i=[...t,...e];for(const{file:r}of n)if(!vWe(r,i))return!1;return!0},vWe=(n,t)=>{for(const e of yo(n.map))if(yWe(e,t))return!1;return!0},yWe=(n,t)=>No(n)&&n.data.path&&!Ch(n.data.path,t,"exclude");let _re=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.dialog=r,this.doBlacklistItemsResultInEmptyMap$=this.actions$.pipe(za(HP),hd(this.store.select(au),this.store.select(su)),Qe(([o,s,a])=>({items:o.items,resultsInEmptyMap:bWe(s,a,o.items)})),lx()),this.showErrorDialogIfBlacklistItemsResultInEmptyMap$=Ao(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(qi(o=>o.resultsInEmptyMap),Dr(()=>{this.dialog.open(AA,{data:{title:"Blacklist Error",message:"Excluding all buildings is not possible."}})})),{dispatch:!1}),this.addBlacklistItems$=Ao(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(qi(o=>!o.resultsInEmptyMap),Qe(o=>t2({items:o.items}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t),ve(Ns))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),xWe=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.addBlacklistItemsIfNotResultsInEmptyMapEffect=r,this.searchPattern2BlacklistItems$=this.actions$.pipe(za("BlacklistSearchPatternAction"),hd(this.store.select(hb)),Qe(([o,s])=>({type:o.action.type,blacklistItems:_We(o.action.type,s)})),lx()),this.flattenSearchPattern$=Ao(()=>this.searchPattern2BlacklistItems$.pipe(qi(o=>"flatten"===o.type),Dr(o=>{this.store.dispatch(t2({items:o.blacklistItems})),this.store.dispatch(am({value:""}))})),{dispatch:!1}),this.excludeSearchPattern$=Ao(()=>this.searchPattern2BlacklistItems$.pipe(qi(o=>"exclude"===o.type),Dr(()=>{this.addBlacklistItemsIfNotResultsInEmptyMapEffect.doBlacklistItemsResultInEmptyMap$.pipe($o(1),qi(o=>!o.resultsInEmptyMap),Dr(()=>{this.store.dispatch(am({value:""}))})).subscribe()}),Qe(o=>HP({items:o.blacklistItems}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t),ve(_re))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function CWe(n,t){if(1&n){const e=Dn();D(0,"button",12),ze("click",function(){return Ot(e),Rt(Le().resetSearchPattern())}),xe(1,"i",13),U()}}let MWe=(()=>{class n{constructor(e){this.store=e,this.searchPattern$=this.store.select(hb),this.isSearchPatternEmpty$=this.store.select(A8),this.isFlattenPatternDisabled$=this.store.select(AWe),this.isExcludePatternDisabled$=this.store.select(gWe),this.setSearchPatternDebounced=Eu(i=>this.setSearchPattern(i),400)}setSearchPattern(e){this.store.dispatch(am({value:e.target.value}))}resetSearchPattern(){this.store.dispatch(am({value:""}))}blacklistSearchPattern(e){this.store.dispatch((n=>({type:"BlacklistSearchPatternAction",action:{type:n}}))(e))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-search-bar"]],decls:21,vars:13,consts:[["menu","matMenu"],[1,"fa","fa-search","cc-search-icon"],[1,"cc-search-input"],["type","text","placeholder","Search: *.js, **/app/*",3,"input","value"],["data-testid","search-bar-clear-button",1,"cc-small-action-button","cc-clear-icon"],["title","Add to Blacklist",1,"cc-small-action-button",3,"matMenuTriggerFor"],[1,"fa","fa-ellipsis-h"],["mat-menu-item","","disabled",""],["mat-menu-item","","data-testid","search-bar-flatten-button",3,"click","disabled"],[1,"fa","fa-eye-slash"],["mat-menu-item","","data-testid","search-bar-exclude-button",3,"click","disabled"],[1,"fa","fa-ban"],["data-testid","search-bar-clear-button",1,"cc-small-action-button","cc-clear-icon",3,"click"],[1,"fa","fa-times"]],template:function(i,r){if(1&i){const o=Dn();xe(0,"i",1),D(1,"div",2)(2,"input",3),qe(3,"async"),ze("input",function(a){return Ot(o),Rt(r.setSearchPatternDebounced(a))}),U(),pt(4,CWe,2,0,"button",4),qe(5,"async"),U(),D(6,"button",5),xe(7,"i",6),U(),D(8,"mat-menu",null,0)(10,"button",7),ye(11,"Add Pattern to Blacklist"),U(),xe(12,"mat-divider"),D(13,"button",8),qe(14,"async"),ze("click",function(){return Ot(o),Rt(r.blacklistSearchPattern("flatten"))}),xe(15,"i",9),ye(16," Flatten "),U(),D(17,"button",10),qe(18,"async"),ze("click",function(){return Ot(o),Rt(r.blacklistSearchPattern("exclude"))}),xe(19,"i",11),ye(20," Exclude "),U()()}if(2&i){const o=Lo(9);Q(2),_e("value",rt(3,5,r.searchPattern$)),Q(2),Tt(4,rt(5,7,r.isSearchPatternEmpty$)?-1:4),Q(2),_e("matMenuTriggerFor",o),Q(7),_e("disabled",rt(14,9,r.isFlattenPatternDisabled$)),Q(4),_e("disabled",rt(18,11,r.isExcludePatternDisabled$))}},dependencies:[Su,YT,wb,DN,Kn],styles:["[_nghost-%COMP%]{display:inline-block;text-wrap:nowrap}[_nghost-%COMP%] .cc-search-icon[_ngcontent-%COMP%]{margin-right:8px;min-width:16px}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%]{display:inline-block;position:relative}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:204px;border-width:0 0 1px;border-color:#d3d3d3;outline:0;font-size:11pt;height:24px}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:#0374c9;box-shadow:0 1px #0374c9}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{vertical-align:middle;display:inline-block;position:relative;height:30px}[_nghost-%COMP%] .cc-search-input[_ngcontent-%COMP%] .cc-clear-icon[_ngcontent-%COMP%]{position:absolute;right:0;margin:0;height:24px;width:24px;display:flex;justify-content:center;align-items:center;top:0}[_nghost-%COMP%] button[_ngcontent-%COMP%]{background-color:transparent;box-shadow:none;margin-top:2px;font-size:14px}[_nghost-%COMP%] button.cc-small-action-button[_ngcontent-%COMP%]{margin:0 5px;display:inline-block;height:24px;width:24px;vertical-align:top}[_nghost-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#d3d3d3;border-radius:50%}"]})}}return n})();const EF=(n,t,e)=>t.reduce((i,r)=>Ch(r.path,e,n)?i+1:i,0),EWe=Kt(gZ,su,JT,(n,t,e)=>{const i=n.filter(r=>No(r));return{fileCount:`${i.length}/${e.length}`,flattenCount:`${EF("flatten",i,t)}/${EF("flatten",e,t)}`,excludeCount:`${EF("exclude",i,t)}/${EF("exclude",e,t)}`}}),bre=Kt(so,n=>n.sortingOrderAscending);let SWe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.sortingOrderAscending$=this.store.select(bre)}onClick(){this.store.dispatch(XN())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-sorting-button"]],decls:4,vars:7,consts:[[1,"box-rounded",3,"click","title"],[3,"className"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),ze("click",function(){return r.onClick()}),xe(2,"i",1),qe(3,"async"),U()),2&i&&(sd("title","Toggle sort order (currently ",rt(1,3,r.sortingOrderAscending$)?"ascending":"descending",")"),Q(2),_e("className",rt(3,5,r.sortingOrderAscending$)?"fa fa-sort-amount-asc":"fa fa-sort-amount-desc"))},dependencies:[Kn],styles:["button[_ngcontent-%COMP%]{height:25px;background:#e6e6e6;padding:1px 8px}.box-rounded[_ngcontent-%COMP%]{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}"]})}}return n})();const vre=Kt(lc,n=>n.sortingOption);function TWe(n,t){if(1&n&&(D(0,"mat-option",1),ye(1),U()),2&n){const e=t.$implicit;_e("value",e),Q(),sn(" ",e," ")}}let IWe=(()=>{class n{constructor(e){this.store=e,this.sortingOptions=Object.values(Q2),this.selectedSortingOption$=e.select(vre)}handleSelectedSortingOptionChanged(e){this.store.dispatch(e2(e.value))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-sorting-option"]],decls:4,vars:3,consts:[["title","Sort by","panelClass","cc-sorting-option",1,"sorting-option-select",3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(D(0,"mat-select",0),qe(1,"async"),ze("selectionChange",function(s){return r.handleSelectedSortingOptionChanged(s)}),Or(2,TWe,2,2,"mat-option",1,qr),U()),2&i&&(_e("value",rt(1,1,r.selectedSortingOption$)),Q(2),Lr(r.sortingOptions))},dependencies:[Gm,du,Kn],styles:[".sorting-option-select[_ngcontent-%COMP%]{max-width:88px}"]})}}return n})(),FWe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isSearchPanelPinned$=this.store.select(yJ)}onClick(){this.store.dispatch(u5())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-thumb-tack-button"]],decls:3,vars:3,consts:[["title","Pin file explorer",1,"box-rounded",3,"click","ngClass"],[1,"fa","fa-thumb-tack"]],template:function(i,r){1&i&&(D(0,"button",0),qe(1,"async"),ze("click",function(){return r.onClick()}),xe(2,"i",1),U()),2&i&&_e("ngClass",rt(1,1,r.isSearchPanelPinned$)?"pinned":"")},dependencies:[nu,Kn],styles:[".pinned[_ngcontent-%COMP%]{background-color:#979797}button[_ngcontent-%COMP%]{height:25px;background:#e6e6e6;padding:1px 8px}.box-rounded[_ngcontent-%COMP%]{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}"]})}}return n})();function DWe(n,t){if(1&n&&(D(0,"span",0),ye(1),xe(2,"i",1),U(),D(3,"span",2),ye(4),xe(5,"img",3),U(),D(6,"span",4),ye(7),xe(8,"i",5),U(),D(9,"div",6),xe(10,"cc-thumb-tack-button"),U(),D(11,"div",6),xe(12,"cc-sorting-button")(13,"cc-sorting-option"),U()),2&n){const e=t;Q(),br(e.fileCount),Q(3),br(e.flattenCount),Q(3),br(e.excludeCount)}}let kWe=(()=>{class n{constructor(e){this.matchingFileCounters$=e.select(EWe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-matching-files-counter"]],decls:2,vars:3,consts:[["title","Files matching search pattern",1,"box-rounded","node-count"],[1,"fa","fa-file"],["title","Files flattened",1,"box-rounded","node-count",2,"display","inline-flex"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"fa","png-icon-files-counter"],["title","Files excluded",1,"box-rounded","node-count"],[1,"fa","fa-ban"],[1,"clickable-component"]],template:function(i,r){if(1&i&&(pt(0,DWe,14,3),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.matchingFileCounters$))?0:-1,o)}},dependencies:[SWe,IWe,FWe,Kn],styles:["[_nghost-%COMP%] .node-count[_ngcontent-%COMP%]{background:#eee;color:#000;padding:4px 8px;margin-right:8px}[_nghost-%COMP%] .node-count[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:6px}[_nghost-%COMP%] .box-rounded[_ngcontent-%COMP%]{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}[_nghost-%COMP%] .png-icon-files-counter[_ngcontent-%COMP%]{width:19px;height:16px;margin-left:6px}[_nghost-%COMP%] .clickable-component[_ngcontent-%COMP%]{display:inline-block;color:#000;margin-left:-9px}"]})}}return n})();function hf(n){if("object"!=typeof n)return n;var t,e,i=Object.prototype.toString.call(n);if("[object Object]"===i){if(n.constructor!==Object&&"function"==typeof n.constructor)for(t in e=new n.constructor,n)n.hasOwnProperty(t)&&e[t]!==n[t]&&(e[t]=hf(n[t]));else for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:hf(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=hf(n[t]);return e}if("[object Array]"===i){for(t=n.length,e=Array(t);t--;)e[t]=hf(n[t]);return e}return"[object Set]"===i?(e=new Set,n.forEach(function(r){e.add(hf(r))}),e):"[object Map]"===i?(e=new Map,n.forEach(function(r,o){e.set(hf(o),hf(r))}),e):"[object Date]"===i?new Date(+n):"[object RegExp]"===i?((e=new RegExp(n.source,n.flags)).lastIndex=n.lastIndex,e):"[object DataView]"===i?new n.constructor(hf(n.buffer)):"[object ArrayBuffer]"===i?n.slice(0):"Array]"===i.slice(-6)?new n.constructor(n):n}const BWe=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),PWe=(n,t)=>BWe.compare(n.name,t.name),RWe=(n,t)=>n.attributes.unary-t.attributes.unary,yre=(n,t,e)=>{if(!n)return;for(let r=0;r{const e=n===Q2.NUMBER_OF_FILES?RWe:PWe;return t?e:(i,r)=>-1*e(i,r)})(t,e);return n.children=((n,t)=>{const e=[],i=[];for(const r of t.children)r.type===qa.FOLDER?e.push(r):i.push(r);return e.sort(n),i.sort(n),[...e,...i]})(i,n),n},NWe=Kt(Hc,vre,bre,(n,t,e)=>yre(hf(n.unifiedMapNode),t,e)),wre=Kt(oN,n=>n.rightClickedNodeData);let xre=(()=>{class n{transform(e,i){return g8(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"areaMetricValid",type:n,pure:!0})}}return n})();function g8(n,t){return n.deltas?.[t]<0||n.attributes?.[t]>0}let UWe=(()=>{class n{transform(e,i){return No(e)?"fa fa-file-o":i?"fa fa-folder-open":"fa fa-folder"}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"mapTreeViewItemIconClass",type:n,pure:!0})}}return n})(),HWe=(()=>{class n{static{this.defaultColor="#000000"}static{this.areMetricZeroColor="#BDBDBD"}constructor(e){this.state=e}transform(e){const{areaMetric:i}=this.state.getValue().dynamicSettings;return g8(e,i)?No(e)?void 0:f2(e,this.state.getValue().fileSettings.markedPackages)||n.defaultColor:n.areMetricZeroColor}static{this.\u0275fac=function(i){return new(i||n)($(Zr,16))}}static{this.\u0275pipe=ur({name:"mapTreeViewItemIconColor",type:n,pure:!1})}}return n})(),VWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-item-icon"]],inputs:{node:"node",isOpen:"isOpen"},decls:3,vars:9,consts:[["role","img","aria-hidden","true"]],template:function(i,r){1&i&&(xe(0,"span",0),qe(1,"mapTreeViewItemIconClass"),qe(2,"mapTreeViewItemIconColor")),2&i&&(cl(Io(1,4,r.node,r.isOpen)),zi("color",rt(2,7,r.node)))},dependencies:[UWe,HWe],encapsulation:2})}}return n})();const QWe=Kt(Hc,n=>n.unifiedMapNode?.attributes.unary);let Cre=(()=>{class n{transform(e){return No(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"isNodeLeaf",type:n,pure:!0})}}return n})();function zWe(n,t){if(1&n&&(D(0,"span"),ye(1),qe(2,"async"),U()),2&n){const e=Le(2);Q(),sn("",(100*e.unaryValue/rt(2,1,e.rootUnary$)).toFixed(0),"%")}}function qWe(n,t){1&n&&ye(0,"File")}function GWe(n,t){1&n&&ye(0,"Files")}function WWe(n,t){if(1&n&&(D(0,"span",2),ye(1),pt(2,qWe,1,0,"ng-template",3)(3,GWe,1,0,"ng-template",4),U()),2&n){const e=Le(2);_e("ngPlural",e.unaryValue),Q(),sn(" ",e.unaryValue," ")}}function $We(n,t){if(1&n&&(D(0,"span",1),pt(1,zWe,3,3,"span")(2,WWe,4,2),U()),2&n){const e=Le();Q(),Tt(1,e.isHovered?2:1)}}let jWe=(()=>{class n{constructor(e){this.searchedNodePaths$=e.select($L),this.rootUnary$=e.select(QWe),this.areaMetric$=e.select(bb)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-item-name"]],inputs:{node:"node",isHovered:"isHovered",unaryValue:"unaryValue",unaryPercentage:"unaryPercentage"},decls:7,vars:17,consts:[[1,"node-name"],[1,"unary-number"],[3,"ngPlural"],["ngPluralCase","=1"],["ngPluralCase","other"]],template:function(i,r){1&i&&(D(0,"span",0),qe(1,"async"),qe(2,"areaMetricValid"),qe(3,"async"),ye(4),U(),pt(5,$We,3,1,"span",1),qe(6,"isNodeLeaf")),2&i&&(Un("flattened",r.node.isFlattened)("noAreaMetric",!Io(2,10,r.node,rt(1,8,r.areaMetric$)))("tree-search-result",rt(3,13,r.searchedNodePaths$).has(r.node.path)),Q(4),sn(" ",r.node.name,"\n"),Q(),Tt(5,rt(6,15,r.node)?-1:5))},dependencies:[hB,ez,Kn,xre,Cre],styles:[".unary-number[_ngcontent-%COMP%]{color:#a3a3a3;font-size:.8em;margin-top:1px}.node-name.flattened[_ngcontent-%COMP%]{color:gray}.node-name.noAreaMetric[_ngcontent-%COMP%]{color:#bdbdbd}.tree-search-result[_ngcontent-%COMP%]{background-color:#fc801bab}"]})}}return n})();function XWe(n,t){1&n&&xe(0,"i",1)}let KWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-item-option-buttons"]],inputs:{isFlattened:"isFlattened",openNodeContextMenu:"openNodeContextMenu"},decls:5,vars:1,consts:[["role","button","aria-hidden","true",1,"right-aligned"],["title","Flattened",1,"flattened","fa","fa-eye-slash"],[1,"small-action-button"],["title","Open Node-Context-Menu",3,"click"],[1,"fa","fa-ellipsis-h"]],template:function(i,r){1&i&&(D(0,"span",0),pt(1,XWe,1,0,"i",1),D(2,"div",2)(3,"button",3),ze("click",function(s){return r.openNodeContextMenu(s)}),xe(4,"i",4),U()()()),2&i&&(Q(),Tt(1,r.isFlattened?1:-1))},styles:["button[_ngcontent-%COMP%]{display:inline-block;height:19px;width:24px;min-height:0;margin:0;background-color:transparent;box-shadow:none;vertical-align:top}button[_ngcontent-%COMP%]:hover{background-color:#ddd;color:#000000de}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{position:absolute;top:2px;left:6px}.right-aligned[_ngcontent-%COMP%]{position:absolute;right:6px}.right-aligned[_ngcontent-%COMP%] i.flattened[_ngcontent-%COMP%]{color:gray}"]})}}return n})();function YWe(n,t){if(1&n&&xe(0,"cc-map-tree-view-item-option-buttons",4),2&n){const e=Le(2);_e("isFlattened",e.node.isFlattened)("openNodeContextMenu",e.openNodeContextMenu)}}function ZWe(n,t){if(1&n&&(D(0,"div"),xe(1,"cc-map-tree-view-level",5),U()),2&n){const e=t.$implicit,i=Le(3);Q(),_e("node",e)("depth",i.depth+1)}}function JWe(n,t){1&n&&Or(0,ZWe,2,2,"div",null,qr),2&n&&Lr(Le(2).node.children)}function e$e(n,t){if(1&n){const e=Dn();D(0,"div"),qe(1,"isNodeLeaf"),D(2,"div",1),qe(3,"async"),qe(4,"async"),qe(5,"async"),qe(6,"areaMetricValid"),ze("mouseenter",function(){return Ot(e),Rt(Le().onMouseEnter())})("mouseleave",function(){return Ot(e),Rt(Le().onMouseLeave())})("click",function(){return Ot(e),Rt(Le().onClick())})("contextmenu",function(r){return Ot(e),Rt(Le().openNodeContextMenu(r))}),xe(7,"cc-map-tree-view-item-icon",2)(8,"cc-map-tree-view-item-name",3),qe(9,"async"),pt(10,YWe,1,2,"cc-map-tree-view-item-option-buttons",4),qe(11,"async"),qe(12,"async"),qe(13,"areaMetricValid"),U(),D(14,"div"),pt(15,JWe,2,0),U()()}if(2&n){let e;const i=Le();(function rH(n,t,e,i,r){od(zo,Yd,I0(Dt(),n,t,e,i,r),!0)})("tree-element-",i.depth," ",rt(1,23,i.node)?"tree-leaf":"tree-parent",""),Q(2),hh("tree-element-label-",i.depth," tree-element-label"),Un("hovered",rt(3,25,i.hoveredNodeId$)===i.node.id)("marked",(null==(e=rt(4,27,i.rightClickedNodeData$))?null:e.nodeId)===i.node.id),Ua("id",i.node.path),_e("title",Io(6,31,i.node,rt(5,29,i.areaMetric$))?"":"No Node Area for Chosen Metric"),Q(5),_e("node",i.node)("isOpen",i.isOpen),Q(),_e("node",i.node)("isHovered",rt(9,34,i.hoveredNodeId$)===i.node.id)("unaryValue",i.node.attributes.unary),Q(2),Tt(10,rt(11,36,i.hoveredNodeId$)===i.node.id&&Io(13,40,i.node,rt(12,38,i.areaMetric$))?10:-1),Q(4),hh("tree-element-children tree-element-children-",i.depth,""),Q(),Tt(15,i.isOpen?15:-1)}}let t$e=(()=>{class n{constructor(e,i,r,o,s){this.store=e,this.threeSceneService=i,this.idToBuildingService=r,this.threeRendererService=o,this.codeMapMouseEventService=s,this.hoveredNodeId$=this.store.select(Yw),this.rightClickedNodeData$=this.store.select(wre),this.areaMetric$=this.store.select(bb),this.isOpen=!1,this.areMetricValid=!1,this.openNodeContextMenu=a=>{a.preventDefault(),a.stopPropagation(),this.areaMetric$.subscribe(l=>this.areMetricValid=g8(this.node,l)).unsubscribe(),this.areMetricValid&&(this.store.dispatch(gb({value:{nodeId:this.node.id,xPositionOfRightClickEvent:a.clientX,yPositionOfRightClickEvent:a.clientY}})),document.querySelector(".tree-element-0").addEventListener("scroll",this.scrollFunction))},this.scrollFunction=()=>{this.store.dispatch(gb({value:null})),document.querySelector(".tree-element-0").removeEventListener("scroll",this.scrollFunction)}}ngOnInit(){this.isOpen=0===this.depth}onMouseEnter(){const e=this.idToBuildingService.get(this.node.id),i=this.threeSceneService.labels?.children;this.codeMapMouseEventService.setLabelHoveredLeaf(e,i),this.codeMapMouseEventService.hoverNode(this.node.id),this.store.dispatch(Ab({value:this.node.id}))}onMouseLeave(){this.threeSceneService.resetLabel(),this.codeMapMouseEventService.unhoverNode(),this.codeMapMouseEventService.clearLabelHoveredBuilding(),this.store.dispatch(Ab({value:null}))}onClick(){this.isOpen=!this.isOpen;const e=this.idToBuildingService.get(this.node.id);this.codeMapMouseEventService.drawLabelSelectedBuilding(e),this.threeSceneService.selectBuilding(e),this.threeSceneService.clearConstantHighlight(),this.threeRendererService.render()}static{this.\u0275fac=function(i){return new(i||n)($($t),$(Vc),$(jw),$(Ki),$(Zw))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view-level"]],inputs:{node:"node",depth:"depth"},decls:1,vars:1,consts:[[3,"class"],[3,"mouseenter","mouseleave","click","contextmenu","id","title"],[3,"node","isOpen"],[3,"node","isHovered","unaryValue"],[3,"isFlattened","openNodeContextMenu"],[3,"node","depth"]],template:function(i,r){1&i&&pt(0,e$e,16,43,"div",0),2&i&&Tt(0,r.node.isExcluded?-1:0)},dependencies:[VWe,jWe,KWe,n,Kn,xre,Cre],styles:["[_nghost-%COMP%]{white-space:nowrap}.tree-element-label[_ngcontent-%COMP%]{cursor:default}.tree-element-label[_ngcontent-%COMP%]:focus{outline:none}.tree-element-label[_ngcontent-%COMP%]:hover, .tree-element-label.hovered[_ngcontent-%COMP%]{background-color:#efefef;border-radius:2px;cursor:pointer}.tree-element-label.marked[_ngcontent-%COMP%]{background-color:#efefef;border-radius:2px}.tree-element-0[_ngcontent-%COMP%]{overflow-y:auto;max-height:400px;margin-left:3px;margin-top:10px}.tree-element-0[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:0;padding:0;position:relative}.tree-element-0[_ngcontent-%COMP%] .tree-element-children[_ngcontent-%COMP%]{margin-left:19px;margin-right:4px}"]})}}return n})();function n$e(n,t){1&n&&xe(0,"cc-map-tree-view-level",0),2&n&&_e("node",t)("depth",0)}let i$e=(()=>{class n{constructor(e){this.mapTreeViewNode$=e.select(NWe)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-map-tree-view"]],decls:2,vars:3,consts:[[3,"node","depth"]],template:function(i,r){if(1&i&&(pt(0,n$e,1,2,"cc-map-tree-view-level",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.mapTreeViewNode$))?0:-1,o)}},dependencies:[t$e,Kn],encapsulation:2})}}return n})(),r$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,fWe,mWe,pWe,Are]})}}return n})();GM(wJ,[MWe,kWe,i$e,wN,yN,rWe,hWe],[]);let o$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,r$e,cGe,YGe,_Ge,rGe,bGe,ZGe,oGe,nWe,sGe,tWe,aGe,dGe,Are]})}}return n})(),s$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[fg]})}}return n})(),a$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),l$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,wF]})}}return n})(),c$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[Wi,qx,l$e,a$e,fg]})}}return n})(),d$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn]})}}return n})(),u$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fg]})}}return n})(),h$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[Jne],imports:[mn,Wi,ud,rre]})}}return n})(),f$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({providers:[dne],imports:[mn,fg]})}}return n})(),m$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),p$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fg,aq,Wi,GN,ud,f8]})}}return n})(),A$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),g$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,fg,Wi,l1,ud]})}}return n})(),_$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,s$e,u$e,f$e,p$e,g$e,h$e,d$e,A$e,m$e,c$e]})}}return n})(),b$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[iGe,mn,Kqe,tGe,o$e,_$e,Jqe,nGe]})}}return n})();let mg={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};const Ere=/[&<>"']/,w$e=new RegExp(Ere.source,"g"),Sre=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,x$e=new RegExp(Sre.source,"g"),C$e={"&":"&","<":"<",">":">",'"':""","'":"'"},Tre=n=>C$e[n];function Ta(n,t){if(t){if(Ere.test(n))return n.replace(w$e,Tre)}else if(Sre.test(n))return n.replace(x$e,Tre);return n}const M$e=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Ire(n){return n.replace(M$e,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}const E$e=/(^|[^\[])\^/g;function ao(n,t){n="string"==typeof n?n:n.source,t=t||"";const e={replace:(i,r)=>(r=(r=r.source||r).replace(E$e,"$1"),n=n.replace(i,r),e),getRegex:()=>new RegExp(n,t)};return e}const S$e=/[^\w:]/g,T$e=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Fre(n,t,e){if(n){let i;try{i=decodeURIComponent(Ire(e)).replace(S$e,"").toLowerCase()}catch{return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!T$e.test(e)&&(e=function k$e(n,t){SF[" "+n]||(SF[" "+n]=I$e.test(n)?n+"/":IF(n,"/",!0));const e=-1===(n=SF[" "+n]).indexOf(":");return"//"===t.substring(0,2)?e?t:n.replace(F$e,"$1")+t:"/"===t.charAt(0)?e?t:n.replace(D$e,"$1")+t:n+t}(t,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const SF={},I$e=/^[^:]+:\/*[^/]*$/,F$e=/^([^:]+:)[\s\S]*$/,D$e=/^([^:]+:\/*[^/]*)[\s\S]*$/,TF={exec:function(){}};function Dre(n,t){const i=n.replace(/\|/g,(o,s,a)=>{let l=!1,c=s;for(;--c>=0&&"\\"===a[c];)l=!l;return l?"|":" |"}).split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>t)i.splice(t);else for(;i.length1;)1&t&&(e+=n),t>>=1,n+=n;return e+n}function Bre(n,t,e,i){const r=t.href,o=t.title?Ta(t.title):null,s=n[1].replace(/\\([\[\]])/g,"$1");if("!"!==n[0].charAt(0)){i.state.inLink=!0;const a={type:"link",raw:e,href:r,title:o,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}return{type:"image",raw:e,href:r,title:o,text:Ta(s)}}class _8{constructor(t){this.options=t||mg}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const i=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:IF(i,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const i=e[0],r=function R$e(n,t){const e=n.match(/^(\s+)(?:```)/);if(null===e)return t;const i=e[1];return t.split("\n").map(r=>{const o=r.match(/^\s+/);if(null===o)return r;const[s]=o;return s.length>=i.length?r.slice(i.length):r}).join("\n")}(i,e[3]||"");return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:r}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let i=e[2].trim();if(/#$/.test(i)){const r=IF(i,"#");(this.options.pedantic||!r||/ $/.test(r))&&(i=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const i=e[0].replace(/^ *>[ \t]?/gm,""),r=this.lexer.state.top;this.lexer.state.top=!0;const o=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:e[0],tokens:o,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let i,r,o,s,a,l,c,d,u,h,f,A,y=e[1].trim();const _=y.length>1,b={type:"list",raw:"",ordered:_,start:_?+y.slice(0,-1):"",loose:!1,items:[]};y=_?`\\d{1,9}\\${y.slice(-1)}`:`\\${y}`,this.options.pedantic&&(y=_?y:"[*+-]");const M=new RegExp(`^( {0,3}${y})((?:[\t ][^\\n]*)?(?:\\n|$))`);for(;t&&(A=!1,(e=M.exec(t))&&!this.rules.block.hr.test(t));){if(i=e[0],t=t.substring(i.length),d=e[2].split("\n",1)[0].replace(/^\t+/,E=>" ".repeat(3*E.length)),u=t.split("\n",1)[0],this.options.pedantic?(s=2,f=d.trimLeft()):(s=e[2].search(/[^ ]/),s=s>4?1:s,f=d.slice(s),s+=e[1].length),l=!1,!d&&/^ *$/.test(u)&&(i+=u+"\n",t=t.substring(u.length+1),A=!0),!A){const E=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),L=new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),N=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),H=new RegExp(`^ {0,${Math.min(3,s-1)}}#`);for(;t&&(h=t.split("\n",1)[0],u=h,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(N.test(u)||H.test(u)||E.test(u)||L.test(t)));){if(u.search(/[^ ]/)>=s||!u.trim())f+="\n"+u.slice(s);else{if(l||d.search(/[^ ]/)>=4||N.test(d)||H.test(d)||L.test(d))break;f+="\n"+u}!l&&!u.trim()&&(l=!0),i+=h+"\n",t=t.substring(h.length+1),d=u.slice(s)}}b.loose||(c?b.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(f),r&&(o="[ ] "!==r[0],f=f.replace(/^\[[ xX]\] +/,""))),b.items.push({type:"list_item",raw:i,task:!!r,checked:o,loose:!1,text:f}),b.raw+=i}b.items[b.items.length-1].raw=i.trimRight(),b.items[b.items.length-1].text=f.trimRight(),b.raw=b.raw.trimRight();const C=b.items.length;for(a=0;a"space"===N.type),L=E.length>0&&E.some(N=>/\n.*\n/.test(N.raw));b.loose=L}if(b.loose)for(a=0;a$/,"$1").replace(this.rules.inline._escapes,"$1"):"",o=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:i,raw:e[0],href:r,title:o}}}table(t){const e=this.rules.block.table.exec(t);if(e){const i={type:"table",header:Dre(e[1]).map(r=>({text:r})),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=e[0];let o,s,a,l,r=i.align.length;for(o=0;o({text:c}));for(r=i.header.length,s=0;s/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Ta(e[0]):e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const i=e[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;const s=IF(i.slice(0,-1),"\\");if((i.length-s.length)%2==0)return}else{const s=function B$e(n,t){if(-1===n.indexOf(t[1]))return-1;const e=n.length;let i=0,r=0;for(;r-1){const l=(0===e[0].indexOf("!")?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let r=e[2],o="";if(this.options.pedantic){const s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);s&&(r=s[1],o=s[3])}else o=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r.slice(1):r.slice(1,-1)),Bre(e,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},e[0],this.lexer)}}reflink(t,e){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=e[r.toLowerCase()],!r){const o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return Bre(i,r,i[0],this.lexer)}}emStrong(t,e,i=""){let r=this.rules.inline.emStrong.lDelim.exec(t);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;const o=r[1]||r[2]||"";if(!o||o&&(""===i||this.rules.inline.punctuation.exec(i))){const s=r[0].length-1;let a,l,c=s,d=0;const u="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+s);null!=(r=u.exec(e));){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(l=a.length,r[3]||r[4]){c+=l;continue}if((r[5]||r[6])&&s%3&&!((s+l)%3)){d+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+d);const h=t.slice(0,s+r.index+(r[0].length-a.length)+l);if(Math.min(s,l)%2){const A=h.slice(1,-1);return{type:"em",raw:h,text:A,tokens:this.lexer.inlineTokens(A)}}const f=h.slice(2,-2);return{type:"strong",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(/\n/g," ");const r=/[^ ]/.test(i),o=/^ /.test(i)&&/ $/.test(i);return r&&o&&(i=i.substring(1,i.length-1)),i=Ta(i,!0),{type:"codespan",raw:e[0],text:i}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t,e){const i=this.rules.inline.autolink.exec(t);if(i){let r,o;return"@"===i[2]?(r=Ta(this.options.mangle?e(i[1]):i[1]),o="mailto:"+r):(r=Ta(i[1]),o=r),{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}url(t,e){let i;if(i=this.rules.inline.url.exec(t)){let r,o;if("@"===i[2])r=Ta(this.options.mangle?e(i[0]):i[0]),o="mailto:"+r;else{let s;do{s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(s!==i[0]);r=Ta(i[0]),o="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t,e){const i=this.rules.inline.text.exec(t);if(i){let r;return r=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):Ta(i[0]):i[0]:Ta(this.options.smartypants?e(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const ni={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:TF,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};ni.def=ao(ni.def).replace("label",ni._label).replace("title",ni._title).getRegex(),ni.bullet=/(?:[*+-]|\d{1,9}[.)])/,ni.listItemStart=ao(/^( *)(bull) */).replace("bull",ni.bullet).getRegex(),ni.list=ao(ni.list).replace(/bull/g,ni.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+ni.def.source+")").getRegex(),ni._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ni._comment=/|$)/,ni.html=ao(ni.html,"i").replace("comment",ni._comment).replace("tag",ni._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ni.paragraph=ao(ni._paragraph).replace("hr",ni.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ni._tag).getRegex(),ni.blockquote=ao(ni.blockquote).replace("paragraph",ni.paragraph).getRegex(),ni.normal={...ni},ni.gfm={...ni.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},ni.gfm.table=ao(ni.gfm.table).replace("hr",ni.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ni._tag).getRegex(),ni.gfm.paragraph=ao(ni._paragraph).replace("hr",ni.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ni.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ni._tag).getRegex(),ni.pedantic={...ni.normal,html:ao("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",ni._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:TF,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ao(ni.normal._paragraph).replace("hr",ni.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",ni.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const Pn={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:TF,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:TF,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}Pn._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Pn.punctuation=ao(Pn.punctuation).replace(/punctuation/g,Pn._punctuation).getRegex(),Pn.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Pn.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,Pn._comment=ao(ni._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Pn.emStrong.lDelim=ao(Pn.emStrong.lDelim).replace(/punct/g,Pn._punctuation).getRegex(),Pn.emStrong.rDelimAst=ao(Pn.emStrong.rDelimAst,"g").replace(/punct/g,Pn._punctuation).getRegex(),Pn.emStrong.rDelimUnd=ao(Pn.emStrong.rDelimUnd,"g").replace(/punct/g,Pn._punctuation).getRegex(),Pn._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Pn._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Pn._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Pn.autolink=ao(Pn.autolink).replace("scheme",Pn._scheme).replace("email",Pn._email).getRegex(),Pn._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Pn.tag=ao(Pn.tag).replace("comment",Pn._comment).replace("attribute",Pn._attribute).getRegex(),Pn._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Pn._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Pn._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Pn.link=ao(Pn.link).replace("label",Pn._label).replace("href",Pn._href).replace("title",Pn._title).getRegex(),Pn.reflink=ao(Pn.reflink).replace("label",Pn._label).replace("ref",ni._label).getRegex(),Pn.nolink=ao(Pn.nolink).replace("ref",ni._label).getRegex(),Pn.reflinkSearch=ao(Pn.reflinkSearch,"g").replace("reflink",Pn.reflink).replace("nolink",Pn.nolink).getRegex(),Pn.normal={...Pn},Pn.pedantic={...Pn.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:ao(/^!?\[(label)\]\((.*?)\)/).replace("label",Pn._label).getRegex(),reflink:ao(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Pn._label).getRegex()},Pn.gfm={...Pn.normal,escape:ao(Pn.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\l+" ".repeat(c.length));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>!!(i=a.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?e.push(i):(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(r.raw+="\n"+i.raw,r.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(o=t,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const l=t.slice(1);let c;this.options.extensions.startBlock.forEach(function(d){c=d.call({lexer:this},l),"number"==typeof c&&c>=0&&(a=Math.min(a,c))}),a<1/0&&a>=0&&(o=t.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(o))){r=e[e.length-1],s&&"paragraph"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i),s=o.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i);continue}if(t){const a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,o,a,l,c,s=t;if(this.tokens.links){const d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(s));)d.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+kre("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(s));)s=s.slice(0,a.index)+"["+kre("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(s));)s=s.slice(0,a.index+a[0].length-2)+"++"+s.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;t;)if(l||(c=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(d=>!!(i=d.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.emStrong(t,s,c)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.autolink(t,Pre)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,Pre))){t=t.substring(i.raw.length),e.push(i);continue}if(o=t,this.options.extensions&&this.options.extensions.startInline){let d=1/0;const u=t.slice(1);let h;this.options.extensions.startInline.forEach(function(f){h=f.call({lexer:this},u),"number"==typeof h&&h>=0&&(d=Math.min(d,h))}),d<1/0&&d>=0&&(o=t.substring(0,d+1))}if(i=this.tokenizer.inlineText(o,O$e)){t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(c=i.raw.slice(-1)),l=!0,r=e[e.length-1],r&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(t){const d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}return e}}class b8{constructor(t){this.options=t||mg}code(t,e,i){const r=(e||"").match(/\S*/)[0];if(this.options.highlight){const o=this.options.highlight(t,r);null!=o&&o!==t&&(i=!0,t=o)}return t=t.replace(/\n$/,"")+"\n",r?'

    '+(i?t:Ta(t,!0))+"
    \n":"
    "+(i?t:Ta(t,!0))+"
    \n"}blockquote(t){return`
    \n${t}
    \n`}html(t){return t}heading(t,e,i,r){return this.options.headerIds?`${t}\n`:`${t}\n`}hr(){return this.options.xhtml?"
    \n":"
    \n"}list(t,e,i){const r=e?"ol":"ul";return"<"+r+(e&&1!==i?' start="'+i+'"':"")+">\n"+t+"\n"}listitem(t){return`
  • ${t}
  • \n`}checkbox(t){return" "}paragraph(t){return`

    ${t}

    \n`}table(t,e){return e&&(e=`${e}`),"\n\n"+t+"\n"+e+"
    \n"}tablerow(t){return`\n${t}\n`}tablecell(t,e){const i=e.header?"th":"td";return(e.align?`<${i} align="${e.align}">`:`<${i}>`)+t+`\n`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return this.options.xhtml?"
    ":"
    "}del(t){return`${t}`}link(t,e,i){if(null===(t=Fre(this.options.sanitize,this.options.baseUrl,t)))return i;let r='",r}image(t,e,i){if(null===(t=Fre(this.options.sanitize,this.options.baseUrl,t)))return i;let r=`${i}":">",r}text(t){return t}}class Rre{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,e,i){return""+i}image(t,e,i){return""+i}br(){return""}}class Ore{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,e){let i=t,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[t];do{r++,i=t+"-"+r}while(this.seen.hasOwnProperty(i))}return e||(this.seen[t]=r,this.seen[i]=0),i}slug(t,e={}){const i=this.serialize(t);return this.getNextSafeSlug(i,e.dryrun)}}class ip{constructor(t){this.options=t||mg,this.options.renderer=this.options.renderer||new b8,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Rre,this.slugger=new Ore}static parse(t,e){return new ip(e).parse(t)}static parseInline(t,e){return new ip(e).parseInline(t)}parse(t,e=!0){let r,o,s,a,l,c,d,u,h,f,A,y,_,b,M,C,E,L,N,i="";const H=t.length;for(r=0;r0&&"paragraph"===M.tokens[0].type?(M.tokens[0].text=L+" "+M.tokens[0].text,M.tokens[0].tokens&&M.tokens[0].tokens.length>0&&"text"===M.tokens[0].tokens[0].type&&(M.tokens[0].tokens[0].text=L+" "+M.tokens[0].tokens[0].text)):M.tokens.unshift({type:"text",text:L}):b+=L),b+=this.parse(M.tokens,_),h+=this.renderer.listitem(b,E,C);i+=this.renderer.list(h,A,y);continue;case"html":i+=this.renderer.html(f.text);continue;case"paragraph":i+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case"text":for(h=f.tokens?this.parseInline(f.tokens):f.text;r+1{"function"==typeof i&&(r=i,i=null);const o={...i},s=function L$e(n,t,e){return i=>{if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",n){const r="

    An error occurred:

    "+Ta(i.message+"",!0)+"
    ";return t?Promise.resolve(r):e?void e(null,r):r}if(t)return Promise.reject(i);if(!e)throw i;e(i)}}((i={...ii.defaults,...o}).silent,i.async,r);if(typeof e>"u"||null===e)return s(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof e)return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(function P$e(n){n&&n.sanitize&&!n.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}(i),i.hooks&&(i.hooks.options=i),r){const a=i.highlight;let l;try{i.hooks&&(e=i.hooks.preprocess(e)),l=n(e,i)}catch(u){return s(u)}const c=function(u){let h;if(!u)try{i.walkTokens&&ii.walkTokens(l,i.walkTokens),h=t(l,i),i.hooks&&(h=i.hooks.postprocess(h))}catch(f){u=f}return i.highlight=a,u?s(u):r(null,h)};if(!a||a.length<3||(delete i.highlight,!l.length))return c();let d=0;return ii.walkTokens(l,function(u){"code"===u.type&&(d++,setTimeout(()=>{a(u.text,u.lang,function(h,f){if(h)return c(h);null!=f&&f!==u.text&&(u.text=f,u.escaped=!0),d--,0===d&&c()})},0))}),void(0===d&&c())}if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(a=>n(a,i)).then(a=>i.walkTokens?Promise.all(ii.walkTokens(a,i.walkTokens)).then(()=>a):a).then(a=>t(a,i)).then(a=>i.hooks?i.hooks.postprocess(a):a).catch(s);try{i.hooks&&(e=i.hooks.preprocess(e));const a=n(e,i);i.walkTokens&&ii.walkTokens(a,i.walkTokens);let l=t(a,i);return i.hooks&&(l=i.hooks.postprocess(l)),l}catch(a){return s(a)}}}function ii(n,t,e){return Lre(np.lex,ip.parse)(n,t,e)}function N$e(n,t){if(1&n&&(D(0,"div")(1,"h2"),ye(2),U(),xe(3,"ul",6),U()),2&n){const e=t.$implicit;Q(2),br(e.key),Q(),_e("innerHTML",e.value,l3)}}ii.options=ii.setOptions=function(n){return function y$e(n){mg=n}(ii.defaults={...ii.defaults,...n}),ii},ii.getDefaults=function Mre(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}},ii.defaults=mg,ii.use=function(...n){const t=ii.defaults.extensions||{renderers:{},childTokens:{}};n.forEach(e=>{const i={...e};if(i.async=ii.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if(r.renderer){const o=t.renderers[r.name];t.renderers[r.name]=o?function(...s){let a=r.renderer.apply(this,s);return!1===a&&(a=o.apply(this,s)),a}:r.renderer}if(r.tokenizer){if(!r.level||"block"!==r.level&&"inline"!==r.level)throw new Error("extension level must be 'block' or 'inline'");t[r.level]?t[r.level].unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&("block"===r.level?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:"inline"===r.level&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),e.renderer){const r=ii.defaults.renderer||new b8;for(const o in e.renderer){const s=r[o];r[o]=(...a)=>{let l=e.renderer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.renderer=r}if(e.tokenizer){const r=ii.defaults.tokenizer||new _8;for(const o in e.tokenizer){const s=r[o];r[o]=(...a)=>{let l=e.tokenizer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.tokenizer=r}if(e.hooks){const r=ii.defaults.hooks||new v8;for(const o in e.hooks){const s=r[o];r[o]=v8.passThroughHooks.has(o)?a=>{if(ii.defaults.async)return Promise.resolve(e.hooks[o].call(r,a)).then(c=>s.call(r,c));const l=e.hooks[o].call(r,a);return s.call(r,l)}:(...a)=>{let l=e.hooks[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.hooks=r}if(e.walkTokens){const r=ii.defaults.walkTokens;i.walkTokens=function(o){let s=[];return s.push(e.walkTokens.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}ii.setOptions(i)})},ii.walkTokens=function(n,t){let e=[];for(const i of n)switch(e=e.concat(t.call(ii,i)),i.type){case"table":for(const r of i.header)e=e.concat(ii.walkTokens(r.tokens,t));for(const r of i.rows)for(const o of r)e=e.concat(ii.walkTokens(o.tokens,t));break;case"list":e=e.concat(ii.walkTokens(i.items,t));break;default:ii.defaults.extensions&&ii.defaults.extensions.childTokens&&ii.defaults.extensions.childTokens[i.type]?ii.defaults.extensions.childTokens[i.type].forEach(function(r){e=e.concat(ii.walkTokens(i[r],t))}):i.tokens&&(e=e.concat(ii.walkTokens(i.tokens,t)))}return e},ii.parseInline=Lre(np.lexInline,ip.parseInline),ii.Parser=ip,ii.parser=ip.parse,ii.Renderer=b8,ii.TextRenderer=Rre,ii.Lexer=np,ii.lexer=np.lex,ii.Tokenizer=_8,ii.Slugger=Ore,ii.Hooks=v8,ii.parse=ii;let U$e=(()=>{class n{constructor(e){this.data=e,this.changes=this.getChangelogChanges()}getChangelogChanges(){let i=ii.parse('# Change Log - Visualization\r\n\r\nAll notable changes to this project will be documented in this file.\r\n\r\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\r\nand this project adheres to [Semantic Versioning](http://semver.org/)\r\n\r\n## [unreleased] (Added \u{1f680} | Changed | Removed \u{1f5d1} | Fixed \u{1f41e} | Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb})\r\n\r\n## [1.129.1] - 2024-10-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix an issue which caused the web demo files to be incomplete [#3790](https://github.com/MaibornWolff/codecharta/pull/3758)\r\n\r\n## [1.129.0] - 2024-10-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Add thousands separation for big numbers [#3758](https://github.com/MaibornWolff/codecharta/pull/3758)\r\n- Add popup when comparing files with different complexity metrics [#3773](https://github.com/MaibornWolff/codecharta/pull/3773)\r\n- Add experimental feature: dynamic floor lable height for large maps [#3778](https://github.com/MaibornWolff/codecharta/pull/3778)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Remove horizontal scrollbar in the File/ Node Explorer dropdown and styling fixes [#3765](https://github.com/MaibornWolff/codecharta/pull/3765)\r\n- Fix issue when multiple files are selected then the edge metrics in the primary metrics section are not displayed correctly. [#3753](https://github.com/MaibornWolff/codecharta/pull/3753)\r\n- Metric Scenarios (before Metric Templates) are available again [#3762](https://github.com/MaibornWolff/codecharta/pull/3762)\r\n- Legend Panel closes on outside click [#3770](https://github.com/MaibornWolff/codecharta/pull/3770)\r\n\r\n### Changed\r\n\r\n- Renaming of Metric Templates to Metric Scenarios [#3656](https://github.com/MaibornWolff/codecharta/pull/3656)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Enable View Encapsulation for components in the ribbon bar [#3779](https://github.com/MaibornWolff/codecharta/pull/3779)\r\n\r\n## [1.128.0] - 2024-09-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Add feature to zoom at the mouse cursor [#3693](https://github.com/MaibornWolff/codecharta/pull/3693)\r\n- Add a zoom slider under the cube, allowing to zoom in and out while always displaying the current zoom factor. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix breaking map selection layout by setting automatic line extension. [#3764](https://github.com/orgs/MaibornWolff/projects/11/views/3?pane=issue&itemId=80844170)\r\n- Fix issue where zooming out too much makes the map disappear and zooming in too much causes you to go through the map. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697)\r\n- Camera perspective is correctly adopted from the custom configuration[#3698](https://github.com/MaibornWolff/codecharta/pull/3698)\r\n- Fix camera behavior when `Reset Camera when changing map` option is deactivated [#3699](https://github.com/MaibornWolff/codecharta/pull/3699)\r\n\r\n### Changed\r\n\r\n- Change OrbitControls to MapControls for improved map navigation [#3693](https://github.com/MaibornWolff/codecharta/pull/3693)\r\n- Remove unnecessary button that opened and closed the file explorer [#3647](https://github.com/MaibornWolff/codecharta/pull/3748)\r\n- Overhaul Focus and Unfocus functionality[#3706](https://github.com/MaibornWolff/codecharta/pull/3706)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 18 to 20 [#3690](https://github.com/MaibornWolff/codecharta/pull/3690)\r\n- Enabled view encapsulation for Global Configuration dialog, Ribbon Bar and File Panel [#3712](https://github.com/MaibornWolff/codecharta/pull/3712)\r\n- Enabled view encapsulation for Slider [#3713](https://github.com/MaibornWolff/codecharta/pull/3713)\r\n- Enabled view encapsulation for the Toolbar [#3717](https://github.com/MaibornWolff/codecharta/pull/3717)\r\n- Enabled view encapsulation for the Legend Panel [#3720](https://github.com/MaibornWolff/codecharta/pull/3720)\r\n- Enabled view encapsulation for the Attribute Side Bar [#3726](https://github.com/MaibornWolff/codecharta/pull/3726)\r\n- Enabled view encapsulation for Buttons [#3729](https://github.com/MaibornWolff/codecharta/pull/3729)\r\n- Enabled view encapsulation for the Export 3D Map Dialog [#3732](https://github.com/MaibornWolff/codecharta/pull/3732)\r\n- Enabled view encapsulation for Dialogs [#3736](https://github.com/MaibornWolff/codecharta/pull/3736)\r\n\r\n## [1.127.1] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Revert [#3655](https://github.com/MaibornWolff/codecharta/pull/3665) as we implement new navigation methods\r\n\r\n## [1.127.0] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Zooming doesn\'t affect the camera position [#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix the issue where the map disappears after excessive zooming out.[#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix visualization standalone electron build by bumping the version to 29 [#3681](https://github.com/MaibornWolff/codecharta/pull/3681)\r\n\r\n### Added \u{1f680}\r\n\r\n- Export multi-material 3MF for 3D printing of maps in color [#3616](https://github.com/MaibornWolff/codecharta/pull/3616)\r\n\r\n### Changed\r\n\r\n- IMPORTANT: The sonar complexity will no longer be renamed to MCC! [#3456](https://github.com/MaibornWolff/codecharta/pull/3606)\r\n\r\n## [1.126.0] - 2024-06-03\r\n\r\n### Added \u{1f680}\r\n\r\n- Overhaul the Suspicious Metrics menu [#3612](https://github.com/MaibornWolff/codecharta/pull/3612)\r\n\r\n## [1.125.0] - 2024-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Add search bar for custom configs [#3529](https://github.com/MaibornWolff/codecharta/pull/3529)\r\n- Automatically reverse the metric direction for those where higher values indicate better codequality, such as `branch_coverage` [#3518](https://github.com/MaibornWolff/codecharta/pull/3518)\r\n- Display summary metrics for root node as default [#3525](https://github.com/MaibornWolff/codecharta/pull/3525)\r\n- Remove whitespace on screenshots [#3527](https://github.com/MaibornWolff/codecharta/pull/3527)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix small style issues [#3544](https://github.com/MaibornWolff/codecharta/pull/3544)\r\n- Fix key handling for selection metrics [#3546](https://github.com/MaibornWolff/codecharta/pull/3546)\r\n- Fix applying default metric templates to ensure options reset correctly [#3560](https://github.com/MaibornWolff/codecharta/pull/3560)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update angular to v17\r\n\r\n## [1.124.1] - 2024-03-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix metrics being reset on excluding / flattening buildings [#3524](https://github.com/MaibornWolff/codecharta/pull/3524)\r\n- Take direction of attributes into account when creating the list with highest metrics [#3526](https://github.com/MaibornWolff/codecharta/pull/3526)\r\n\r\n## [1.124.0] - 2024-03-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Display diagram of color distribution [#3511](https://github.com/MaibornWolff/codecharta/pull/3511)\r\n
    \r\n color-metric-diagram\r\n
    \r\n- Persist uploaded files and applied configuration accross page-reloads [#3486](https://github.com/MaibornWolff/codecharta/pull/3486)\r\n- Height, color, edge and area metric can be selected via query parameters [#3513](https://github.com/MaibornWolff/codecharta/pull/3513)\r\n- Capturing a screenshot of the map also captures the legend [#3520](https://github.com/MaibornWolff/codecharta/pull/3520)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 16 to 18 [#3452](https://github.com/MaibornWolff/codecharta/pull/3452)\r\n\r\n## [1.123.0] - 2024-02-26\r\n\r\n### Changed\r\n\r\n- CodeCharta Analysis and Visualization now have separate changelogs and releases [#3499](https://github.com/MaibornWolff/codecharta/pull/3499)\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight building on-click of file in explorer [#3488](https://github.com/MaibornWolff/codecharta/pull/3488)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix buildings inability to be completely red in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edge preview in visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edges start/end intersecting with building in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix style issues in the node/file explorer of visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n\r\n## [1.122.0] - 2024-01-16\r\n\r\n### Added \u{1f680}\r\n\r\n- File explorer can be pinned while analyzing the code-map [#3459](https://github.com/MaibornWolff/codecharta/pull/3459)\r\n- Validate input file during interactive parser configuration [#3460](https://github.com/MaibornWolff/codecharta/pull/3460)\r\n- Add functionality to screenshot legend [#3471](https://github.com/MaibornWolff/codecharta/pull/3471)\r\n\r\n### Changed\r\n\r\n- Multiple values for options need to be separated by comma [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Changed the short-form of the `--no-issues` flag in the SourceCodeParser from `-i` to `-ni` [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Clarify sonar user token question [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the `--user` flag to `--user-token` in SonarImporter [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the interactive dialog of `modify` to prompt user for single action to perform [#3448](https://github.com/MaibornWolff/codecharta/pull/3448)\r\n- Selected buildings now keep their label until they are unselected [#3465](https://github.com/MaibornWolff/codecharta/pull/3465)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix saving the number of top-labels in custom configs [#3461](https://github.com/MaibornWolff/codecharta/pull/3461)\r\n- Fix parsers crashing after printing output to stdout [#3442](https://github.com/MaibornWolff/codecharta/pull/3442)\r\n- Fix removal of nodes with identical names in `modify` [#3446](https://github.com/MaibornWolff/codecharta/pull/3446)\r\n- Fix the highlighting of very high risk metrics to highlight only matching files [#3454](https://github.com/MaibornWolff/codecharta/pull/3454)\r\n\r\n## [1.121.1] - 2023-12-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix github-pages not showing documentation [#3436](https://github.com/MaibornWolff/codecharta/pull/3436)\r\n\r\n## [1.121.0] - 2023-12-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add logging of absolute file paths of output files [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Changed\r\n\r\n- Changed short form of parameter `--file-extensions` of RawTextParser from `-f` to `-fe` [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Update readme and gh-pages for RawTextParser [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Changed the `--format` flag for csv-output in SourceCodeParser from `table` to `csv` [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix RawTextParser producing incorrect output when no (or multiple) file extensions were specified in interactive mode [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Fix handling of empty inputs for the `--metrics`, `--exclude`, `--file-extensions` flags in the RawTextParser [#3415](https://github.com/MaibornWolff/codecharta/pull/3415)\r\n- Fix RawTextParser incorrectly setting max indentation level to a predefined value [#3419](https://github.com/MaibornWolff/codecharta/pull/3419)\r\n- Fix the csv-exporter so that it exports multiple projects instead of just one when multiple projects are specified [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n- Fix file extensions of output files for merged projects [#3421](https://github.com/MaibornWolff/codecharta/pull/3421)\r\n- Fix the ability for users to accidentally pass invalid metrics to the RawTextParser without it crashing [#3424](https://github.com/MaibornWolff/codecharta/pull/3424)\r\n- Fix deselected buildings with green/red roof in delta mode do not reset their color roof [#3426](https://github.com/MaibornWolff/codecharta/pull/3426)\r\n- Fix parser hang issue in interactive mode caused by unintentional "enter" input after the last question [#3422](https://github.com/MaibornWolff/codecharta/pull/3422)\r\n\r\n### Chore \u200d\u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgraded to angular 16 [#3408](https://github.com/MaibornWolff/codecharta/pull/3408)\r\n\r\n## [1.120.1] - 2023-11-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Deprecated download button removed (functionality has been replaced by custom views) [#3398](https://github.com/MaibornWolff/codecharta/pull/3398)\r\n- Remove the \'new\' badges from the \'Custom Views\' and \'Suspicious Metrics\' features as these features are no longer new [#3393](https://github.com/MaibornWolff/codecharta/pull/3399)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix an issue with web demo on Safari showing a white screen and not loading [#3396](https://github.com/MaibornWolff/codecharta/pull/3396)\r\n- Fix the ability for users to skip the value for tab-width when configuring the rawtextparser and estimate its value [#3404](https://github.com/MaibornWolff/codecharta/pull/3404)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add documentation for the installation requirements for metric-gardener [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n- Add hints to README (visualization and package) about MacOS arm64 standalone execution [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n\r\n## [1.120.0] - 2023-11-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Only ask to merge results after parser suggestion execution when more than one parser was executed [#3384](https://github.com/MaibornWolff/codecharta/pull/3384)\r\n- Add the description of each parser to the list of suggested parsers [#3387](https://github.com/MaibornWolff/codecharta/pull/3387)\r\n\r\n### Changed\r\n\r\n- Adjust console output of metric gardener importer to no longer include one line for each processed node [#3386](https://github.com/MaibornWolff/codecharta/pull/3390)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix command not found issue for --version and --help in the analysis [#3377](https://github.com/MaibornWolff/codecharta/pull/3377)\r\n- Fix metric gardener importer getting stuck for large inputs [#3382](https://github.com/MaibornWolff/codecharta/pull/3382)\r\n- Update docs for ccsh to remove outdated parameters and unify the pages structure [#3333](https://github.com/MaibornWolff/codecharta/pull/3388)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Raise minimum required Java Version from 8 to 11 [#3359](https://github.com/MaibornWolff/codecharta/pull/3359)\r\n- Swap nw.js to electron for standalone execution [#3373](https://github.com/MaibornWolff/codecharta/pull/3373)\r\n\r\n## [1.119.1] - 2023-08-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ccsh execution under windows via cmd-terminal [#3354](https://github.com/MaibornWolff/codecharta/pull/3354)\r\n\r\n## [1.119.0] - 2023-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add message outputting which parser is being configured during parser suggestions [#3335](https://github.com/MaibornWolff/codecharta/pull/3335)\r\n- Add basic validity checking for all input resources (files/folders, url for SonarImporter) [#3325](https://github.com/MaibornWolff/codecharta/pull/3325)\r\n- Automatically start specific interactive parser when calling parser without args [#3332](https://github.com/MaibornWolff/codecharta/pull/3332)\r\n\r\n## [1.118.0] - 2023-06-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric tooltips that display attribute descriptors and provide hyperlinks in the sidebar to the metric\'s documentation [#3273](https://github.com/MaibornWolff/codecharta/pull/3273)
    \r\n \r\n- Expand and restructure documentation regarding Docker usage [#3312](https://github.com/MaibornWolff/codecharta/pull/3312)\r\n- Add current working directories as hint or default value to interactive parser and parser suggestions when asking for input [#3319](https://github.com/MaibornWolff/codecharta/pull/3319)\r\n- Add helpful status messages when calculating parser suggestions [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Speed up parser suggestions significantly [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n- Fix color range reset not triggering on color metric change [#3311](https://github.com/MaibornWolff/codecharta/pull/3311)\r\n\r\n## [1.117.0] - 2023-05-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Add support for parser suggestions to SVN-, MetricGardener-, RawText- and SourceCodeParser [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Add semi automatic merging feature after executing multiple parsers [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Expand developer documentation to include common problems and solutions for them [#3289](https://github.com/MaibornWolff/codecharta/pull/3289)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix entrypoint for analysis docker image [#3259](https://github.com/MaibornWolff/codecharta/pull/3259)\r\n- Show again delta of a building which have nothing in common in red or green [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n- Always show description of suspicious metrics [#3285](https://github.com/MaibornWolff/codecharta/pull/3285)\r\n- Show suspicious metrics and risk profile documentation pages in navigation bar [#3290](https://github.com/MaibornWolff/codecharta/pull/3290)\r\n- Merge filter will now abort execution when an invalid file is specified as input [#3305](https://github.com/MaibornWolff/codecharta/pull/3305)\r\n- Fix formatting issues in docs turning `--` to `\u2013` [#3301](https://github.com/MaibornWolff/codecharta/pull/3301)\r\n\r\n### Changed\r\n\r\n- Adjusted documentation for parser suggestions [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Make the size of the CodeCharta logo more suitable for any screen size and remove MaibornWolff logo [#3302](https://github.com/MaibornWolff/codecharta/pull/3302)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Replace custom Redux adapter through real NgRx [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n\r\n## [1.116.0] - 2023-04-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add automatic parser suggestions to recommend usable parsers for a codebase (supports GitLogParser and SonarImporter) when running `ccsh` command [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)
    \r\n ![image](https://user-images.githubusercontent.com/129938897/234309117-c9edd4e7-7c53-4ba7-b849-ec9c3f8f3215.png)\r\n- Add documentation subsections for interactive shell and parser suggestions\r\n\r\n### Changed\r\n\r\n- Changed default behavior when launching ccsh without arguments to parser suggestions [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n- Old interactive parser selection now reachable by passing `-i` or `--interactive` as arguments [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix suspicious metrics and risk profile docs not loading [#3272](https://github.com/MaibornWolff/codecharta/pull/3272)\r\n\r\n## [1.115.1] - 2023-04-06\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Support for Custom Views created before CodeCharta version 1.110.0 or older is no longer be maintained [#3265](https://github.com/MaibornWolff/codecharta/pull/3265)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix the disappearance of the suspicious metrics labels [#3263](https://github.com/MaibornWolff/codecharta/pull/3263)\r\n- Fix UI components that look different since version 1.115.0 [#3260](https://github.com/MaibornWolff/codecharta/pull/3260)\r\n- Show latest release notes in changelog dialog [#3264](https://github.com/MaibornWolff/codecharta/pull/3264)\r\n\r\n## [1.115.0] - 2023-03-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Display the CodeCharta logo next to the MaibornWolff logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Tooltip for primary and secondary metrics that displays AttributeDescriptor information in the sidebar [#3239](https://github.com/MaibornWolff/codecharta/pull/3239)
    \r\n ![image](https://user-images.githubusercontent.com/65733509/227218468-b7d1e1ae-b847-40ab-8513-f3762b8787bb.png)\r\n- Supports adding note to a custom view, provides a preview and an edit option for notes from the selection menu [#3234](https://github.com/MaibornWolff/codecharta/pull/3234)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/226942610-9e08d39c-324d-4de3-81d0-4e5da4e589aa.png)\r\n ![image](https://user-images.githubusercontent.com/72517530/226943152-1bb339bb-c39f-4bf6-a32d-ee8476249f98.png)\r\n\r\n### Changed\r\n\r\n- The Suspicious metrics and Risk profile Feature is now also available outside the Experimental Feature Mode [#2963](https://github.com/MaibornWolff/codecharta/pull/2963)
    \r\n ![image](https://user-images.githubusercontent.com/47224279/222686442-05d4b83c-04d7-4275-b1eb-4339e8906130.jpg)\r\n- Made the background color a bit lighter [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Saturate the distribution bar colors [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of all metric menus [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the global configuration dialog [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the metric chooser panel [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Change the primary color to match the color of the CodeCharta logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the docs for suspicious metrics and risk profile feature [#3238](https://github.com/MaibornWolff/codecharta/pull/3238)\r\n- Improve Custom Views Dialog [#3238](https://github.com/MaibornWolff/codecharta/pull/3248)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unselecting a folder in Presentation Mode leads to console error [#3215](https://github.com/MaibornWolff/codecharta/pull/3215)\r\n- Fix Shrunken FileExplorer\'s file list on small displays [#3235](https://github.com/MaibornWolff/codecharta/pull/3235)\r\n- Fix various margin problems in the UI [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Fix bumpy animations when moving/turning the map, hover buildings (showing labels and edges) [#3244](https://github.com/MaibornWolff/codecharta/pull/3244)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgrade all material UI components to MDC (not using the UI legacy components any more) [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n\r\n## [1.114.0] - 2023-01-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to hide floor labels under the Area Metric Options. This recalculates the map. [#3175](https://github.com/MaibornWolff/codecharta/pull/3175)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Camera settings for custom views generated with version 1.101.1 and earlier are now ignored. [#3196](https://github.com/MaibornWolff/codecharta/pull/3196)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reposition legend panel button again, when attribute sidebar is open [#3183](https://github.com/MaibornWolff/codecharta/pull/3183)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors (metric descriptions) to TokeiImporter and SVNlogParser [#3176](https://github.com/MaibornWolff/codecharta/pull/3176)\r\n\r\n## [1.113.0] - 2022-12-15\r\n\r\n### Changed\r\n\r\n- The Custom Views Feature is now also available outside the Experimental Feature Mode [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/204557970-0ba31f3b-5209-4707-a2d0-55cc45509f8a.png)\r\n- Please note that the functionality of downloading cc.json maps will no longer be supported from April 2023. Instead, use the Custom View feature to create and share configurations for different views of your map. [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)\r\n- Change tooltips in the legend to show the metric description [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)
    \r\n ![image](https://user-images.githubusercontent.com/27358421/205251507-100b1e1a-d86e-44f3-89cf-f32bf295aabd.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve metric titles by loading them from cc.json [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)\r\n- Add attribute descriptors to SoureCodeParser [#3166](https://github.com/MaibornWolff/codecharta/pull/3166)\r\n\r\n## [1.112.1] - 2022-12-01\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reverted PR [#3077](https://github.com/MaibornWolff/codecharta/pull/3077) that introduced a rendering bug, where buildings sizes were not proportional to their area value [#3159](https://github.com/MaibornWolff/codecharta/pull/3159)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors to SonarImporter [#3149](https://github.com/MaibornWolff/codecharta/pull/3149)\r\n- Add title field to attribute descriptors [#3158](https://github.com/MaibornWolff/codecharta/pull/3158)\r\n\r\n## [1.112.0] - 2022-11-25\r\n\r\n### Added \u{1f680}\r\n\r\n- New calculation algorithm for treeMap that accounts for paddings and floor labels [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ribbon-bar shadow moving down when search is expanded [#3138](https://github.com/MaibornWolff/codecharta/pull/3138)\r\n- Fix loading errors of maps containing no programming-language-info [#3144](https://github.com/MaibornWolff/codecharta/pull/3144)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Documentation for new treeMap calculation algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Add attribute descriptors (metric descriptions) to some filters and importers [#3091](https://github.com/MaibornWolff/codecharta/pull/3091)\r\n\r\n## [1.111.0] - 2022-11-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description to every Custom View [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/201381274-a9a913d5-8f9d-4da6-9f26-6476e194ce3b.png)\r\n- Highlight files and folders with no area metric or an area metric value of zero in the search panel [#3126](https://github.com/MaibornWolff/codecharta/pull/3126)\r\n\r\n### Changed\r\n\r\n- Be aware, that all Custom Views generated with version 1.110.0 or older will be unusable by April 2023 [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Node Context-Menu in Map Tree View opening multiple times [#3135](https://github.com/MaibornWolff/codecharta/pull/3135)\r\n- Fix crashing on focusing or hovering un-rendered buildings [#3123](https://github.com/MaibornWolff/codecharta/pull/3123)\r\n- Fix showing changelog entries in the dialog when a new version is available [#3123](https://github.com/MaibornWolff/codecharta/pull/3129)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update supported latest browsers [#3125](https://github.com/MaibornWolff/codecharta/pull/3125)\r\n- Split e2e and unit test configs [#3128](https://github.com/MaibornWolff/codecharta/pull/3128)\r\n\r\n## [1.110.0] - 2022-11-04\r\n\r\n### Changed\r\n\r\n- Custom Views are now applicable even if maps or mode are different. Missing maps or map selection mode is displayed in the tooltip [#3090](https://github.com/MaibornWolff/codecharta/pull/3090)\r\n- Be aware, that all Custom Views generated with version 1.109.1 or older will be unusable by April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken link to Custom View documentation [#3101](https://github.com/MaibornWolff/codecharta/pull/3101)\r\n- Don\'t re-center map after every state change like changing area metric [#3109](https://github.com/MaibornWolff/codecharta/pull/3109)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Adjust Custom View API and maintain old Custom Views until April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n- Migrate codeMap.render.service, codeMap.label.service, codeMap.mouseEvent.service, codeMap.arrow.service, codeCharta.service, sharpnessMode.service, isLoadingFile.service, scaling.service and experimentalFeaturesEnabled.service to Angular [#3094](https://github.com/MaibornWolff/codecharta/pull/3094)\r\n- Extract tree map size into a const as this is never changed [3098](https://github.com/MaibornWolff/codecharta/pull/3098)\r\n- Migrate markedPackages.service, edges.service, blacklist.service, files.service and injector.service [3106](https://github.com/MaibornWolff/codecharta/pull/3106)\r\n- Refactor out `LoadInitialFileService` and fix with it loose Promise in tests [#3110](https://github.com/MaibornWolff/codecharta/pull/3110)\r\n- Migrate codeCharta.component, storeService.service and remove AngularJS dual boot from bootstrapping [#3114](https://github.com/MaibornWolff/codecharta/pull/3114)\r\n- Remove obsolete AngularJS dependencies [#3115](https://github.com/MaibornWolff/codecharta/pull/3115)\r\n\r\n## [1.109.1] - 2022-10-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links on new GitHub Page \'Docker Containers\' [#3089](https://github.com/MaibornWolff/codecharta/pull/3089)\r\n\r\n## [1.109.0] - 2022-10-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description and documentation to Custom View modal [#3085](https://github.com/MaibornWolff/codecharta/pull/3085)\r\n- Add a new button that links the height metric to the color metric so that the colour metric is automatically set to\r\n the selected height metric [#3058](https://github.com/MaibornWolff/codecharta/pull/3058)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/193291144-fdc73a15-2087-47e2-845b-05c666aec71d.png)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/194300920-60ce9fcd-0dd5-46ef-a90b-01d9a29205e6.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix interactive GitLogParser using wrong dialogue with repo-scan subcommand [#3073](https://github.com/MaibornWolff/codecharta/pull/3073)\r\n- Fix CodeCharta Analysis container exiting when detached [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Fix CodeCharta Analysis container not coming with the sonar-scanner pre-installed [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Rerender immediately after marking a folder with a color [#3067](https://github.com/MaibornWolff/codecharta/pull/3067)\r\n- Clicking the \'reset height metric settings\' button resets the number of top labels to the dynamic default value [#3066](https://github.com/MaibornWolff/codecharta/pull/3066)\r\n- Unfocus nodes when changing selected files, which prevents the app from crashing [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update Docker Publish Action in Release Pipeline [#3060](https://github.com/MaibornWolff/codecharta/pull/3060)\r\n- Write documentation for docker containers [#3063](https://github.com/MaibornWolff/codecharta/pull/3063)\r\n- Migrate isAttributeSideBarVisible.service, threeScene.service, threeCamera.service and threeStats.service to Angular [#3068](https://github.com/MaibornWolff/codecharta/pull/3068)\r\n- Migrate dialog.service to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Add documentation for new treeMap algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Migrate dialog.service to Angular [#3070](https://github.com/MaibornWolff/codecharta/pull/3070)\r\n- Migrate FocusedNodePathService, LayoutAlgorithmService, ThreeOrbitControlsService and ThreeViewerService to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Migrate updateAttributeTypes.service to Angular [#3082](https://github.com/MaibornWolff/codecharta/pull/3082)\r\n\r\n## [1.108.1] - 2022-09-29\r\n\r\n## Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update formatting in Docker Release Pipeline [#3059](https://github.com/MaibornWolff/codecharta/pull/3059)\r\n\r\n## [1.108.0] - 2022-09-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add new Analysis docker container, together with a docker-compose file that contains analysis, visualization and a\r\n SonarQube instance [#3057](https://github.com/MaibornWolff/codecharta/pull/3057)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- remove outdated Crococosmo, Understand and Jasome Importer from Analysis including its documentation [#3053](https://github.com/MaibornWolff/codecharta/pull/3053)\r\n\r\n## [1.107.0] - 2022-09-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Add subcommand to GitLogParser to run necessary git commands automatically [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n\r\n### Changed\r\n\r\n- Change default behaviour of GitLogParser to use new subcommands [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n- Set default value for displaying labels 1 per 100 buildings with a maximum of 10 labels [#3046](https://github.com/MaibornWolff/codecharta/pull/3046)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Uncheck the box when \'reset invert height\' icon is clicked [#3048](https://github.com/MaibornWolff/codecharta/pull/3048)\r\n- Update ReadMe and GitHub pages for MetricGardener [#3045](https://github.com/MaibornWolff/codecharta/pull/3045)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate codeMap.component to Angular with minor internal improvements [#3049](https://github.com/MaibornWolff/codecharta/pull/3049)\r\n- Remove threeUpdateCycle.service [#3050](https://github.com/MaibornWolff/codecharta/pull/3050)\r\n- Migrate metricData.service, edgeMetric.service, nodeMetricData.service and edgeMetricData.service to Angular [#3051](https://github.com/MaibornWolff/codecharta/pull/3051)\r\n- Migrate threeRenderer.service to Angular [#3052](https://github.com/MaibornWolff/codecharta/pull/3052)\r\n\r\n## [1.106.1] - 2022-09-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- CC-JSON Files not loaded on Safari browser [#3042](https://github.com/MaibornWolff/codecharta/pull/3042)\r\n- Show loading spinners while loading a file [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n- Prevent clicking on not opened metric options in ribbon bar [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n- Set cursor to pointer on color settings panel of delta mode [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Throttle rendering and migrate codeMap.preRender.service to Angular [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n\r\n## [1.106.0] - 2022-09-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add option to CSVImporter to specify the path column name [#3026](https://github.com/MaibornWolff/codecharta/pull/3026)\r\n\r\n### Changed\r\n\r\n- Stop asking the user to compress a file when printing to stdOut [#3024](https://github.com/MaibornWolff/codecharta/pull/3024)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix anongit script using the wrong whitespace, causing gitlogparser to fail [#3030](https://github.com/MaibornWolff/codecharta/pull/3030)\r\n- Reshow suspicious metrics badge when calculated data has changed [#2997](https://github.com/MaibornWolff/codecharta/pull/2997)\r\n\r\n## [1.105.0] - 2022-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to run MetricGardener before its parser if requested [#3015](https://github.com/MaibornWolff/codecharta/pull/3015)\r\n- Add missing documentation for MetricGardener importer [#3016](https://github.com/MaibornWolff/codecharta/pull/3016)\r\n\r\n### Changed\r\n\r\n- Increase the size of the close button to simplify closing the attribute sidebar [#3014](https://github.com/MaibornWolff/codecharta/pull/3014)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix console error when clicking switch button in delta mode [#3023](https://github.com/MaibornWolff/codecharta/pull/3023)\r\n- Fix broken images to new document pages about how using SonarQube [#3012](https://github.com/MaibornWolff/codecharta/pull/3012)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate tool bar component to Angular [#3020](https://github.com/MaibornWolff/codecharta/pull/3020)\r\n- Remove obsolete AngularJS IsPresentationModeService and ShowOnlyBuildingsWithEdgesService [#3005](https://github.com/MaibornWolff/codecharta/pull/3005)\r\n\r\n## [1.104.1] - 2022-08-31\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links to new document pages about how using SonarQube [#3009](https://github.com/MaibornWolff/codecharta/pull/3009)\r\n\r\n## [1.104.0] - 2022-08-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Copy-to-Clipboard-Button to paste the top 10 files with highest metric values [#2942](https://github.com/MaibornWolff/codecharta/pull/2942), [#2996](https://github.com/MaibornWolff/codecharta/pull/2995)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089603-ecfa8e31-8241-42a2-9954-2de554347381.png)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089577-5cd2eec0-5293-4083-b629-0e3c5621047c.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Correct file types now get appended to the name of the output file when using the interactive ccsh [#2914](https://github.com/MaibornWolff/codecharta/pull/2914)\r\n- Fix exit code handling and update integrationTest\'s golden_test.sh to cover all modules [#2988](https://github.com/MaibornWolff/codecharta/pull/2988)\r\n- Fix missing color pickers within edge metric options [#2993](https://github.com/MaibornWolff/codecharta/pull/2993)\r\n- Fix labels being displayed at an incorrect height and lines being disconnected from labels [#2991](https://github.com/MaibornWolff/codecharta/pull/2991)\r\n- Provides a list of metrics where no calculation could be performed in relation to a suspicion [#2996](https://github.com/MaibornWolff/codecharta/pull/2996)
    \r\n ![missing_values_suspicious_metrics](https://user-images.githubusercontent.com/31436472/187439165-77eda080-ceba-4bab-b077-4f6a2d6162b5.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate view cube component and its service to Angular [#2998](https://github.com/MaibornWolff/codecharta/pull/2998)\r\n\r\n## [1.104.0] - 2022-08-29\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate presentation mode button to Angular [#2938](https://github.com/MaibornWolff/codecharta/pull/2938)\r\n\r\n## [1.103.6] - 2022-08-17\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix bug in CompressionStreamHandler\'s input stream validation, that caused endless blocking reads from System.In [#2987](https://github.com/MaibornWolff/codecharta/pull/2987)\r\n\r\n## [1.103.5] - 2022-08-12\r\n\r\n### Changed\r\n\r\n- Update visualization readme file [#2932](https://github.com/MaibornWolff/codecharta/pull/2932)\r\n- Update the documentation for the usage of SonarQube [#2965](https://github.com/MaibornWolff/codecharta/pull/2965)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Add permission to upload-assets action [#2979](https://github.com/MaibornWolff/codecharta/pull/2979), [#2982](https://github.com/MaibornWolff/codecharta/pull/2982)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate download button to Angular [#2973](https://github.com/MaibornWolff/codecharta/pull/2973)\r\n\r\n## [1.103.3] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update Ubuntu images package list as part of the wine action [#2976](https://github.com/MaibornWolff/codecharta/pull/2976)\r\n\r\n## [1.103.2] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Highlight buildings on hover of file extension bar [#2969](https://github.com/MaibornWolff/codecharta/pull/2969)\r\n- Fix of the npm visualization installation under MacOS by version bumping nwjs [#2974](https://github.com/MaibornWolff/codecharta/pull/2974)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate file extension bar to Angular [#2968](https://github.com/MaibornWolff/codecharta/pull/2968)\r\n\r\n## [1.103.1] - 2022-08-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Change release action script in order to show changelog in release notes [#2970](https://github.com/MaibornWolff/codecharta/pull/2970)\r\n\r\n## [1.103.0] - 2022-08-09\r\n\r\n### Changed\r\n\r\n- Update links to demo website [#2961](https://github.com/MaibornWolff/codecharta/pull/2961)\r\n\r\n### Added \u{1f680}\r\n\r\n- Show tooltip with explanation for some metrics [#2957](https://github.com/MaibornWolff/codecharta/pull/2957)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix installation instructions for Apple Silicon [#2956](https://github.com/MaibornWolff/codecharta/pull/2956)\r\n- Fix release tag [#2954](https://github.com/MaibornWolff/codecharta/pull/2954)\r\n- Prevent dark map on unhover [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Zoom in/out time [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Fix webpack build package being corrupt if zipped under linux by changing the compression path [#2934](https://github.com/MaibornWolff/codecharta/pull/2934)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Load metric templates lazily and migrate them to Angular [#2960](https://github.com/MaibornWolff/codecharta/pull/2960)\r\n\r\n## [1.102] - 2022-08-04\r\n\r\n### Changed\r\n\r\n- Changed storing format for camera position within custom views and scenarios. Loading of created custom views or scenarios in old format will stop working in 2023 [2880](https://github.com/MaibornWolff/codecharta/pull/2880)\r\n- Add error messages for the user to "Add Scenario Dialog" [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n\r\n### Added \u{1f680}\r\n\r\n- Switch reference and comparison file by button click in delta mode [#2933](https://github.com/MaibornWolff/codecharta/pull/2933)\r\n ![image](https://user-images.githubusercontent.com/72517530/182630368-2d2b177d-8b4b-4850-8486-8d9afc7153c5.png)\r\n- Add display of changed files in delta mode (changed := metric values changed or list of applied metrics\r\n changed) [#2890](https://github.com/MaibornWolff/codecharta/pull/2890)\r\n ![image](https://user-images.githubusercontent.com/72517530/182631857-6192dea1-7a01-4684-90a6-d5da8615434a.png)\r\n- Load compressed files (cc.json.gz) via URL parameter [#2917](https://github.com/MaibornWolff/codecharta/pull/2917)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix SonarImporter requesting no metrics from SonarQube when the list of metrics was left empty [#2913](https://github.com/MaibornWolff/codecharta/pull/2913)\r\n- Exclude edge metrics from custom scenarios, when there are no edge metrics available. Before it was impossible to apply those custom configs [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n- Fix of NoSuchMethodException due to a call of method `readNBytes()` that is not available in Java 9 with replacement call `read()` [#2930](https://github.com/MaibornWolff/codecharta/pull/2930)\r\n- Keep selected metrics when excluding buildings [#2935](https://github.com/MaibornWolff/codecharta/pull/2935)\r\n- Update UI correctly when toggling between standard and delta mode [#2937](https://github.com/MaibornWolff/codecharta/pull/2937)\r\n\r\n## [1.101.1] - 2022-07-27\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Modify build script for GitHub pages in order to provide zipped maps.\r\n\r\n## [1.101.0] - 2022-07-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Transform a metric gardener json file into a code charta json file, that can be correctly visualized [#2675](https://github.com/MaibornWolff/codecharta/pull/2875)\r\n\r\n### Changed\r\n\r\n- Restore previous selected files when switching back from delta to standard mode [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n- Add more metrics that can be preselected when opening a cc.json file [#2907](https://github.com/MaibornWolff/codecharta/pull/2907) [#2908](https://github.com/MaibornWolff/codecharta/pull/2908)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Let file selection always show what is actual rendered within the map [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve performance by slightly delaying node-name popups and removing unused functionality [#2897](https://github.com/MaibornWolff/codecharta/pull/2897)\r\n\r\n## [1.100.0] - 2022-07-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add a description for the statements metric [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n\r\n### Changed\r\n\r\n- Select matching metric combination based on available metrics [#2862](https://github.com/MaibornWolff/codecharta/pull/2862)\r\n- Unify UI of buttons in toolbar [#2857](https://github.com/MaibornWolff/codecharta/pull/2857)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix resetting of color range within color settings panel [#2877](https://github.com/MaibornWolff/codecharta/pull/2877)\r\n- Fix resetting of colors in delta mode within color settings panel [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n- Restore global settings on page load again [#2878](https://github.com/MaibornWolff/codecharta/pull/2878)\r\n- Fix \'undefinded\' being displayed as a metric description when no description was available [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n- Fix windows standalone builds [#2881](https://github.com/MaibornWolff/codecharta/pull/2881)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate color settings panel to Angular [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n\r\n## [1.99.1] - 2022-06-22\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix packaging of standalone app for macOS and Windows [#2847](https://github.com/MaibornWolff/codecharta/pull/2847)\r\n- Fix dialogparser test of sourcecode parser[#2860](https://github.com/MaibornWolff/codecharta/pull/2860)\r\n\r\n## [1.99.0] - 2022-06-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the remaining parsers [#2833](https://github.com/MaibornWolff/codecharta/pull/2833) [#2836](https://github.com/MaibornWolff/codecharta/pull/2836) [#2842](https://github.com/MaibornWolff/codecharta/pull/2842) [#2843](https://github.com/MaibornWolff/codecharta/pull/2843) [#2846](https://github.com/MaibornWolff/codecharta/pull/2846)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix analysis bug where importers would get stuck before file output [#2854](https://github.com/MaibornWolff/codecharta/pull/2854)\r\n- Use correct icon for height metric chooser again [#2851](https://github.com/MaibornWolff/codecharta/pull/2851)\r\n- Close height metric option instead of making it only invisible on close [#2853](https://github.com/MaibornWolff/codecharta/pull/2853)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate changelog dialog to Angular [#2849](https://github.com/MaibornWolff/codecharta/pull/2849)\r\n- Migrate node path panel to Angular [#2855](https://github.com/MaibornWolff/codecharta/pull/2855)\r\n\r\n## [1.98.0] - 2022-06-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Add missing documentation for ccsh filters and csv exporter [#2831](https://github.com/MaibornWolff/codecharta/pull/2831)\r\n- Add support for compressed files to all analysis filters and to `check` validation [#2820](https://github.com/MaibornWolff/codecharta/pull/2820)\r\n\r\n### Changed\r\n\r\n- Update Readme file [#2837](https://github.com/MaibornWolff/codecharta/pull/2837)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Default selected metrics on file changes when default scenario is not applicable [#2828](https://github.com/MaibornWolff/codecharta/pull/2828)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove old references to single mode states and actions [#2574](https://github.com/MaibornWolff/codecharta/pull/2841)\r\n- Rename multiple mode references to standard [#2574](https://github.com/MaibornWolff/codecharta/pull/2848)\r\n\r\n## [1.97.0] - 2022-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the parsers [#2737](https://github.com/MaibornWolff/codecharta/pull/2737) [#2822](https://github.com/MaibornWolff/codecharta/pull/2822)
    \r\n ![m](https://user-images.githubusercontent.com/48621967/161549546-1463914e-c223-4912-acb1-db4e357e76c5.png)\r\n\r\n### Changed\r\n\r\n- Hide color metric range-slider in color metric options of ribbon bar in delta mode instead of disabling it [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Display max value of selected distribution metric in file extension bar [#2824](https://github.com/MaibornWolff/codecharta/pull/2824)\r\n- Display max value of selected metric in all metric chooser of ribbon bar [#2825](https://github.com/MaibornWolff/codecharta/pull/2825)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Handle invalid input of range-slider correctly [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Use real color range min value instead of 0 and take color range min value into account for calculating initial first third of positive color [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Fix range-slider in case of min value equal to max value [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Track not only changes to color metric options by slider but also by related input field [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Migrate center-map-button-component to Angular [#2809](https://github.com/MaibornWolff/codecharta/pull/2809)\r\n- Migrate the following components to Angular: globalSettingsButton.component, dialog.globalSettings.component, layoutSelection.component, sharpnessModeSelector.component, maxTreeMapFiles.component, maxTreeMapFiles.service, hideFlatBuildings.service, resetCameraIfNewFileIsLoaded.service [#2815](https://github.com/MaibornWolff/codecharta/pull/2815)\r\n- Migrate area-settings-panel-component to Angular [#2821](https://github.com/MaibornWolff/codecharta/pull/2821)\r\n\r\n## [1.96.0] - 2022-05-17\r\n\r\n### Changed\r\n\r\n- Remove all mentions of regular `.cc` `.json` `.gz` file extensions from file panel and sidebar [#2793](https://github.com/MaibornWolff/codecharta/pull/2793)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update slider of area metric options correctly on changes of related input field [#2787](https://github.com/MaibornWolff/codecharta/pull/2787)\r\n- Limit length of labels in legend panel [#2804](https://github.com/MaibornWolff/codecharta/pull/2804)\r\n- Prevent invalid input for margin in area metric options to be submitted [#2799](https://github.com/MaibornWolff/codecharta/pull/2799)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Introduce custom angular material theme [#2784](https://github.com/MaibornWolff/codecharta/pull/2784)\r\n- Migrate height-settings-panel-component [#2790](https://github.com/MaibornWolff/codecharta/pull/2790)\r\n- Fully migrate custom-config-component [#2760](https://github.com/MaibornWolff/codecharta/pull/2760)\r\n\r\n## [1.95.2] - 2022-04-19\r\n\r\n### Changed\r\n\r\n- Restrict upload in custom views menu to custom views. Custom views uploaded in the custom views menu are now allowed to have an arbitrary file suffix [#2773](https://github.com/MaibornWolff/codecharta/pull/2773)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate reset-settings-button-component to Angular [#2774](https://github.com/MaibornWolff/codecharta/pull/2774)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set files loaded via URL to multiple mode by default when delta mode is not selected [#2769](https://github.com/MaibornWolff/codecharta/pull/2769)\r\n\r\n## [1.95.1] - 2022-04-01\r\n\r\n### Changed\r\n\r\n- Display project name as file name (if not empty or blank) for loaded files via URL [#2767](https://github.com/MaibornWolff/codecharta/pull/2767)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fixes floor labels being drawn next to the map if margin was changed after map height is unequal to 1 [#2763](https://github.com/MaibornWolff/codecharta/pull/2763)\r\n- Fixes floor labels being stuck inside folder geometry when scaling [#2766](https://github.com/MaibornWolff/codecharta/pull/2766)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate metric-hovered-value-component to Angular [#2752](https://github.com/MaibornWolff/codecharta/pull/2752)\r\n\r\n## [1.95.0] - 2022-03-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Focused gradient option for color metric. Only applies a gradient between the two set borders. [#2750](https://github.com/MaibornWolff/codecharta/pull/2750)\r\n\r\n### Changed\r\n\r\n- Mark SCMLogParserV2 as stable and deprecate SCMLogParser for Git [2725](https://github.com/MaibornWolff/codecharta/pull/2725)\r\n - Rename SCMLogParserV2 to GitLogParser\r\n - Rename SCMLogParser to SVNLogParser and remove git parsing\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set initially correct attribute type of primary edge metric in attribute sidebar [#2731](https://github.com/MaibornWolff/codecharta/issues/2731)\r\n- Fix switching secondary metrics to median aggregation in attribute sidebar [#2630](https://github.com/MaibornWolff/codecharta/issues/2630)\r\n\r\n## [1.94.0] - 2022-03-21\r\n\r\n### Changed\r\n\r\n- Improve sonarimport help message [#2717](https://github.com/MaibornWolff/codecharta/pull/2717)\r\n- Remove blacklist entry on click of name as well [#2712](https://github.com/MaibornWolff/codecharta/pull/2712)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate add `custom config button` in ribbonbar to Angular [#2736](https://github.com/MaibornWolff/codecharta/pull/2736)\r\n\r\n## [1.93.0] - 2022-03-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Show amount of added and removed files in attribute sidebar when delta mode is enabled and a folder is selected [#2701](https://github.com/MaibornWolff/codecharta/pull/2701/files)
    \r\n ![xs](https://user-images.githubusercontent.com/72517530/157468180-4e2d052b-63b8-4040-bb22-b633a24d3b8a.png)\r\n\r\n### Changed\r\n\r\n- Suspicious metrics and risk profile are calculated for all selected maps [#2721](https://github.com/MaibornWolff/codecharta/pull/2721)\r\n- Close search panel and ribbon bar dropdowns on every outside click [#2692](https://github.com/MaibornWolff/codecharta/issues/2692)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix GameObjects importer edge cases [#2705](https://github.com/MaibornWolff/codecharta/pull/2705)\r\n\r\n## [1.92.1] - 2022-03-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix removing maps with long file names [#2696](https://github.com/MaibornWolff/codecharta/pull/2697)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate search-bar-component to Angular [#2686](https://github.com/MaibornWolff/codecharta/pull/2686)\r\n\r\n## [1.92.0] - 2022-03-01\r\n\r\n### Changed\r\n\r\n- Design and add a new CodeChara Logo [#2682](https://github.com/MaibornWolff/codecharta/pull/2682)
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/155682925-ecc9fe5d-77de-4927-9c6a-b1059ae9eead.png)\r\n- Risk profile is now calculated for every occurring programming languages in selected file(s)[#2679](https://github.com/MaibornWolff/codecharta/pull/2679)\r\n\r\n## [1.91.1] - 2022-02-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n## [1.91.0] - 2022-02-21\r\n\r\n### Changed\r\n\r\n- Refactor edge metric panel [#2670](https://github.com/MaibornWolff/codecharta/pull/2670)\r\n - Remove edge metric option \'none\'\r\n - By default, the first edge metric is enabled when map has edge metrics\r\n - Disable edge metric panel when loaded map has no edge metrics\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve loading times by reducing the size of JavaScript files [#2667](https://github.com/MaibornWolff/codecharta/pull/2667)\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate loading gifs to Angular and remove now unused `isLoadingMap.service` [#2668](https://github.com/MaibornWolff/codecharta/pull/2668)\r\n\r\n## [1.90.0] - 2022-02-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Parse and import GameObjects file structure into cc.json on upload [#2646](https://github.com/MaibornWolff/codecharta/pull/2646)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix flaky string comparison possibly due to puppeteer update [#2659](https://github.com/MaibornWolff/codecharta/pull/2659)\r\n- Fix show garbage bin next to the loaded maps [#2647](https://github.com/MaibornWolff/codecharta/pull/2647)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Run standalone version of CodeCharta in Node.js web target (and disable [#1314](https://github.com/MaibornWolff/codecharta/issues/1314)), so that local storage is available [#2637](https://github.com/MaibornWolff/codecharta/pull/2637)\r\n\r\n## [1.89.0] - 2022-02-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add area metric option to invert the amount of area, which is used for the nodes [#2626](https://github.com/MaibornWolff/codecharta/pull/2626)\r\n- Add button to clear search field [#2638](https://github.com/MaibornWolff/codecharta/pull/2638)
    \r\n ![xs](https://user-images.githubusercontent.com/48218172/151999974-3b8a7cca-52b2-4757-b3c0-e3b2e36ad237.png)\r\n\r\n### Changed\r\n\r\n- New buttons for selecting attribute types [#2631](https://github.com/MaibornWolff/codecharta/pull/2631)\r\n ![xs](https://user-images.githubusercontent.com/72517530/151762455-07e47bf5-18aa-4721-a60a-6dfee057e1e5.png)\r\n- Migrate context menu with slightly new layout touch to Angular. Migrated version prevents rendering outside of view [#1661](https://github.com/MaibornWolff/codecharta/issues/1661)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Remove delay of keeping a building highlight permanently [#2641](https://github.com/MaibornWolff/codecharta/issues/2641)\r\n\r\n## [1.88.0] - 2022-01-24\r\n\r\n### Changed\r\n\r\n- Rename custom configs to custom view [#2625](https://github.com/MaibornWolff/codecharta/pull/2625)\r\n- Combine single and multiple mode into standard mode [#2578](https://github.com/MaibornWolff/codecharta/pull/2578)\r\n ![xs](https://user-images.githubusercontent.com/72517530/150765617-2d66eb78-2c26-45c5-b63b-f84994ed88ab.png)\r\n- Improve file validation handling and provide more descriptive import messages [#2604](https://github.com/MaibornWolff/codecharta/pull/2604)\r\n ![xs](https://user-images.githubusercontent.com/48621967/150532207-f3b482ed-3a14-43c0-b1a3-80ac4c25d5e0.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n - Unfocus focused node only when map starts to load and not also when map has finished loading. This shouldn\'t change any behavior for the user [#2614](https://github.com/MaibornWolff/codecharta/pull/2614)\r\n\r\n## [1.87.1] - 2022-01-17\r\n\r\n### Changed\r\n\r\n- User-friendly renaming for display quality options [#2601](https://github.com/MaibornWolff/codecharta/pull/2601)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color of selected building in delta mode [#2603](https://github.com/MaibornWolff/codecharta/pull/2603)\r\n- Fix link to news page when clicking \'Know more\' button changelog dialog [#2602](https://github.com/MaibornWolff/codecharta/pull/2602)\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n## [1.87.0] - 2022-01-11\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate `unfocus-button-component` to Angular.\r\n\r\n### Changed\r\n\r\n- Remove suspicious metrics from custom map configurations [#2564](https://github.com/MaibornWolff/codecharta/pull/2564).\r\n- Add \'show/hide non-applicable CustomConfigs\' button to Custom Configs menu [#2591](https://github.com/MaibornWolff/codecharta/pull/2591).\r\n\r\n## [1.86.0] - 2021-12-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add 3D export feature for 3D printing [#2561](https://github.com/MaibornWolff/codecharta/pull/2561).
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/146173663-e0ea177e-6ed8-4ddb-bd11-410415541e9f.png)\r\n ![l](https://user-images.githubusercontent.com/48621967/146174397-42a6e475-ed2f-47c0-ba9c-4f8304d53399.png)\r\n\r\n### Changed\r\n\r\n- Replace all color pickers in the context of ongoing Angular migration [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing names of custom configs properly [#2557](https://github.com/MaibornWolff/codecharta/pull/2557).\r\n- Fix minor memory leak in context menu for code map buildings [#2565](https://github.com/MaibornWolff/codecharta/issues/2565).\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate legend panel to Angular [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n## [1.85.0] - 2021-12-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix delta values of secondary metrics not shown in delta mode within attribute side bar [#2539](https://github.com/MaibornWolff/codecharta/issues/2539).\r\n- Use icon tag instead of font awesome icon [#2537](https://github.com/MaibornWolff/codecharta/pull/2537).\r\n- Rename text for placeholder of metric chooser [#2547](https://github.com/MaibornWolff/codecharta/pull/2547)\r\n- Fix attribute type selector of primary edge metric not shown [#2528](https://github.com/MaibornWolff/codecharta/issues/2528).\r\n- Identical files and files with identical file names but different hashes can be loaded [#2548](https://github.com/MaibornWolff/codecharta/pull/2548)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `secondaryMetrics` from store and remove `secondaryMetrics.service` as the data can be derived from selected node [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Migrate `attribute-side-bar-component` to Angular [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Switch from Webpack 4 Loaders to Asset Module to load icons properly with css-loader 6.x [#2542](https://github.com/MaibornWolff/codecharta/pull/2542).\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Remove notification dialog when deleting a custom config [#2553](https://github.com/MaibornWolff/codecharta/pull/2553)\r\n\r\n## [1.84.1] - 2021-11-29\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix compressed files not being loaded ([#2524](https://github.com/MaibornWolff/codecharta/pull/2525))\r\n\r\n## [1.84.0] - 2021-11-22\r\n\r\n### Changed\r\n\r\n- Improved the UI and usability of the Suspicious Metrics Feature ([#2376](https://github.com/MaibornWolff/codecharta/pull/2494))
    \r\n - The Metrics and the Analysis are now split in two menus
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/141795078-bb856f53-1bc3-4c09-8be5-d031899835ae.png)\r\n - The Suspicious Metrics are now sorted with the Very High Risk on top
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141793011-1bfc0e19-bd3a-4bd2-af70-c3dd472821b6.png)\r\n - The bar in the analysis shows the percentages
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141791111-564778fa-b767-4ee4-b024-6856f1a79b4b.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing labels when weighted gradient on yellow buildings in color metric options are enabled ([#2511](https://github.com/MaibornWolff/codecharta/pull/2511))\r\n- Fix rounding of the sum of percentages in risk profile ([#2393](https://github.com/MaibornWolff/codecharta/pull/2516))\r\n- Fix legend panel not having a background ([#2422](https://github.com/MaibornWolff/codecharta/pull/2510))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `nodeSearch.service.ts` and `searchedNodePaths` from store as they can be derived from `searchPattern` ([#2495](https://github.com/MaibornWolff/codecharta/pull/2495)).\r\n- Refactor where metric data are calculated ([#2514](https://github.com/MaibornWolff/codecharta/pull/2514)).\r\n- Migrate `attribute-type-selector-component` to Angular ([#2519](https://github.com/MaibornWolff/codecharta/pull/2519)).\r\n\r\n## [1.83.1] - 2021-11-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading files from URL in Web Demo ([#2494](https://github.com/MaibornWolff/codecharta/pull/2494))\r\n\r\n## [1.83.0] - 2021-11-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix unwanted calculations of suspicious metrics when experimental features are disabled ([#2471](https://github.com/MaibornWolff/codecharta/pull/2471))\r\n- Fix UI issues in the configuration panel ([#2322](https://github.com/maibornwolff/codecharta/issues/2322))\r\n- Fix tooltip of sorting order button in map tree view showing wrong sorting order ([#2473](https://github.com/maibornwolff/codecharta/issues/2473))\r\n\r\n### Changed\r\n\r\n- Calculate MD5 checksum when generating .cc.json files ([#2411](https://github.com/MaibornWolff/codecharta/pull/2450))\r\n\r\n## [1.82.0] - 2021-10-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix what\'s new section including the last opened version ([#2447](https://github.com/MaibornWolff/codecharta/pull/2453))\r\n- Fix unfocus button text not showing correctly ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n\r\n### Changed\r\n\r\n- Folders in the Folder structure view of the top left come now always before any files, regardless of the sort order.\r\n\r\n## [1.81.0] - 2021-10-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color picker not being usable ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n- Fix Changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/135866024-ee06119a-1a62-4912-90df-ac3aa9216608.PNG)\r\n- Fix memory and performance issues related to drawing labels on floors/folders ([#2348](https://github.com/MaibornWolff/codecharta/issues/2348)).\r\n- Hides legend block if label description is not available and adds new metric descriptions ([#2377](https://github.com/maibornwolff/codecharta/issues/2377)).\r\n\r\n## [1.80.0] - 2021-10-04\r\n\r\n### Added \u{1f680}\r\n\r\n- Adds feature to display building colors as a gradients ([#2327](https://github.com/MaibornWolff/codecharta/issues/2327)).\r\n - "Weighted Gradient" only mixes colors in a small interval around the preset values.\r\n - "True Gradient" mixes colors from the 0 to the highest value, the two preset color range values determine the balance.\r\n - "Absolute" represents the old behaviour without gradients.
    \r\n ![l](https://user-images.githubusercontent.com/42114276/134924267-245c65c9-2893-43a8-9a0a-17e3182bf15a.JPG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken file/node search #2389\r\n- Fix changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))\r\n\r\n## [1.79.0] - 2021-09-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric descriptions to the frontend and show a translation next to the entry ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))
    \r\n \r\n- An option has been added to the global settings to enable copying screenshots to clipboard instead of saving them in a file ([#2326](https://github.com/MaibornWolff/codecharta/issues/2326))
    \r\n ![xl](https://user-images.githubusercontent.com/57844849/131342771-a3c637e3-8241-49aa-8d51-71e3a8d38aef.png)\r\n- Add changelog guidelines ([#2358](https://github.com/MaibornWolff/codecharta/pull/2358))\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/pull/2342))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/131360878-a8e1ef40-7f73-4de7-8b3f-4c8dc21448da.PNG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken method call in screenshot feature.\r\n- Improve changelog entries.\r\n\r\n### Changed\r\n\r\n- Changing the background color and remove "outgoing" and "incoming" edges from the legend, if not applicable ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))\r\n- Improve the user experience for the AI Feature "Suspicious Metrics and Risk Profiles" and enable it for any programming language ([#2362](https://github.com/MaibornWolff/codecharta/pull/2362))
    \r\n ![m](https://user-images.githubusercontent.com/26900540/133250867-adf4583d-9d0e-4f81-b8a7-1407b93d9f40.png)\r\n\r\n## [1.78.0] - 2021-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/issues/1315))\r\n- Add documentation for SCMLogParserV2 ([#1349](https://github.com/maibornwolff/codecharta/issues/1349))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Empty temporary label during hovering ([#2328](https://github.com/maibornwolff/codecharta/issues/2328))\r\n- Show the screenshot hotkey in the screenshot title ([#2323](https://github.com/maibornwolff/codecharta/issues/2323))\r\n- Improved rendering performance ([#2345](https://github.com/MaibornWolff/codecharta/pull/2345))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update GH-Pages and visualization dependencies ([#2356](https://github.com/maibornwolff/codecharta/issues/2356))\r\n\r\n## [1.77.0] - 2021-07-30\r\n\r\n### Added \u{1f680}\r\n\r\n- The "Color Metric Options" panel and "Legend" panel display the maximum value of the selected metric instead of infinite. ([#1520](https://github.com/maibornwolff/codecharta/issues/1520))\r\n- Mark color-section as unimportant in delta mode ([#769](https://github.com/maibornwolff/codecharta/issues/769))\r\n\r\n### Changed\r\n\r\n- Small ui improvements added. ([#1881](https://github.com/MaibornWolff/codecharta/issues/1881))\r\n- Numbers/Percentages always show in the distribution bar([#1540](https://github.com/MaibornWolff/codecharta/issues/1540))\r\n - Toggle between percentage and absolute numbers by clicking anywhere on the (expanded) distribution bar.\r\n - The old expanded distribution bar is now accessible through a button.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is no longer possible to exclude all files on the map ([#901](https://github.com/MaibornWolff/codecharta/issues/901))\r\n\r\n## [1.76.0] - 2021-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom metric scenarios which include the \'Color-Metric\' (rloc) will now also save any changes made to the color scheme.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance improvements when loading new files. ([#1312](https://github.com/maibornwolff/codecharta/issues/1312))\r\n\r\n## [1.75.0] - 2021-07-05\r\n\r\n### Added \u{1f680}\r\n\r\n- Imported files are now compressed by default. Use the -nc parameter to uncompress the files. ([#1702](https://github.com/maibornwolff/codecharta/issues/1702))\r\n- Export the current view as a png image by using "Ctrl+Alt+S" or clicking the corresponding button ([#674](https://github.com/MaibornWolff/codecharta/issues/674))\r\n- Show only labels of buildings according to a chosen color ([#1347](https://github.com/MaibornWolff/codecharta/issues/1347))\r\n- New buttons to reset the color hex values and color metric thresholds separately ([#1613](https://github.com/MaibornWolff/codecharta/issues/1613))
    \r\n ![l](https://user-images.githubusercontent.com/50167165/121889295-5b071780-cd19-11eb-87ef-aba0ab0c6c09.png)\r\n\r\n### Changed\r\n\r\n- Metric aggregations now work as intended and are available from the sidebar when selecting folders ([#1953](https://github.com/MaibornWolff/codecharta/issues/1953))\r\n- Opening new files does no longer remove old ones.\r\n - Already loaded files can be individually removed.\r\n - The \'Multiple\' view will select the latest files.
    \r\n ![l](https://user-images.githubusercontent.com/50167165/123071234-c6856f00-d414-11eb-8326-e25f614e75d7.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is now possible to rotate the map by rotating the view cube ([#353](https://github.com/MaibornWolff/codecharta/issues/353))\r\n\r\n## [1.74.0] - 2021-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- SonarImport: SonarQube 8.8 support. Older versions are still supported.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Only show labels for building included in the search\r\n- Color slider not initialized correctly ([#1592](https://github.com/MaibornWolff/codecharta/issues/1592))\r\n\r\n## [1.73.0] - 2021-05-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Improve descriptions ([#1879](https://github.com/MaibornWolff/codecharta/issues/1879))\r\n

    \r\n ![m](https://user-images.githubusercontent.com/57844849/115393175-b2897b00-a1e1-11eb-8601-d2128f3469a3.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Excluding in delta mode is broken ([#1578](https://github.com/MaibornWolff/codecharta/issues/1578))\r\n (Inclusion and exclusion of files using wildcard searches in the flatten and exclude operations)\r\n- Fix labels and lines missing a connection in some cases([#1716](https://github.com/MaibornWolff/codecharta/issues/1716))\r\n- Ribbons resizing when expanding ([#1952](https://github.com/MaibornWolff/codecharta/issues/1952))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix breaking changes with newest three-js version([#1877](https://github.com/MaibornWolff/codecharta/issues/1877))\r\n\r\n## [1.72.0] - 2021-04-22\r\n\r\n### Added \u{1f680}\r\n\r\n- Hints for Global Settings ([#1715](https://github.com/MaibornWolff/codecharta/issues/1715))\r\n- Indicate total nodes and excluded / flattened nodes in file explorer ([#1880](https://github.com/MaibornWolff/codecharta/issues/1880))\r\n- Add path to node context menu ([#1667](https://github.com/MaibornWolff/codecharta/issues/1667))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Made the header semi responsive ([#1037](https://github.com/MaibornWolff/codecharta/issues/1037))\r\n\r\n## [1.71.2] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Fixed web visualization in github\r\n\r\n## [1.71.1] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.71.0] - 2021-03-16\r\n\r\n### Changed\r\n\r\n- Disable unready AI function\r\n- Fix linter errors\r\n- Fix editorconfig\r\n\r\n## [1.70.2] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Project naming for Docker deployment\r\n\r\n## [1.70.1] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.70.0] - 2021-03-09\r\n\r\n### Changed\r\n\r\n- Render on demand ([#1728](https://github.com/MaibornWolff/codecharta/issues/1728))\r\n\r\n### Fixed\r\n\r\n- Memory leaks\r\n\r\n## [1.69.0] - 2021-02-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Added WebGL FXAA antialias & PixelRatio Options in order to achieve better resolution on high dpi displays(https://github.com/MaibornWolff/codecharta/pull/1551).

    \r\n ![option dialog](https://user-images.githubusercontent.com/74670211/106582136-f4404900-6543-11eb-8f5b-5e1ec47457c7.png)\r\n There are 4 available modes:\r\n - **standard mode**: the pixel density is only applied to the small cube with standard browser aliasing\r\n - **pixel ratio without aliasing**: no antialiasing is used\r\n - **pixel ration with FXAA**: Nvidia FXAA antialiasing shader is used as an alisaing technique. this has better perfromance the standard browser aliasing aliasing\r\n - **pixel ration with MSAA**: this is the best aliasing quality, slower then FXAA.\r\n- Added GPU Stats (only in dev mode)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unfocus now respects the focus depth ([#1099](https://github.com/MaibornWolff/codecharta/issues/1099))\r\n- Track anonymous usage data also for older CodeCharta API versions and fix some minor bugs.\r\n\r\n## [1.68.0] - 2021-02-08\r\n\r\n### Added \u{1f680}\r\n\r\n- A new experimental feature has been added to track anonymous metadata of a currently loaded map.\r\n - Neither the map name nor file names will be tracked but anonymous metric values and statistics like (average, min, max).\r\n - The tracked data will not be sent to a server yet. Instead, it can be downloaded as a json file in the Global Settings for now.\r\n - It is planned to send the anonymous data to a server in the future, so that we can collect tracking data automatically.\r\n - ![example of new feature](https://user-images.githubusercontent.com/26900540/106896300-ac5f2480-66f1-11eb-8096-246d1733c0ee.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Errors occurred in delta mode if names of root folders were different\r\n- Switching maps in delta mode now shows the differences between the maps ([#1606](https://github.com/maibornwolff/codecharta/issues/1606))\r\n- Label over hovered building not shown for height Metric value of zero ([#1623](https://github.com/MaibornWolff/codecharta/issues/1623))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- CodeChartaStorage class has been introduced to dynamically store values either on disk (standalone version) or in the localStorage (web version). This is the first step to solve [#684](https://github.com/MaibornWolff/codecharta/issues/684).\r\n\r\n## [1.67.0] - 2021-01-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow opening files from local drive by double clicking on the buildings or clicking on their names ([#1314](https://github.com/MaibornWolff/codecharta/issues/1314))\r\n - Only available in the standalone version!\r\n - files are opened in associated third-party applications\r\n - web-links are opened in a browser window\r\n- Allow customized color in the node context menu ([#1556](https://github.com/MaibornWolff/codecharta/issues/1556)).\r\n\r\n [!example of new feature #1556](https://user-images.githubusercontent.com/3596742/104302048-a007f300-54c8-11eb-86c1-287483884783.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- fixed wrong max tree map visibility ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- fixed incorrect label placement on delta maps that share no common nodes ([#1686](https://github.com/MaibornWolff/codecharta/issues/1686))\r\n\r\n## [1.66.0] - 2021-01-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow color of buildings to be customizable in the ribbon bar and in the legend. Colors of edges are now customizable as well ([#1533](https://github.com/MaibornWolff/codecharta/issues/1533))

    \r\n ![example of new feature](https://user-images.githubusercontent.com/3596742/103547861-3c1c7380-4ea5-11eb-8df2-541caf65b9df.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Global settings not reverting to default ones ([#1632](https://github.com/MaibornWolff/codecharta/issues/1632))\r\n- Maximum treemap files shown in squarified node ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- Wrong folder names and colors in legend when using the highlight folder feature ([#1555](https://github.com/MaibornWolff/codecharta/issues/1555))\r\n- Temporary labels are placed at the wrong height for scaled buildings ([#1618](https://github.com/MaibornWolff/codecharta/issues/1618))\r\n- Visible labels will disappear or placed lower for scaled buildings ([#1619](https://github.com/MaibornWolff/codecharta/issues/1619))\r\n- Unnecessary break line for secondary metrics ([#1093](https://github.com/MaibornWolff/codecharta/issues/1093))\r\n\r\n## [1.65.0] - 2020-12-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight label while hovering over building, draw a temporary label for hovered buildings that have none ([#1529](https://github.com/MaibornWolff/codecharta/issues/1529))\r\n- Integrated streetlayout ([#904](https://github.com/MaibornWolff/codecharta/issues/904))\r\n ![cc_street_ccv](https://user-images.githubusercontent.com/63230711/78872405-87eed900-7a49-11ea-984a-c0ef738779b9.png)\r\n In street layout file nodes are displayed as buildings and directories are displayed as streets. A street layout has the advantage of a more apparent directory structure and stable positioning of nodes after metric changes.\r\n two different Street layout are integrated : - StreetLayout : as described above. - TMStreet : a combination of street layout and squarified layout.\r\n\r\n### Changed\r\n\r\n- The button to see excluded buildings is now merged into the flattened button. Excluded and flattened buildings can now be seen by opening the building with the eye slash icon ([#1543](https://github.com/MaibornWolff/codecharta/issues/1543))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Height scaling not applied to buildings ([#1595](https://github.com/MaibornWolff/codecharta/issues/1595)))\r\n- Fixed multiple label positioning/scaling bugs\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- e2e flaky test ([#1322](https://github.com/MaibornWolff/codecharta/issues/1322))\r\n\r\n## [1.64.0] - 2020-12-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Download and upload Custom Configurations is now possible ([#1472](https://github.com/MaibornWolff/codecharta/issues/1472))\r\n\r\n - Open the Custom Configs menu in the toolbar on top of the map\r\n - Next to the `plus` Button you can see two new buttons: Upload and download.\r\n - Download: If you already have added Custom Configs you can download them by clicking the download button.\r\n - Custom Configs which are applicable for the currently selected map(s) will be downloaded as `.cc.config.json` files.\r\n - Upload: Click the upload button and specify your Custom Config file (`.cc.config.json`)\r\n - Already existing Custom Configs will be skipped.\r\n - Different Custom Configs with same names will be renamed.\r\n - Another way to upload your Custom Configs is to upload a `.cc.json` file together with one or multiple `.cc.config.json` files using the default `Load .cc.json map` button in the upper left corner.\r\n - The Configs are stored to the local storage of your browser.\r\n - If a limit of `768KB` is exceeded you will see a warning when trying to add a new Custom Config.\r\n - You can click the displayed "download and purge" button to download/backup at least 6 months old Configs and then purge them from the local storage to make space for new ones.\r\n - If we cannot purge any Configs, you might have to do that by your own by deleting specific Configs manually.\r\n\r\n### Changed\r\n\r\n- Increase possible margin size ([#1490](https://github.com/MaibornWolff/codecharta/pull/1490))\r\n - change displayed margin value from % to pixel\r\n - change dynamic margin value to a default margin value that should fit the map\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Re-enabled color selection for folders and on hover ([#1544](https://github.com/MaibornWolff/codecharta/pull/1544))\r\n- Labels do not take delta height into account ([#1523](https://github.com/MaibornWolff/codecharta/issues/1523))\r\n- The calculation of the map resolution scale factor was wrong ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n - The factor is used to decrease the map resolution especially for big maps to avoid performance issues.\r\n - Now only the selected maps will be considered for the calculation. Unselected maps will be skipped.\r\n\r\n## [1.63.0] - 2020-11-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Add the folder name onto the floor on the first 3 layers to get a better overview of the map ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n- UX Improvements related to labels allowing for user interaction #1404\r\n - Labels can be hovered, hovering their corresponding node\r\n - Selecting a label will select the corresponding node\r\n - Hovering a label will remove its transparency and move towards the user:\r\n - If other labels obstruct the hovered label it will move to the front\r\n - Increased the transparency of other labels; this makes it easier to distinguish the hovered label\r\n - Increase the amount of labels to 250.\r\n- Show file count of folders in Attribute-Side-Bar ([#1255](https://github.com/MaibornWolff/codecharta/issues/1255)):\r\n ![img showing file count of folder](https://user-images.githubusercontent.com/3596742/100371884-be915800-3008-11eb-89f5-ed57c62680cc.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Buildings are flattened when delta is active #824.\r\n- Selected Building now stays highlighted when map is rotated #1498\r\n\r\n## [1.62.0] - 2020-11-12\r\n\r\n### Added \u{1f680}\r\n\r\n- A new option in the Global Settings allows to enable/disable experimental features #1318\r\n - Click on the settings button in the upper right corner to open the Global Settings dialog.\r\n - Activate/Deactivate the new option "Enable Experimental Features"\r\n - The features will be shown/hidden accordingly\r\n- "CustomViews", the first experimental feature has been added #1318\r\n\r\n - It must be enabled by activating the new option in the Global Settings dialog as mentioned before.\r\n - You can save your current map configurations to replay/restore them later.\r\n - A saved CustomView can only be applied for it\'s original map.\r\n - This will enable you to be more efficient in analizing projects by switching between different CustomViews.\r\n\r\n- NodeContextMenu now contains option to keep buildings highlighted #1323\r\n\r\n- Fixed Folder algorithm supports nested (parent-child) Fixed Folders #1431\r\n 1. Define children of a Fixed Folder also as Fixed Folders by adding the `fixedPosition` attribute manually in `.cc.json`.\r\n 1. All children of a parent Fixed Folder must be fixed.\r\n 1. Read the how-to guide for further information: https://maibornwolff.github.io/codecharta/how-to/fixate_folders_with_a_custom_cc_json/\r\n\r\n### Changed\r\n\r\n- Improved search\r\n\r\n 1. Not providing any star in the search bar from now on expects the input to\r\n be a wildcard search. Thus, files are going to match paths that have\r\n leading or following characters. E.g., `oo` is going to match\r\n `/root/foobar`.\r\n 1. To use the explicit former search mode, wrap the search entry in quotes as\r\n in: `"oo"`. This would only match filenames that are exactly `oo`.\r\n 1. The search field accepts multiple search entries at once, separated by\r\n commata. `foo,bar` is going to search for both `*foo*` and `*bar*` and\r\n marks all matched files accordingly.\r\n 1. It is possible to invert the search with a leading exclamation mark as in\r\n `!foobar`. That will match any file that does not match `*foobar*`. It is\r\n only possible to invert the complete input, not individual search entries.\r\n 1. Whitespace handling changed to ignore leading whitespace.\r\n\r\n- Distribution metric #1188\r\n\r\n 1. set rloc to default distribution metric, showing language percentages for real lines of code, if available. Else set to unary to show language distribution over files\r\n\r\n- Improved file sorting in the file overview of the search bar\r\n - Numbers are sorted naturally\r\n - Characters are compared with their base character (e.g., `a` is now next to `\xe1`).\r\n- Label metric not shown by default anymore\r\n\r\n## [1.61.0] - 2020-10-30\r\n\r\n### Changed\r\n\r\n- Disable highlighting buildings during map movement #1432\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- File tree/flattened/excluded overlay visualization is buggy #1269\r\n- EdgePreview on Map broken when selecting zero #1276\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Schedules and merge retries of dependabot dependency updates changed\r\n\r\n## [1.60.2] - 2020-10-24\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Mouse cursor flickering #1170\r\n- Fix flipping map when clicking any option in the toolbar #1410\r\n- Fix edge metric not working correctly\r\n\r\n## [1.60.1] - 2020-10-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Issue with first start without an internet connection not working#1266\r\n- Issue with ribbon bar sizes for opened cards #1035\r\n\r\n## [1.60.0] - 2020-10-16\r\n\r\n### Added \u{1f680}\r\n\r\n- Parsing feedback with progressbar and probable ETA for parsers and SonarImporter #847\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n- Indicate the metric name next to a shown value in a new line on labels #1035\r\n- Checkboxes to display metric names and values and to display node names on labels #1035\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n\r\n### Changed\r\n\r\n- Label design #1035\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- First start without an internet connection of standalone not working #1266\r\n- Comparing a map in delta mode shows the correct differences\r\n- This mainly applies to maps compared with itself while it also fixes some other minor miscalculations\r\n- File extensions detection is improved\r\n- Zooming in and out the map will now close the node context menu #1324\r\n - Improved and simplified event handling in NodeContextMenu component\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improved performance of multiple operations (e.g., delta mode).\r\n\r\n## [1.59.0] - 2020-10-09\r\n\r\n### Added \u{1f680}\r\n\r\n- New EXPERIMENTAL SCMLogParser version\r\n- Improved performance around 300% when parsing CodeCharta\r\n- Improved memory usage\r\n- Fixed issue with old parser creating incorrect nodes in CodeCharta #871\r\n- ATTENTION: the parser is experimental, therefore some potential issues might remain, e.g. potentially an unhandled edge case when parsing node\r\n- To use the new parser a reversed git log is needed, as well as a git file list, refer to `ccsh scmlogparserv2 -h` for additional information\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Color-Metric slider is set and activated in the map accordingly to the released sliderbutton #1319\r\n- Deselcting a building will instantly dehighlight the buildings which were connected through edges #890\r\n\r\n## [1.58.1] - 2020-10-02\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Showing wrong edges when hovering a building after selecting one #1137\r\n\r\n## [1.58.0] - 2020-10-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Add active color metric to the top of the legend panel #1278\r\n- SourceCodeParser: Java 14 Support #1277\r\n\r\n## [1.57.4] - 2020-09-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Metric-Settings-Panels closed when clicking an option inside the panel #1258\r\n- Improve loading and rendering maps performance\r\n\r\n## [1.57.3] - 2020-09-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve overall performance for loading and rendering maps\r\n- Improve error messages when a file can\'t be loaded with the URL parameters\r\n\r\n## [1.57.2] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- New API version 1.2 not set correctly in analysis\r\n\r\n## [1.57.1] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Validation of unique filenames not checking for the complete path and instead throwing an error on duplicate filename\r\n\r\n## [1.57.0] - 2020-09-11\r\n\r\n### Added \u{1f680}\r\n\r\n- `fixedPosition` as a new property in the `cc.json` that allows to fixate folders in the map\r\n\r\n### Changed\r\n\r\n- `cc.json` version updated to `1.2`\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Compressed `cc.jsons (.gz) not marked as accepted when selecting a file in the file chooser\r\n\r\n### Docs \u{1f50e}\r\n\r\n- [How-To: Fixate Folders in the `cc.json`](https://maibornwolff.github.io//codecharta/how-to/fixate_folders_with_a_custom_cc_json/)\r\n- CC-Json-API changes\r\n\r\n## [1.56.0] - 2020-09-04\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve performance when switching to multiple or delta mode when edges are available\r\n- Scenario with EdgeMetric is only appliable when EdgeMetric is existing for the Map #1201\r\n- Starting standalone version results in infinite loading loop #1202\r\n- Expanded metric selection will close when clicking anywhere outside of that selection #1036\r\n\r\n## [1.55.0] - 2020-08-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Cursor indicator for different mouse actions #1042\r\n\r\n### Changed\r\n\r\n- Edge-Metrics sorted by name now instead of number of incoming and outgoing edges\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Number of incoming and outgoing edges not visible when hovering over a node #1095\r\n- Highlighting buildings in multiple mode now works #956\r\n\r\n## [1.54.0] - 2020-08-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Opening NodeContextMenu in the tree-view marks the node until it is closed #1068\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Missing Sonarcloud metrics in demo\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Added note how to fix missing `sh` command issue when running integration tests on Windows\r\n\r\n## [1.53.0] - 2020-08-14\r\n\r\n### Changed\r\n\r\n- NodeContextMenu will show up when releasing the right-mouse-button now #1027\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- NodeContextMenu showing up after moving the mouse while holding right-mouse-button #1027\r\n\r\n## [1.52.0] - 2020-08-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for Tokei 12 new JSON schema #1103\r\n\r\n### Changed\r\n\r\n- Rename master branch to main for a more inclusive naming #1117\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- After loading an invalid file the filechooser pops up again, so that the user can choose a valid file #1021\r\n- Quality gates on sonarcloud.io are red #879\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Moved developer guides to our [gh-pages](https://maibornwolff.github.io/codecharta/) #986\r\n\r\n## [1.51.0] - 2020-07-24\r\n\r\n### Added \u{1f680}\r\n\r\n- File chooser now accept ".json" files only to avoid accidentally loading incorrect files #1094\r\n- Lots of tooltips #1030\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Blacklisting a building would sometimes not update the map #1098\r\n- Changes made after opening the filechooser and closing it won\'t be applied #875\r\n- Edge metric list not always updated correctly when loading a new file #1106\r\n\r\n## [1.50.0] - 2020-07-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Line between scenario indicator and remove button #1069\r\n\r\n### Changed\r\n\r\n- Reduced transition time when opening or collapsing parts of the ribbon bar #1043\r\n- Search Panel will open now when clicking in the search field and collapse when clicking somewhere else #1071\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Opening the same file again will now reload the file and reset the application #1032\r\n- Improve render performance by persisting color conversions #1034\r\n- Sorting in tree-view not being applied #1040\r\n\r\n## [1.49.1] - 2020-07-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance significantly when switching between single, multiple and delta\r\n- Color-Range-Slider sometimes misbehaved when loading a new map or excluding buildings #926\r\n\r\n## [1.49.0] - 2020-06-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom scenarios can be created and saved through the scenario menu #675\r\n- Importer and parser documentation can now be found on the github Website #954\r\n- Output of sourcemonitor can now be compressed with the compression flag\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump angular from 1.7.9 to 1.8.0 in /visualization #995\r\n\r\n## [1.48.0] - 2020-06-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Support of compressed cc.json files. Files can be compressed in the analysis #848\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance of several importers #846\r\n\r\n## [1.47.1] - 2020-05-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Attribute-Side-Bar being invisible\r\n\r\n## [1.47.0] - 2020-05-02\r\n\r\n### Added \u{1f680}\r\n\r\n- When hovering over a folder, all buildings inside it will be highlighted as well #694\r\n\r\n### Changed\r\n\r\n- Rename the button Show-Complete-Map button to Unfocus #642\r\n- Move the Unfocus button (visible when right-clicking a focused node) to the node-context-menu #948\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Generating a delta map with merged empty folders in between is now working correctly #730\r\n- Reduced time when opening a new file #932\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump jquery from 3.4.0 to 3.5.0 in /visualization #944\r\n\r\n## [1.46.1] - 2020-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Error dialogs in case of validation or api version issues #610\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved overall rendering performance of larger maps by roughly 40% #836\r\n\r\n## [1.45.5] - 2020-04-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Median symbol for aggregated relative metrics #365\r\n- AttributeTypes for tokeiImporter and SCMLogParser #365\r\n- Ellipsis button in TreeView list when hovering a node to access context menu #780\r\n- Show gray eye-icon next to the ellipsis-button to indicate a flattened node #780\r\n- Attribute Type selector in the metric dropdowns for edges and nodes\r\n\r\n### Changed\r\n\r\n- Metrics with AttributeType relative are now aggregated using the median #365\r\n- Showing absolute number of files instead of relative number when hovering list item in TreeView #780\r\n- Clicking a hovered list item inside the TreeView opens folders #780\r\n- Color node name in gray when flattened #780\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Eye-icon in TreeView list to flatten a node #780\r\n- Option to focus a node when clicking the node name inside the TreeView #780\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Consistency of AttributeTypes representation #365\r\n- Wrong file description for tokeiimporter\r\n- Improved search performance #837\r\n\r\n## [1.44.0] - 2020-03-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Dialog to select between different sorting options #388\r\n- Button to reverse the current selected sorting #388\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Show file selection in toolBar after excluding or hiding a node instead of an empty toolBar #896\r\n\r\n## [1.43.0] - 2020-03-20\r\n\r\n### Changed\r\n\r\n- Selectable metrics will only contain metrics from the visible maps\r\n- Closing the attribute-side-bar by clicking somewhere in the map will now be triggered on mouse up instead of mouse down\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Search-panel opening for a short duration when importing a new file\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix vulnerability with nokogiri <1.10.8\r\n\r\n## [1.42.3] - 2020-03-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Loading Gif not displayed when preparing to render a new map #857\r\n- Selecting zero files in Multiple mode will not trigger the 3D CodeMap creation\r\n- Metrics in the dropdown menu now show the correct max value for the visible maps #876\r\n\r\n## [1.42.2] - 2020-02-14\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Replaced non standard `[[` in sh scripts #849\r\n- Improved performance for loading a new file #836\r\n- Marked Packages are loaded from files #798\r\n\r\n## [1.42.1] - 2020-02-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- GC Overhead Limit (OutOfMemory Exception) during analysis of large SCMLogs fixed #845\r\n\r\n## [1.42.0] - 2020-01-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for camel and kebab-case for ccsh arguments #772\r\n- RawTextParser for analysis #660\r\n- IndentationLevel as metric for RawTextParser #660\r\n- Show additional Pairing Rate of Selected Building, simultaneously to the currently hovered Buildings #736\r\n\r\n### Changed\r\n\r\n- Options of the ccsh are now consistently in kebab-case #772\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Path prefix handling in tokeiimporter #841\r\n\r\n## [1.41.8] - 2020-01-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Project name parameters in the ccsh #773\r\n\r\n## [1.41.6] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Deployment\r\n\r\n## [1.41.1] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance of loading maps with edges improved #823\r\n- Calculation of other Group for fileExtensionBar #768\r\n- Remove focus of UI elements when they are not visible anymore\r\n\r\n## [1.41.0] - 2019-12-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Show the relative number of files a folder includes compared to the project in the TreeView #380\r\n- Show the number of files a folder includes in the TreeView when hovering #380\r\n- When the File Extension Bar is hovered, all buildings corresponding to that extension are highlighted #545\r\n- Toggle between percentage and absolute values when clicking the file extension details section #545\r\n- Sum hovered delta values for folders #781\r\n\r\n## [1.40.0] - 2019-11-22\r\n\r\n### Changed\r\n\r\n- Replaced Blacklist Hide with Flatten option #691\r\n- Flattened buildings are not hidden by default #691\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump @types/three from 0.89.12 to 0.103.2 in /visualization #453\r\n- Bump angularjs-slider from 6.5.1 to 7.0.0 in /visualization #454\r\n- Bump webpack from 3.12.0 to 4.41.2 in /visualization #436\r\n- [Security] Bump angular from 1.7.7 to 1.7.9 in /visualization #800\r\n\r\n## [1.39.0] - 2019-11-15\r\n\r\n### Added\r\n\r\n- Progress indicator for SonarImporter #544\r\n\r\n### Changed\r\n\r\n- New style for hovered metric values #696\r\n- Redesigned slider labels in ribbonBar sections #696\r\n- Shortened ribbonBar sections #696\r\n\r\n### Fixed\r\n\r\n- Missing pictures and broken links in docs #785\r\n- SCMLogParser is now more resilient to unusual SVN commit messages #763\r\n\r\n## [1.38.1] - 2019-11-13\r\n\r\n### Added\r\n\r\n- New github-pages https://maibornwolff.github.io/codecharta/\r\n\r\n### Fixed\r\n\r\n- Sum symbol for hovered metric values only shows for folders #775\r\n\r\n## [1.38.0] - 2019-11-08\r\n\r\n### Added\r\n\r\n- Temporal coupling edges generated by SCMLogParser #622\r\n\r\n### Changed\r\n\r\n- Downloaded files are no longer formatted #679\r\n- Added highly and median coupled files metrics to non-churn metric list of SCMLogParser #622\r\n- Moved nodePathPanel to toolBar and updated style #607\r\n\r\n### Fixed\r\n\r\n- Removed attributes from downloaded files that should not be there #679\r\n\r\n## [1.37.0] - 2019-10-25\r\n\r\n### Added\r\n\r\n- Sidebar with information regarding the selected building #527\r\n- Sidebar closes when selected buildings is excluded #748\r\n\r\n### Changed\r\n\r\n- Animation to show or hide the legend panel #527\r\n\r\n### Removed\r\n\r\n- Expandable detail panel in lower left corner #527\r\n- Removed option to maximize/minimize detail panel #527\r\n\r\n### Fixed\r\n\r\n- Autofocus and label size for focused nodes #747\r\n- Selected buildings stays selected when settings are changed #748\r\n- IllegalStateException when scanning single file in SourceCodeParser #573\r\n- SourceCodeParser places files in the project root correctly into the hierarchy #574\r\n\r\n## [1.36.0] - 2019-10-18\r\n\r\n### Changed\r\n\r\n- Open and close the ribbonBar sections independently with an updated animation\r\n\r\n### Fixed\r\n\r\n- Camera is now resetted correctly, when unfocusing #634\r\n- Inputs of Color Range Slider now waits a second before it commits its values #676\r\n- Fixed root folder name in TreeView after new map after loading new map #649\r\n- Increased size of ribbonBar for big screens #644\r\n- File-Extension-Bar will not display excluded nodes anymore #725\r\n- Sanitize input for shelljs #600\r\n\r\n### Chore\r\n\r\n- Bump jacoco from 0.8.1 to 0.8.4 in /analysis\r\n\r\n## [1.35.0] - 2019-10-04\r\n\r\n### Added\r\n\r\n- Checkbox in global Settings for disabling camera reset, when new map is loaded #685\r\n- Pipe support for SourceCodeParser #716\r\n- Pipe support for SCMLogParser #717\r\n- Pipe support for SonarImporter #715\r\n\r\n### Fixed\r\n\r\n- Exclude and Hide options are disabled for empty and already existing search patterns #654\r\n\r\n## [1.34.0] - 2019-09-20\r\n\r\n### Added\r\n\r\n- Tokei Importer #538\r\n- Prominent Notice that we use Sonar-jar #713\r\n\r\n### Chore\r\n\r\n- Bump kotlin-reflect from 1.3.41 to 1.3.50 in /analysis\r\n- Bump json from 20180813 to 20190722 in /analysis\r\n- Bump rxjava from 2.2.9 to 2.2.12 in /analysis\r\n- Bump assertj-core from 3.12.2 to 3.13.2 in /analysis\r\n- Bump sonar-java-plugin from 5.12.1.17771 to 5.14.0.18788 in /analysis\r\n\r\n## [1.33.0] - 2019-09-10\r\n\r\n### Added\r\n\r\n- Edge Previews (Palm-Tree-Effect) #529\r\n- Dropdown to select Edge Metric, including Edge Counter #529\r\n- Edge Metric settings for Edge Height, Number of Previews & show only building with Edges #529\r\n\r\n### Changed\r\n\r\n- Edge Visualization to better distinguish between incoming and outgoing edges #529\r\n- Distribution metric is by default the same as area metric #689\r\n- MapTreeView below searchBar opens the first level by default #690\r\n- Focus metric search when opening metricChooser #693\r\n\r\n### Removed\r\n\r\n- Edge Options in Context menu #529\r\n\r\n### Fixed\r\n\r\n- SourceCodeParser now skips custom metrics for files, if the syntax tree cannot be created\r\n- Nodes with color metric equals 0 are colored correct again #677\r\n\r\n### Chore\r\n\r\n- [Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /visualization\r\n\r\n## [1.32.0] - 2019-08-09\r\n\r\n### Added\r\n\r\n- Search for metrics and an indicator for the highest value in dropdown #575\r\n- Button to enable PresentationMode that uses Flashlight-Hovering #576\r\n- Clarifying information which file is which in the file bar when in delta mode #615\r\n\r\n### Changed\r\n\r\n- Replaced Scenario dropdown with button on the left of the metric sections #628\r\n\r\n## [1.31.0] - 2019-08-02\r\n\r\n### Added\r\n\r\n- New Metric in SourceCodeParser: Maximum-Nesting-Level #659\r\n\r\n### Fixed\r\n\r\n- Label hight adjustment now matches scaling of map #594\r\n- SCMLogParser now guesses the input file encoding #614\r\n\r\n## [1.30.0] - 2019-07-26\r\n\r\n### Added\r\n\r\n- New Search Bar #526\r\n- Number of Renames Metric to SCMLogParser #621\r\n- Age In Weeks Metric for SCMLogParser #620\r\n\r\n### Changed\r\n\r\n- ToolBar now shows partially cut-off controls if the window is too small #582\r\n- Position of the legendPanel was moved to the bottom-right corner #633\r\n- RibbonBar only opens the three metric section\r\n- Moved Scenario-select to the right in order to use less space\r\n- Moved loading-gif from ribbonBar to toolBar\r\n\r\n### Removed\r\n\r\n- RibbonBar toggle button\r\n\r\n### Fixed\r\n\r\n- FileExtensionBar height to not show a bottom-margin in Chrome\r\n- PointerEvents not being propagated when RibbonBar was extended\r\n- Reduced memory usage of SCMLogParser to avoid OutOfMemory Exception #631\r\n\r\n### Chore\r\n\r\n- [Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 in /visualization\r\n- [Security] Bump lodash from 4.17.11 to 4.17.13 in /visualization\r\n- [Security] Bump fstream from 1.0.11 to 1.0.12 in /visualization\r\n\r\n## [1.29.0] - 2019-07-12\r\n\r\n### Changed\r\n\r\n- Moved Button to reset the map to the center next to the view-cube #606\r\n- Moved FileExtensionBar #527\r\n\r\n### Removed\r\n\r\n- Burger Menu / SideNav #526\r\n\r\n### Fixed\r\n\r\n- Colors in File-Extension-Bar will be displayed in MS Edge and Standlone now #584\r\n\r\n## [1.28.0] - 2019-06-28\r\n\r\n### Added\r\n\r\n- Releasing will now remind the developer to manually add the release notes #533\r\n- StructureModifier to remove and move nodes and set root of projects #547 / #181\r\n\r\n### Changed\r\n\r\n- More informative log messages regarding the success of project merging #547\r\n\r\n### Removed\r\n\r\n- Release Notes are not generated and added automatically to a release #533\r\n\r\n### Fixed\r\n\r\n- Margin will now be set correctly depending on whether dynamicMargin is enabled or not #602\r\n\r\n## [1.27.0] - 2019-06-25\r\n\r\n### Added\r\n\r\n- Automatically generates release notes from changelog and appends it to release #533\r\n- Adds global settings-menu with settings from options panel and weblinks #528\r\n\r\n### Changed\r\n\r\n- Moved File Settings from Ribbon Bar to new File Setting Bar #525\r\n- Rename sample file codemap-nodes #587\r\n- Hide checkbox to select white-positive-buildings in delta state #345\r\n\r\n### Removed\r\n\r\n- Removes Options panel from sidebar #528\r\n- Removes Weblinks panel from sidebar #528\r\n- Removed URL-parameter info from sidebar #525\r\n\r\n### Fixed\r\n\r\n- Unary Metric will no longer be auto-selected when a new map is loaded #579\r\n\r\n## [1.26.0] - 2019-06-14\r\n\r\n### Added\r\n\r\n- FileExtensionBar to show file-distribution of chosen metric #495\r\n- sum icon is now displayed on the left of the metric value #364\r\n- Added Pop-up dialog before downloading file to set filename and see what data will be stored #523\r\n\r\n### Fixed\r\n\r\n- Fix set default ColorRange when resetting color section #560\r\n\r\n## [1.25.1] - 2019-05-30\r\n\r\n### Added\r\n\r\n- SVN log parser keeps track of renaming of files for metric calculation #542\r\n\r\n### Fixed\r\n\r\n- Entries with renaming information in SVN logs are attributed to correct file #542\r\n- Unary metric will no longer be removed from the MetricChooser-Dropdown when a folder was excluded or hidden #548\r\n- Changing margin and then file or mode will no longer freeze the application #524\r\n\r\n### Chore\r\n\r\n- [Security] Bump tar from 2.2.1 to 2.2.2 in /visualization\r\n\r\n## [1.25.0] - 2019-05-17\r\n\r\n### Added\r\n\r\n- Added SonarJava to Source code parser #343\r\n- Added exclude and defaultExclude options to SourceCodeParser #508\r\n- Show loading-gif in ribbonBar when rerendering map\r\n\r\n### Changed\r\n\r\n- Using Sonar Plugins for Source code parser, giving the Sonar Metrics #343\r\n- Use debounced settings update instead of throttled\r\n- Filename of downloaded file now contains time #484\r\n\r\n### Fixed\r\n\r\n- Fixed issue with too long line in ccsh.bat #506\r\n- Prevent downloaded files from having multiple Timestamps #484\r\n- Do not show loadingGif when cancelling the fileChooser #498\r\n- Excluding a building now updates the maximum value of colorRange #355\r\n\r\n### Chore\r\n\r\n- Bump angular-material from 1.1.9 to 1.1.14 in /visualization\r\n- [Security] Bump jquery from 3.3.1 to 3.4.0 in /visualization\r\n\r\n## [1.24.0] - 2019-04-23\r\n\r\n### Removed\r\n\r\n- Settings as URL parameters #470\r\n\r\n### Fixed\r\n\r\n- Fixed issue with trailing slash in URL parameter of SonarImporter #356\r\n\r\n### Chore\r\n\r\n- Bump d3 from 4.13.0 to 5.9.2 in /visualization\r\n- Bump sinon from 4.5.0 to 7.3.1 in /visualization\r\n\r\n## [1.23.0] - 2019-03-22\r\n\r\n### Added\r\n\r\n- Project Name can be specified for merge filter #394\r\n\r\n### Changed\r\n\r\n- Throw a MergeException if project names do not match in MergeFilter #394\r\n\r\n### Fixed\r\n\r\n- Excluded buildings are no longer used for aggregated metric calculation #352\r\n\r\n### Chore\r\n\r\n- Bump browser-sync-webpack-plugin from 1.2.0 to 2.2.2 in /visualization\r\n- Bump @types/node from 8.10.19 to 11.11.3 in /visualization\r\n- Bump html-webpack-plugin from 2.30.1 to 3.2.0 in /visualization\r\n- Bump load-grunt-tasks from 3.5.2 to 4.0.0 in /visualization #444\r\n- Bump ajv from 5.5.2 to 6.10.0 in /visualization #447\r\n- Bump resolve-url-loader from 2.3.0 to 3.0.1 in /visualization #448\r\n\r\n## [1.22.0] - 2019-03-15\r\n\r\n### Added\r\n\r\n- Added buttons to select all/none/inversion of revisions/maps in multiple mode #391\r\n- Merge filter can merge all files of folders #392\r\n\r\n### Fixed\r\n\r\n- Fixed bug that code map was not re-loaded when changing from multiple to single revision mode #396\r\n- Fixed missing apiVersion in aggregated map #398\r\n- Input Fields of color sliders adjust width according to content #409\r\n\r\n### Chore\r\n\r\n- Bump nouislider from 11.1.0 to 13.1.1 in /visualization\r\n- Bump typescript from 2.7.2 to 3.3.3333 in /visualization\r\n- Bump @types/d3 from 4.13.0 to 5.7.1 in /visualization\r\n\r\n## [1.21.2] - 2019-02-26\r\n\r\n### Added\r\n\r\n- When entering Multiple Mode, all Maps/revisions are preselected\r\n\r\n### Fixed\r\n\r\n- Fixing non-existent metric aggregation on root-level when using multiple Files\r\n\r\n## [1.21.1] - 2019-02-22\r\n\r\n### Added\r\n\r\n- Hovering a node in the map also hovers it in the tree view #351\r\n\r\n### Fixed\r\n\r\n- Fixing sync between treeview hovering and map hovering #351\r\n- Folders can no longer be colored in the CodeMap or TreeView #359\r\n\r\n## [1.21.0] - 2019-02-16\r\n\r\n### Added\r\n\r\n- Color searched node names green in TreeView #225\r\n- Add option buttons (three dots) in TreeViewSearch to `Hide` or `Exclude` matching nodes #298\r\n- Show blacklist entry counter in blacklistPanel header #298\r\n- Option checkbox \'Hide Flattened Buildings\' #225\r\n- Hide/Flatten non-searched buildings #225\r\n- Hide/Flatten all buildings, if searchPattern can\'t find any matching nodes #225\r\n- Show maxValue of each metric in metricChooser select list #204\r\n- Colored color-slider inside the RibbonBar #318\r\n- Option to color positive buildings white #311\r\n- Clicking the ribbonBar section-titles toggles the ribbonBar #324\r\n- View-Cube displayed in top right corner #274\r\n- Adding prettier formatter\r\n- Adapt colorRange when changing colorMetric #330\r\n\r\n### Changed\r\n\r\n- Update TreeView filter with search field #225\r\n- Use \'gitignore\' style matching in TreeViewSearch #225\r\n- Reorder `Focus`, `Hide` and `Exclude` buttons in nodeContextMenu #298\r\n- Reorder sidebarPanels (BlacklistPanel beneath TreeViewSearchPanel) #298\r\n- Use `fa-ban`-icon as symbols for blacklistPanel (instead of `fa-list`) #298\r\n- Use `fa-ban`-icon as symbols for blacklistType `Exclude` (instead of `fa-times`) #298\r\n- Label size keeps readable for large maps or a high distance between camera and map #237\r\n- updated dependencies to fix vulnerabilities\r\n- Scenarios only update settings which exist in Scenario and not all #224\r\n- MergeFilter to merge unique blacklist entries #275\r\n- MergeFilter to only merge unique attributeType entries #275\r\n\r\n### Removed\r\n\r\n- Remove invertHeight checkbox in delta-view #306\r\n- Remove option to add blacklist entries from inside the blacklistPanel #298\r\n- Remove statistic functions in Experimental panel #308\r\n\r\n### Fixed\r\n\r\n- CodeMap does not move anymore when navigating in text-fields #307\r\n- Merge blacklist in multipleFile view and convert paths #275\r\n- Show logo in NW.js standalone application #233\r\n\r\n## [1.20.1] - 2018-12-19\r\n\r\nFixed release issues.\r\n\r\n## [1.20.0] - 2018-12-19\r\n\r\n### Added\r\n\r\n- button to unfocus node\r\n- NodeContextMenu: Option to only hide dependent edges\r\n- plop support\r\n\r\n### Changed\r\n\r\n- Renaming \'isolate node\' to \'focus node\'\r\n- Focusing a node does not remove the blacklist items of type Hide\r\n\r\n### Removed\r\n\r\n- NodeContextMenu: Option to \'show all\' nodes, which used to unhide all nodes\r\n\r\n### Fixed\r\n\r\n- Reshow hidden nodes from Treeview or Blacklist\r\n\r\n## [1.19.0] - 2018-11-02\r\n\r\n### Added\r\n\r\n- Deleted files in delta view use their previous area value in order to be visible #254\r\n\r\n### Fixed\r\n\r\n- Buildings in the delta view are not colored correctly #253\r\n- Reset Button in RibbonBar to reset \'Invert Colors\' #255\r\n- Remove lag of \'Invert Color\' checkboxes, when selecting single/delta mode #255\r\n\r\n## [1.18.1] - 2018-10-31\r\n\r\nFixed release issues\r\n\r\n## [1.18.0] - 2018-10-29\r\n\r\n### Added\r\n\r\n- Integration with Jasome through JasomeImporter #245\r\n- URL parameter \'mode\' with the values Single, Multiple or Delta\r\n- Blacklist to persist excluded or hidden nodes #205\r\n- Option to exclude nodes in nodeContextMenu #205\r\n- BlacklistPanel in SettingsSidebar to manage blacklist #205\r\n- Save-Button to download current CodeMap #205\r\n- Publishing visualization on Docker Hub #252\r\n\r\n### Changed\r\n\r\n- No longer fat jar of every subcomponent of analysis, baked into ccsh\r\n- Changed simple syserr write to logger call for analysis #243\r\n\r\n### Removed\r\n\r\n- URL parameter \'delta\' does not exist anymore\r\n\r\n### Fixed\r\n\r\n- Show delta of CodeMap when URL parameter mode=delta is set\r\n\r\n## [1.17.0] - 2018-09-28\r\n\r\n### Changed\r\n\r\n- Invert delta colors moved from color to heigh metric column in ribbon bar #220\r\n- Delta value now as kindOfMap shown #220\r\n- Aggreate maps as multiple rename #220\r\n\r\n### Fixed\r\n\r\n- Single/delta buttons now correctly activated when delta in ulr shown #220\r\n\r\n## [1.17.0] - 2018-09-21\r\n\r\n### Added\r\n\r\n- CodeMaatImport for temporal coupling dependencies #172\r\n- EdgeFilter to aggregate edge-attributes as node-attributes #222\r\n- Option to show and hide dependent edges from node-context-menu #218\r\n\r\n### Changed\r\n\r\n- MergeFilter merges edges #172\r\n\r\n## [1.16.2] - 2018-09-10\r\n\r\n### Fixed\r\n\r\n- missing event in firefox #232\r\n\r\n## [1.16.1] - 2018-08-31\r\n\r\n### Added\r\n\r\n- gitlab + dotnet manual\r\n\r\n## [1.16.0] - 2018-08-31\r\n\r\n### Added\r\n\r\n- add the option to add multiple files via url parameter (e.g. ?file=a&file=b...)\r\n\r\n## [1.15.1] - 2018-08-13\r\n\r\nFixed release issues\r\n\r\n## [1.15.0] - 2018-08-13\r\n\r\n### Added\r\n\r\n- e2e tests are running in CI Environment (headless)\r\n- pupeteer as e2e test framework\r\n- Show names of marked packages in legend\r\n- Added a source code importer that can analyse rloc,mcc for java source code\r\n- keep settings when the user changes a file\r\n- Added option to set white background\r\n\r\n### Removed\r\n\r\n- cypress\r\n\r\n## [1.14.2] - 2018-07-16\r\n\r\n### Changed\r\n\r\n- Changed folder detail metrics from mean to sum\r\n\r\n## [1.14.1] - 2018-07-13\r\n\r\nFixed release issues\r\n\r\n## [1.14.0] - 2018-07-13\r\n\r\n### Added\r\n\r\n- Added UnderstandImporter to Analysis\r\n- Packages can be highlighted in different colors #152\r\n- Adding a context menu with highlighting colors and convenience methods for the tree view and 3D view #155\r\n- Folders and files to highlight can be described in the cc.json #165\r\n- Dynamic/automatic margin computing de/activated by tick\r\n\r\n### Changed\r\n\r\n- Details panel: using the sum of the childrens metrics instead of the mean value\r\n\r\n### Fixed\r\n\r\n- Display buttons do not trigger map changes #185\r\n- Flickering surfaces when zooming out\r\n\r\n## [1.13.0] - 2018-06-08\r\n\r\n### Added\r\n\r\n- Layout switcher #141\r\n- Added CrococosmoImporter to Analysis\r\n- Added type, dirs, name to CSVExporter\r\n- Invert height of building checkbox\r\n- Aggregate multiple maps in visualization #110\r\n- Auto Focus selected map part\r\n- Timmer added to applySettings in SettingsService\r\n\r\n### Changed\r\n\r\n- Crococosmo xml files will now generate a cc.json file for each version\r\n- Suppressing ARIA warnings\r\n- Simplified gradle structure of analysis part\r\n- Deltas added in the metric quick access panel #138\r\n- Ticks and ResetValue Buttons call to onSettingsChange to avoid applySettings timer\r\n- compacting empty middle packages #150\r\n- Detail panel minimized by default\r\n\r\n### Fixed\r\n\r\n- filter by regex shows parent nodes #116\r\n- typo in scss file\r\n\r\n## [1.12.0] - 2018-04-27\r\n\r\n### Added\r\n\r\n- horizontal quick access metric chooser\r\n- Link behind filepath in detailPanel #84\r\n- Double click event-handler on Buildings #84\r\n- Detail Panel can be minimized and maximized\r\n- Settings option to minimize Detail Panel\r\n- cypress as an e2e test runner\r\n\r\n### Removed\r\n\r\n- metric details from legend\r\n- metric chooser from settings panel\r\n\r\n## [1.11.2] - 2018-04-13\r\n\r\n### Fixed\r\n\r\n- a sonar importer bug which prevented the importer to fetch the last page #122\r\n\r\n## [1.11.1] - 2018-04-11\r\n\r\nFixed release issues\r\n\r\n## [1.11.0] - 2018-04-11\r\n\r\n### Added\r\n\r\n- SASS support\r\n- simple regex filter\r\n- Reset Button\r\n- Dialog Service replaces console log calls and window.alert calls\r\n- linking tree view and map hover\r\n- auto fit scene button\r\n- anugularJS material\r\n- Scenarios are now filtered by compatibility for the given map\r\n- Link in visualization #84\r\n\r\n### Removed\r\n\r\n- materialize-css\r\n- grunt\r\n\r\n### Fixed\r\n\r\n- less flickering and artifacts\r\n\r\n## [1.10.0] - 2018-03-22\r\n\r\n### Changed\r\n\r\n- Clean up UI #86\r\n- Updated analysis dependencies\r\n\r\n### Fixed\r\n\r\n- Delta View shows Deltas of itself as non-trivial if nodes have same name #89: Compare deltas by path not name\r\n- Delta calculation performance boost #91\r\n- Problems when intermediate nodes missed metrics #92\r\n- removed unnecessary calculations\r\n- removed bug in SonarImporter that slowed up performance and missed out multiple metrics\r\n- minor bugs\r\n\r\n## [1.9.3] - 2018-02-23\r\n\r\n### Changed\r\n\r\n- sorting treeview by folders and names\r\n\r\n## [1.9.2] - 2018-02-20\r\n\r\n### Added\r\n\r\n- added preliminary CSVExporter for visualisation data\r\n\r\n### Changed\r\n\r\n- padding rendering\r\n- minimal building height is 1 to prevent clipping issues\r\n- fallback values for visualization when no metric is available (area = 1, height = 1, color = grey). Data in data structure will not be changed.\r\n\r\n## [1.9.1] - 2018-02-20\r\n\r\n### Fixed\r\n\r\n- detail panel bug fix\r\n\r\n## [1.9.0] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- moved to unscoped npm packages\r\n\r\n## [1.8.2] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- detail panel background is white now. better visibility\r\n\r\n## [1.8.1] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- revision chooser moved to settings panel and uses now understandable dropdowns instead of links. Part of the #82 proposals\r\n\r\n## [1.8.0] - 2018-02-20\r\n\r\n### Added\r\n\r\n- Experimental dependency support\r\n- loading indicator\r\n- file path to detail panel\r\n- collapsible tree view and visibility/isolation per node toggles\r\n\r\n### Changed\r\n\r\n- added a ray-aabb intersection test before precise testing. Less time is spent in intersection methods.\r\n\r\n### Fixed\r\n\r\n- fixed a minor bug\r\n- canvas mouse event listener are now limited to the canvas dom element. UI events will not trigger the canvas listeners anymore\r\n- canvas mouse events distinguish now between click and drag. Dragging does not reset selection anymore\r\n- slider input #64\r\n- rz slider initialization bug\r\n- increasing test coverage\r\n- deltas where calculated on map loading even though, they were disabled\r\n\r\n## [1.7.2] - 2018-02-02\r\n\r\n### Fixed\r\n\r\n- url to homepage\r\n- analysis package\r\n\r\n## [1.7.1] - 2018-02-02\r\n\r\nFixed release issues\r\n\r\n## [1.7.0] - 2018-02-02\r\n\r\n### Changed\r\n\r\n- npm pachage scoped to @maibornwolff\r\n- Defined further scenarios via json file\r\n- Added description for metrics and scenarios\r\n- using fixed point values in detail panel (ui) to truncate infinite or long decimals\r\n- folders now use the mean attributes of their buildings(leaves)\r\n\r\n### Fixed\r\n\r\n- Bugfix: detail panel should be cleared before setting new details else old values may survive\r\n\r\n## [1.6.7] - 2018-02-01\r\n\r\nFixed release issues\r\n\r\n## [1.6.6] - 2018-02-01\r\n\r\n### Added\r\n\r\n- added anonymous git log generator anongit\r\n- browser demo shows codecharta-visualization sonar analysis\r\n\r\n### Changed\r\n\r\n- rewrote command line interface\r\n- linking ccsh to bin/ccsh will be deleted later\r\n\r\n### Fixed\r\n\r\n- No underscore for scenarios in tooltips #71\r\n\r\n## [1.6.5] - 2018-01-30\r\n\r\nFixed release issues\r\n\r\n## [1.6.4] - 2018-01-30\r\n\r\n### Fixed\r\n\r\n- fixed broken SonarImporter due to jdk9 migration\r\n\r\n## [1.6.3] - 2018-01-26\r\n\r\n### Added\r\n\r\n- added npm publish for analysis\r\n- simple release script for automatic changelog updates, commits, tags, version bumps\r\n\r\n## [1.6.2] - 2018-01-25\r\n\r\n### Added\r\n\r\n- added support for git log --raw and git log --numstat --raw\r\n- added support for git log --numstat and codechurn\r\n- added support for renames in SCMLogParser for git log --name-status\r\n- added support for renames in SCMLogParser for git log --numstat, git log --raw and git log --numstat --raw\r\n- added new SCM experimental metrics range_of_weeks_with_commits and successive_weeks_of_commits\r\n- the file origin of a node is displayed in the details now\r\n- sonarqube analysis on CI build\r\n- npm publish support in visualization\r\n\r\n### Changed\r\n\r\n- Deltas are no longer experimental\r\n- two selected delta maps now merge their nodes correctly. The map where\r\n a node was missing get\'s a copy of this node with metrics=0.\r\n File additions/deletions are therefore only visible when areaMetric is\r\n unary and deltas are activated.\r\n\r\n### Fixed\r\n\r\n- delta display bug for heights\r\n- going back from delta view now correctly removes deltas from node data\r\n- Delta shown although not in delta mode #60\r\n- Allow inversion of delta colors #57\r\n- npm binary error\r\n\r\n## [1.5.2] - 2018-01-04\r\n\r\n### Changed\r\n\r\n- scaling slider now has steps of 0.1. This allows the user to select precise values like 2.0\r\n- updated jdk to jdk9\r\n\r\n### Fixed\r\n\r\n- Opening the same file a second time does not work #53\r\n- added missing require declaration\r\n- added glsl loader in testing environment\r\n- Native Application support is bugged while building in Travis CI #48\r\n\r\n## [1.5.1] - 2017-11-14\r\n\r\n### Added\r\n\r\n- command line parameter to toggle "authors" attribute in SCMLogParser\r\n\r\n### Fixed\r\n\r\n- when passing a file through the "file" parameter in the URL, the map now renders correctly\r\n\r\n## [1.5.0] - 2017-10-24\r\n\r\n### Added\r\n\r\n- experimental delta functionality\r\n- loading multiple maps\r\n- experimental margin slider\r\n\r\n### Changed\r\n\r\n- faster rendering\r\n\r\n### Removed\r\n\r\n- nwjs packages and native apps due to a bug\r\n\r\n### Fixed\r\n\r\n- using color metric instead of height metric for color range slider ceil\r\n\r\n## [1.4.0] - 2017-09-14\r\n\r\n### Added\r\n\r\n- Typescript support\r\n- Browsersync\r\n- added advanced merging strategy "leaf" in MergeFilter\r\n- advanced merging with restructuring\r\n\r\n### Changed\r\n\r\n- Browserify replaced with Webpack\r\n- Better debugging\r\n- Karma instead of Mocha\r\n\r\n## [1.3.2] - 2017-08-18\r\n\r\n### Added\r\n\r\n- add slider controls for color thresholds #19\r\n- Added additional structuring in SonarImporter for multi-module projects\r\n- button to generate current url parameters\r\n- camera position is now a setting (e.g. in scenarios or url parameters)\r\n- margin slider: make it easier to find out to which package/folder a class belongs #20\r\n\r\n### Changed\r\n\r\n- better url parameter resolution (nested parameters are handled correctly)\r\n- changed hover color. Allows better distinction between hover and select\r\n\r\n### Removed\r\n\r\n- obsolete helper grid\r\n\r\n### Fixed\r\n\r\n- changing display or color settings resets scaling #18\r\n- scenario description #32\r\n- Scaling should not scale the labels #35\r\n\r\n## [1.3.1] - 2017-07-05\r\n\r\n### Fixed\r\n\r\n- Prevented override of URL-parameters by default scenario\r\n\r\n## [1.3.0] - 2017-07-05\r\n\r\n### Added\r\n\r\n- Adding simple merge functionality for multiple json files\r\n- Added CSVImporter\r\n- Added Translation for SonarQube metrics\r\n- Added descriptions for metrics\r\n\r\n### Changed\r\n\r\n- Changed uppercase metrics, e.g. RLOC, to lowercase metrics\r\n\r\n### Fixed\r\n\r\n- Simple cc.json does not display anything #17\r\n\r\n## [1.2.0] - 2017-06-19\r\n\r\n### Added\r\n\r\n- Adding Labels and UI\r\n- Support for links to source page of SonarQube in sonarimporter\r\n- Added SCMLogParser\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: legend is wrong #21\r\n\r\n## [1.1.5] - 2017-05-31\r\n\r\n### Fixed\r\n\r\n- Wrong version numbers in analysis part\r\n\r\n## [1.1.4] - 2017-05-26\r\n\r\n### Added\r\n\r\n- Scenarios and default scenario\r\n- Translation API for Metrics\r\n- Metric tooltips in dropdown\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Sonarimporter crashes with null pointer exception when there is a component without path. #13\r\n\r\n## [1.1.3] - 2017-05-01\r\n\r\n### Added\r\n\r\n- Support for SonarQube Measures-API\r\n- Error logging for sonarqube errors\r\n\r\n### Changed\r\n\r\n- Standard Sonar metric is now complexity,ncloc,functions,duplicated_lines,classes,blocker_violations,generated_lines,bugs,commented_out_code_lines,lines,violations,comment_lines,duplicated_blocks\r\n\r\n## [1.1.2] - 2017-04-28\r\n\r\n### Added\r\n\r\n- Translation API for Metrics\r\n\r\n## [1.1.1] - 2017-04-07\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Flickering surfaces #3\r\n- GitHub Issue: Unable to install due to readlink error on macOS #4\r\n\r\n## [1.1.0] - 2017-03-27\r\n\r\n### Added\r\n\r\n- SourceMonitorImporter for importing projects from SourceMonitor.\r\n\r\n## [1.0.0] - 2017-03-17\r\n\r\n### Added\r\n\r\n- SonarImporter for importing projects from SonarQube.\r\n- ValidationTool for validating an existing json file.\r\n',{headerIds:!1}).split("\n");const r=this.findVersionLine(i,this.data.currentVersion),o=this.findVersionLine(i,this.data.previousVersion);i=i.slice(r,o+1);const s=["Added \u{1f680}","Fixed \u{1f41e}","Changed","Removed \u{1f5d1}","Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}"],a={};for(const l of s){const c=new RegExp(`

    ${l}

    `),d=this.getAllIndexes(i,c),u=[];for(const h of d){const f=h+2,A=this.findEndChangesLine(i,h);for(const y of i.slice(f,A))u.push(`${y}
    `)}u.length>0&&(a[l]=u.join("\n"))}return a}getAllIndexes(e,i){return e.reduce((r,o,s)=>(i.test(o)&&r.push(s),r),[])}findVersionLine(e,i){const r=new RegExp(`\\[${i}]`);return e.findIndex(o=>r.test(o))}findEndChangesLine(e,i){return i+e.slice(i+1).findIndex(r=>/

    /.test(r)||/

    /.test(r))}static{this.\u0275fac=function(i){return new(i||n)($(h_))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-change-log-dialog"]],decls:16,vars:5,consts:[["color","primary"],["mat-dialog-content",""],[1,"content"],["mat-dialog-actions",""],["href","https://maibornwolff.github.io/codecharta/news/","target","_blank","rel","noopener noreferrer"],["mat-button","","cdkFocusInitial","",3,"mat-dialog-close"],[3,"innerHTML"]],template:function(i,r){1&i&&(D(0,"mat-toolbar",0),ye(1,"Changelog"),U(),D(2,"div",1)(3,"h1"),ye(4,"What is new in CodeCharta?"),U(),D(5,"h2"),ye(6),U(),D(7,"div",2),Or(8,N$e,4,2,"div",null,qr),qe(10,"keyvalue"),U()(),D(11,"div",3)(12,"a",4),ye(13,"Know more"),U(),D(14,"button",5),ye(15,"CLOSE"),U()()),2&i&&(Q(6),Jd("",r.data.previousVersion," \u2192 ",r.data.currentVersion,""),Q(2),Lr(rt(10,3,r.changes)),Q(6),_e("mat-dialog-close",!0))},dependencies:[cs,Jl,kc,ec,zm,_E],encapsulation:2})}}return n})();function Nre(n){const t=n.split(".");return{major:Number.parseInt(t[0])||0,minor:Number.parseInt(t[1])||0,patch:Number.parseInt(t[2])||0}}let Ure=(()=>{class n{constructor(e){this.dialog=e,this.version=X1.rE}synchronizeLocalCodeChartaVersion(){const e=localStorage.getItem("codeChartaVersion");null!==e?function H$e(n,t){const e=Nre(n),i=Nre(t);return e.major===i.major&&e.minor===i.minor&&e.patch===i.patch?0:e.major>i.major?1:e.majori.minor?1:e.minori.patch?1:e.patch{class n{constructor(e,i,r,o,s){this.store=e,this.actions$=i,this.uploadFilesService=r,this.threeRendererService=o,this.codeMapRenderService=s,this.actionsRequiringRender$=this.actions$.pipe(za(...Hre)),this.renderCodeMap$=Ao(()=>Sh([this.store.select(Hc),this.actionsRequiringRender$]).pipe(qi(([a])=>!!a.unifiedMapNode),function Q$e(n,t=t_,e){const i=mR(n,t);return function V$e(n,t){return fe((e,i)=>{const{leading:r=!0,trailing:o=!1}=t??{};let s=!1,a=null,l=null,c=!1;const d=()=>{l?.unsubscribe(),l=null,o&&(f(),c&&i.complete())},u=()=>{l=null,c&&i.complete()},h=A=>l=ls(n(A)).subscribe(De(i,d,u)),f=()=>{if(s){s=!1;const A=a;a=null,i.next(A),!c&&h(A)}};e.subscribe(De(i,A=>{s=!0,a=A,(!l||l.closed)&&(r?f():h(A))},()=>{c=!0,(!(o&&s&&l)||l.closed)&&i.complete()}))})}(()=>i,e)}(16.666666666666668,t_,{leading:!1,trailing:!0}),Dr(([a])=>{this.codeMapRenderService.render(a.unifiedMapNode),this.codeMapRenderService.scaleMap(),this.threeRendererService.render()}),lx()),{dispatch:!1}),this.removeLoadingIndicatorAfterRender$=Ao(()=>this.renderCodeMap$.pipe(qi(()=>!this.uploadFilesService.isUploading),Dr(()=>{this.store.dispatch(cA({value:!1})),this.store.dispatch(r_({value:!1}))})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(fd),ve(tne),ve(Ki),ve(lee))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),q$e=(()=>{class n{constructor(e,i,r,o){this.store=e,this.renderCodeMapEffect=i,this.threeMapControlsService=r,this.actions$=o,this.autoFitTo$=Ao(()=>Sh([this.store.select(au),this.store.select(rie)]).pipe(G1(1),hd(this.store.select(iie)),qi(([,s])=>s),gh(()=>this.renderCodeMapEffect.renderCodeMap$.pipe($o(1))),Dr(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1}),this.autoFitToWhenResetCameraIfNewFileIsLoadedSetToFalse$=Ao(()=>this.actions$.pipe(za("StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"),ox(),gh(()=>this.renderCodeMapEffect.renderCodeMap$.pipe($o(1))),Dr(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Vre),ve(cc),ve(fd))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),G$e=(()=>{class n{constructor(e){this.store=e,this.linkHeightAndColorMetric$=Ao(()=>Sh([this.store.select(ex),this.store.select(F5)]).pipe(qi(([,i])=>i),Qe(([i])=>pd({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),W$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),$$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),j$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),X$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,are]})}}return n})(),K$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi,W$e,$$e,j$e,X$e]})}}return n})();const y8=Kt(wre,mb,(n,t)=>n?t.get(n.nodeId):null);function Y$e(n,t){if(1&n){const e=Dn();D(0,"button",1),ze("click",function(){return Ot(e),Rt(Le().flattenNode())}),xe(1,"img",2),ye(2," FLATTEN "),U()}}function Z$e(n,t){if(1&n){const e=Dn();D(0,"button",3),ze("click",function(){return Ot(e),Rt(Le().unFlattenNode())}),xe(1,"img",2),ye(2," SHOW "),U()}}let J$e=(()=>{class n{constructor(e){this.store=e}flattenNode(){this.store.dispatch(UP({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}unFlattenNode(){this.store.dispatch(n2({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-flatten-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:2,vars:1,consts:[["mat-button","","title","Flatten node and children-nodes, but keep an empty space"],["mat-button","","title","Flatten node and children-nodes, but keep an empty space",3,"click"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"png-icon"],["mat-button","","title","Show node and children-nodes",3,"click"]],template:function(i,r){1&i&&pt(0,Y$e,3,0,"button",0)(1,Z$e,3,0),2&i&&Tt(0,null!=r.codeMapNode&&r.codeMapNode.isFlattened?1:0)},dependencies:[cs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();const w8=Kt(lc,n=>n.focusedNodePath),Qre=Kt(w8,n=>n[0]);let eje=(()=>{class n{transform(e,i){if(!e||!i)return{isNodeFocused:!1,isParentFocused:!1};const r=e===i.path;return{isNodeFocused:r,isParentFocused:!r&&i.path.startsWith(e)}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"isNodeFocused",type:n,pure:!0})}}return n})();function tje(n,t){if(1&n){const e=Dn();D(0,"button",1),ze("click",function(){return Ot(e),Rt(Le(2).handleFocusNodeClicked())}),xe(1,"i",2),ye(2," FOCUS "),U()}}function nje(n,t){if(1&n){const e=Dn();D(0,"button",5),ze("click",function(){return Ot(e),Rt(Le(3).handleUnfocusAllNodesClicked())}),xe(1,"i",2),ye(2," UNFOCUS ALL "),U()}}function ije(n,t){if(1&n){const e=Dn();D(0,"button",3),ze("click",function(){return Ot(e),Rt(Le(2).handleUnfocusNodeClicked())}),xe(1,"i",2),ye(2),U(),pt(3,nje,3,0,"button",4),qe(4,"async")}if(2&n){const e=Le(),i=Le();Q(2),sn(" ",e.isParentFocused?"UNFOCUS PARENT":"UNFOCUS"," "),Q(),Tt(3,rt(4,2,i.hasPreviousFocusedNodePath$)?3:-1)}}function rje(n,t){if(1&n&&pt(0,tje,3,0,"button",0)(1,ije,5,4),2&n){const e=t;Tt(0,e.isNodeFocused?-1:0),Q(),Tt(1,e.isNodeFocused||e.isParentFocused?1:-1)}}let oje=(()=>{class n{constructor(e){this.store=e,this.currentFocusedNodePath$=this.store.select(Qre),this.hasPreviousFocusedNodePath$=this.store.select(w8).pipe(Qe(i=>i.length>1))}handleFocusNodeClicked(){this.store.dispatch(AI({value:this.codeMapNode.path}))}handleUnfocusNodeClicked(){this.store.dispatch(gI())}handleUnfocusAllNodesClicked(){this.store.dispatch(hx())}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-focus-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:6,consts:[["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes"],["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes",3,"click"],[1,"fa","fa-bullseye"],["mat-button","","aria-label","Remove Focus from node","title","Show previous focused node",3,"click"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map",3,"click"]],template:function(i,r){if(1&i&&(pt(0,rje,2,2),qe(1,"async"),qe(2,"isNodeFocused")),2&i){let o;Tt(0,(o=Io(2,3,rt(1,1,r.currentFocusedNodePath$),r.codeMapNode))?0:-1,o)}},dependencies:[cs,Kn,eje],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();function sje(n,t){if(1&n){const e=Dn();D(0,"button",1),ze("click",function(){return Ot(e),Rt(Le().addNodeToConstantHighlight())}),xe(1,"i",2),ye(2," KEEP HIGHLIGHT "),U()}}function aje(n,t){if(1&n){const e=Dn();D(0,"button",3),ze("click",function(){return Ot(e),Rt(Le().removeNodeFromConstantHighlight())}),xe(1,"i",2),ye(2," REMOVE HIGHLIGHT "),U()}}let lje=(()=>{class n{constructor(e,i){this.threeSceneService=e,this.idToBuilding=i}ngOnChanges(e){e.codeMapNode&&(this.isHighlighted=this.calculateIsHighlighted())}addNodeToConstantHighlight(){this.threeSceneService.addNodeAndChildrenToConstantHighlight(this.codeMapNode)}removeNodeFromConstantHighlight(){this.threeSceneService.removeNodeAndChildrenFromConstantHighlight(this.codeMapNode)}calculateIsHighlighted(){if(!this.codeMapNode)return!1;const e=this.idToBuilding.get(this.codeMapNode.id);return!!e&&this.threeSceneService.getConstantHighlight().has(e.id)}static{this.\u0275fac=function(i){return new(i||n)($(Vc),$(jw))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-highlight-buttons"]],inputs:{codeMapNode:"codeMapNode"},features:[xr],decls:2,vars:1,consts:[["mat-button","","title","Highlight node constantly"],["mat-button","","title","Highlight node constantly",3,"click"],[1,"fa","fa-cubes"],["mat-button","","title","Remove constant highlight",3,"click"]],template:function(i,r){1&i&&pt(0,sje,3,0,"button",0)(1,aje,3,0),2&i&&Tt(0,r.isHighlighted?1:0)},dependencies:[cs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();const cje=Kt(pb,n=>n.markingColors),dje=Kt(y8,cje,tJ,(n,t,e)=>{if(null===n)return t.map(r=>({color:r,isMarked:!1}));const i=Mee(e,n.path);return t.map(r=>({color:r,isMarked:-1!==i&&r===e[i].color}))});function uje(n,t){1&n&&xe(0,"i",5)}function hje(n,t){if(1&n){const e=Dn();D(0,"button",4),ze("click",function(){const r=Ot(e).$implicit,o=Le(),s=Le();return Rt(r.isMarked?s.unmarkFolder(o.path):s.markFolder(o.path,r.color))}),pt(1,uje,1,0,"i",5),U()}if(2&n){const e=t.$implicit;zi("background-color",e.color),Q(),Tt(1,e.isMarked?1:-1)}}function fje(n,t){if(1&n){const e=Dn();D(0,"div",1),Or(1,hje,2,3,"button",2,qr),qe(3,"async"),D(4,"cc-color-picker",3),ze("onColorChange",function(r){const o=Ot(e);return Rt(Le().markFolder(o.path,r))}),U()()}if(2&n){const e=Le(),i=Lo(3);Q(),Lr(rt(3,2,e.markFolderItems$)),Q(3),_e("hexColor","#ff0000")("triggerTemplate",i)}}function mje(n,t){1&n&&xe(0,"div",6)}let pje=(()=>{class n{constructor(e){this.store=e,this.markFolderItems$=this.store.select(dje),this.codeMapNode$=this.store.select(y8)}markFolder(e,i){this.store.dispatch(I1({packages:[{path:e,color:i}]}))}unmarkFolder(e){this.store.dispatch(o2({path:e}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-mark-folder-row"]],decls:4,vars:3,consts:[["colorPickerTriggerTemplate",""],[1,"row"],["title","Colorize folder",1,"colorButton",3,"background-color"],[3,"onColorChange","hexColor","triggerTemplate"],["title","Colorize folder",1,"colorButton",3,"click"],[1,"fa","fa-times"],[1,"cc-color-picker-trigger","fa","fa-paint-brush"]],template:function(i,r){if(1&i&&(pt(0,fje,5,4,"div",1),qe(1,"async"),pt(2,mje,1,0,"ng-template",null,0,jf)),2&i){let o;Tt(0,(o=rt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[AJ,Kn],styles:["[_nghost-%COMP%] .row[_ngcontent-%COMP%]{display:flex}[_nghost-%COMP%] [_ngcontent-%COMP%]:hover{cursor:pointer}[_nghost-%COMP%] .colorButton[_ngcontent-%COMP%]{width:32px;height:32px}[_nghost-%COMP%] .colorButton[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:25px;display:block;color:red;text-shadow:-1px 0 white,0 1px white,1px 0 white,0 -1px white}[_nghost-%COMP%] cc-color-picker[_ngcontent-%COMP%]{width:32px;height:32px}[_nghost-%COMP%] cc-color-picker[_ngcontent-%COMP%] .cc-color-picker-trigger[_ngcontent-%COMP%]{font-size:25px;margin-top:8px}"]})}}return n})(),Aje=(()=>{class n{constructor(e){this.store=e}excludeNode(){this.store.dispatch(HP({items:[{path:this.codeMapNode.path,type:"exclude",nodeType:this.codeMapNode.type}]}))}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-exclude-button"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:0,consts:[["mat-button","","id","exclude-button","title","Exclude node and children-nodes and reorder the CodeMap",3,"click"],[1,"fa","fa-ban"]],template:function(i,r){1&i&&(D(0,"button",0),ze("click",function(){return r.excludeNode()}),xe(1,"i",1),ye(2," EXCLUDE\n"),U())},dependencies:[cs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})(),gje=(()=>{class n{transform(e){return`${0===e.lastIndexOf("/")?"":"..."}${e.slice(e.lastIndexOf("/"))}`}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=ur({name:"lastPartOfNodePath",type:n,pure:!0})}}return n})();function _je(n,t){1&n&&(D(0,"div"),xe(1,"cc-mark-folder-row")(2,"mat-divider"),U())}function bje(n,t){if(1&n&&(D(0,"mat-card",0),pt(1,_je,3,0,"div"),D(2,"div",1)(3,"button",2),ye(4),qe(5,"lastPartOfNodePath"),U(),xe(6,"cc-focus-buttons",3)(7,"cc-flatten-buttons",3)(8,"cc-highlight-buttons",3)(9,"cc-exclude-button",3),U()()),2&n){const e=t;Q(),Tt(1,(null==e||null==e.children?null:e.children.length)>0?1:-1),Q(2),Ua("title",e.path),Q(),sn(" ",rt(5,7,e.path)," "),Q(2),_e("codeMapNode",e),Q(),_e("codeMapNode",e),Q(),_e("codeMapNode",e),Q(),_e("codeMapNode",e)}}let vje=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.codeMapNode$=this.store.select(y8)}static{this.\u0275fac=function(i){return new(i||n)($($t))}}static{this.\u0275cmp=bt({type:n,selectors:[["cc-node-context-menu-card"]],decls:2,vars:3,consts:[["appearance","outlined","id","codemap-context-menu"],[1,"button-group"],["mat-button","","disabled","true",3,"title"],[3,"codeMapNode"]],template:function(i,r){if(1&i&&(pt(0,bje,10,9,"mat-card",0),qe(1,"async")),2&i){let o;Tt(0,(o=rt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[cs,DN,rx,J$e,oje,lje,pje,Aje,Kn,gje],styles:["#codemap-context-menu[_ngcontent-%COMP%]{padding:12px}#codemap-context-menu[_ngcontent-%COMP%] .button-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;width:100%}"]})}}return n})(),yje=(()=>{class n{constructor(e,i){this.overlay=e,this.store=i,this.overlayReference=null,this.close=()=>{document.removeEventListener("click",this.onLeftClickHideNodeContextMenu,!0),document.removeEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").removeEventListener("wheel",this.close,!0),this.store.dispatch(gb(null)),this.overlayReference&&this.resetOverlay()},this.onLeftClickHideNodeContextMenu=r=>{this.isEventFromColorPicker(r)||this.close()},this.onRightClickHideNodeContextMenu=r=>{2===r.button&&this.close()}}open(e,i){this.overlayReference&&this.resetOverlay();const r=this.overlay.position().flexibleConnectedTo({x:e,y:i}).withPositions([{originX:"end",originY:"bottom",overlayX:"start",overlayY:"top"}]);this.overlayReference=this.overlay.create({positionStrategy:r,scrollStrategy:this.overlay.scrollStrategies.close()}),this.overlayReference.attach(new H1(vje)),this.overlayReference.overlayElement.addEventListener("contextmenu",o=>{o.preventDefault()}),document.addEventListener("click",this.onLeftClickHideNodeContextMenu,!1),document.addEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").addEventListener("wheel",this.close,!0)}resetOverlay(){this.overlayReference.dispose(),this.overlayReference=null}isEventFromColorPicker(e){return e.composedPath().some(r=>"CC-COLOR-PICKER"===r?.nodeName||"COLOR-CHROME"===r?.nodeName)}static{this.\u0275fac=function(i){return new(i||n)(ve(Ls),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),wje=(()=>{class n{constructor(e,i){this.actions$=e,this.nodeContextMenu=i,this.openNodeContextMenu$=Ao(()=>this.actions$.pipe(za(gb),Dr(r=>{r.value&&this.nodeContextMenu.open(r.value.xPositionOfRightClickEvent,r.value.yPositionOfRightClickEvent)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve(yje))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),xje=(()=>{class n{constructor(e){this.store=e,this.resetSelectedEdgeMetricWhenItDoesntExistAnymore$=Ao(()=>this.store.select(Xs).pipe(hd(this.store.select(tf)),qi(([i,r])=>!i.edgeMetricData.some(o=>o.name===r)),Qe(([i])=>i.edgeMetricData[0]?.name),d1(),Qe(i=>yh({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();const Eje=[[r2,I1,o2,VP,dW,uW,OP,LP,RP,NP,UP,t2,n2],[A1,E1,M1,_ee,XN,yee,u5,bh,YE,ZE,JE,S1,kP,XE,y1,v1,b1,_1,Z0,Y0,ax,sm,KE,jE,$E,w1,x1,C1,BP,PP,g1],[J0,e2,yh,ru,e_,am,P1,Eee,hx,AI,gI,wh,T1,pd,vh],[..._2]].flat();let Sje=(()=>{class n{constructor(e,i){var r=this;this.actions$=e,this.state=i,this.saveCcState$=Ao(()=>this.actions$.pipe(qi(o=>o.type!==Ab.type),za(...Eje),n_(500),Dr(k(function*(){const o=r.state.getValue();yield function ube(n){return YP.apply(this,arguments)}(o)}))),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Tje=(()=>{class n{constructor(e){this.actions$=e,this.setIsLoadingFile$=Ao(()=>this.actions$.pipe(za(..._2),Qe(()=>cA({value:!0})))),this.setIsLoadingMap$=Ao(()=>this.actions$.pipe(za(...Hre),Qe(()=>r_({value:!0}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Ije=(()=>{class n{constructor(e){this.store=e,this.unfocusNodes$=Ao(()=>this.store.select(au).pipe(Qe(()=>hx())))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Fje=(()=>{class n{constructor(e){this.store=e,this.resetIsEdgeMetricVisible$=Ao(()=>this.store.select(tf).pipe(hd(this.store.select(oU)),qi(([,i])=>!i),Qe(()=>XE())))}static{this.\u0275fac=function(i){return new(i||n)(ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})();function Dje(n,t){const e=new Map;if(1===n.length)return n[0].settings.fileSettings.edges;for(const i of n)if(i.settings.fileSettings.edges)for(const r of i.settings.fileSettings.edges){const o={fromNodeName:t?Ww(i.fileMeta.fileName,r.fromNodeName):r.fromNodeName,toNodeName:t?Ww(i.fileMeta.fileName,r.toNodeName):r.toNodeName,attributes:lu(r.attributes),visible:r.visible},s=e.get(`${o.fromNodeName}|${o.toNodeName}`);if(void 0!==s)for(const a of Object.keys(o.attributes))s.attributes[a]=o.attributes[a];else e.set(`${o.fromNodeName}|${o.toNodeName}`,o)}return[...e.values()]}function kje(n,t){if(1===n.length)return n[0].settings.fileSettings.markedPackages;const e=new Map;for(const i of n)if(i.settings.fileSettings.markedPackages)for(const r of i.settings.fileSettings.markedPackages){const o={path:t?mZ(i.fileMeta.fileName,r.path):r.path,color:r.color};e.set(`${o.path}|${o.color}`,o)}return[...e.values()]}function Bje(n,t){const e=new Map;if(1===n.length)return n[0].settings.fileSettings.blacklist;for(const i of n)if(i.settings.fileSettings.blacklist)for(const r of i.settings.fileSettings.blacklist){const o={path:t?mZ(i.fileMeta.fileName,r.path):r.path,type:r.type};e.set(`${o.path}|${o.type}`,o)}return[...e.values()]}function Pje(n){const t={},e={};for(const i of n){for(const r of Object.keys(i.nodes))t[r]||(t[r]=i.nodes[r]);for(const r of Object.keys(i.edges))e[r]||(e[r]=i.edges[r])}return{nodes:t,edges:e}}function Rje(n){const t={};for(const e of n)for(const i of Object.keys(e))t[i]||(t[i]=e[i]);return t}let Oje=(()=>{class n{constructor(e,i){this.actions$=e,this.state=i,this.updateFileSettings$=Ao(()=>this.actions$.pipe(za(..._2),Qe(()=>{const r=this.state.getValue(),o=function gbe(n){return l2(n).map(t=>t.file)}(r.files),s=CW(r.files),a=au(r).map(({file:c})=>c.settings.fileSettings.attributeTypes),l=au(r).map(({file:c})=>c.settings.fileSettings.attributeDescriptors);return xb({value:{fileSettings:{edges:Dje(o,s),markedPackages:kje(o,s),blacklist:Bje(o,s),attributeTypes:Pje(a),attributeDescriptors:Rje(l)}}})})))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Lje=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateMapColors$=Ao(()=>this.store.select(Nm).pipe(Qe(r=>{const o=this.state.getValue();if(1===o.fileSettings.attributeDescriptors[r]?.direction){const a=JSON.parse(md(o.appSettings.mapColors)),l=a.negative;return a.negative=a.positive,a.positive=l,bh({value:a})}return bh({value:Cu})})))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Nje=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateVisibleTopLabels$=Ao(()=>this.store.select(au).pipe(LU(),hd(this.store.select(JT)),Qe(([[r,o],s])=>{const l=md(r)===md(o)?this.state.getValue().appSettings.amountOfTopLabels:xN(s);return sm({value:l})})))}static{this.\u0275fac=function(i){return new(i||n)(ve($t),ve(Zr))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Uje=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.resetColorRange$=Ao(()=>this.actions$.pipe(za(..._2),gh(()=>this.store.select(Jh).pipe(G1(1),$o(1))),Qe(r=>ru({value:iI(r)})))),this.resetColorRangeOnColorMetricChange$=Ao(()=>this.actions$.pipe(za(pd),gh(()=>this.store.select(Jh).pipe($o(1))),Qe(r=>ru({value:iI(r)}))))}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Hje=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),Vje=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.threeMapControlsService=r,this.focusNode$=Ao(()=>this.actions$.pipe(za(AI),hd(this.store.select(Qre).pipe(gd(null),LU())),Dr(([,[o,s]])=>{o&&!Tee(s,o)?this.threeMapControlsService.unfocusNode(()=>{this.threeMapControlsService.focusNode(s)}):this.threeMapControlsService.focusNode(s)})),{dispatch:!1}),this.unfocus$=Ao(()=>this.actions$.pipe(za(gI),hd(this.store.select(w8)),Dr(([,o])=>{this.threeMapControlsService.unfocusNode(),0!==o.length&&this.threeMapControlsService.focusNode(o[0])})),{dispatch:!1}),this.unfocusAll$=Ao(()=>this.actions$.pipe(za(hx),Dr(()=>{this.threeMapControlsService.unfocusNode()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ve(fd),ve($t),ve(cc))}}static{this.\u0275prov=Ft({token:n,factory:n.\u0275fac})}}return n})(),Qje=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n})}static{this.\u0275inj=It({imports:[mn,Wi]})}}return n})(),zje=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=kt({type:n,bootstrap:[uQe]})}static{this.\u0275inj=It({providers:[Ure,{provide:zV,useFactory:e=>()=>e.synchronizeLocalCodeChartaVersion(),deps:[Ure],multi:!0}],imports:[Ez,aq,E_e.forRoot(TNe,{metaReducers:[INe]}),j_e.forRoot([Ije,_re,wje,xWe,Uje,mVe,Fje,Vre,q$e,Nje,G$e,xje,Oje,Tje,Sje,ove,Lje,Vje]),Wi,ud,l1,Hje,b$e,K$e,Qje]})}}return n})();typeof window<"u"&&!window.__TEST_ENVIRONMENT__&&Xpe().bootstrapModule(zje)},7172:(ut,Se,p)=>{"use strict";var z=p(6685),k=p(5841),m=p(8493),q=p(2420),F=p(8861),I=p(7741),G=p(8930),T=p(2615),W=p(1677);ut.exports=ie,ie.prototype.validate=function Me(Ye,Pt){var jt;if("string"==typeof Ye){if(!(jt=this.getSchema(Ye)))throw new Error('no schema with key or ref "'+Ye+'"')}else{var En=this._addSchema(Ye);jt=En.validate||this._compile(En)}var Xt=jt(Pt);return!0!==jt.$async&&(this.errors=jt.errors),Xt},ie.prototype.compile=function He(Ye,Pt){var jt=this._addSchema(Ye,void 0,Pt);return jt.validate||this._compile(jt)},ie.prototype.addSchema=function Te(Ye,Pt,jt,En){if(Array.isArray(Ye)){for(var Xt=0;Xt{"use strict";var Se=ut.exports=function(){this._cache={}};Se.prototype.put=function(z,k){this._cache[z]=k},Se.prototype.get=function(z){return this._cache[z]},Se.prototype.del=function(z){delete this._cache[z]},Se.prototype.clear=function(){this._cache={}}},4442:(ut,Se,p)=>{"use strict";var z=p(8892).MissingRef;ut.exports=function k(m,q,F){var I=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof q&&(F=q,q=void 0);var G=T(m).then(function(){var V=I._addSchema(m,void 0,q);return V.validate||W(V)});return F&&G.then(function(V){F(null,V)},F),G;function T(V){var X=V.$schema;return X&&!I.getSchema(X)?k.call(I,{$ref:X},!0):Promise.resolve()}function W(V){try{return I._compile(V)}catch(P){if(P instanceof z)return function X(P){var K=P.missingSchema;if(Me(K))throw new Error("Schema "+K+" is loaded but "+P.missingRef+" cannot be resolved");var oe=I._loadingSchemas[K];return oe||(oe=I._loadingSchemas[K]=I._opts.loadSchema(K)).then(ie,ie),oe.then(function(He){if(!Me(K))return T(He).then(function(){Me(K)||I.addSchema(He,K,void 0,q)})}).then(function(){return W(V)});function ie(){delete I._loadingSchemas[K]}function Me(He){return I._refs[He]||I._schemas[He]}}(P);throw P}}}},8892:(ut,Se,p)=>{"use strict";var z=p(5841);function m(F,I,G){this.message=G||m.message(F,I),this.missingRef=z.url(F,I),this.missingSchema=z.normalizeId(z.fullPath(this.missingRef))}function q(F){return F.prototype=Object.create(Error.prototype),F.prototype.constructor=F,F}ut.exports={Validation:q(function k(F){this.message="validation failed",this.errors=F,this.ajv=this.validation=!0}),MissingRef:q(m)},m.message=function(F,I){return"can't resolve reference "+I+" from id "+F}},7741:(ut,Se,p)=>{"use strict";var z=p(1677),k=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m=[0,31,28,31,30,31,30,31,31,30,31,30,31],q=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,F=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,I=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,T=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,W=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,V=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,X=/^(?:\/(?:[^~/]|~0|~1)*)*$/,P=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,K=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function oe(Ne){return z.copy(oe[Ne="full"==Ne?"full":"fast"])}function Me(Ne){var st=Ne.match(k);if(!st)return!1;var Fe=+st[2],ge=+st[3];return Fe>=1&&Fe<=12&&ge>=1&&ge<=(2==Fe&&function ie(Ne){return Ne%4==0&&(Ne%100!=0||Ne%400==0)}(+st[1])?29:m[Fe])}function He(Ne,st){var Ge=Ne.match(q);if(!Ge)return!1;var Fe=Ge[1],ge=Ge[2],Oe=Ge[3];return(Fe<=23&&ge<=59&&Oe<=59||23==Fe&&59==ge&&60==Oe)&&(!st||Ge[5])}ut.exports=oe,oe.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":T,url:W,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:F,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:et,uuid:V,"json-pointer":X,"json-pointer-uri-fragment":P,"relative-json-pointer":K},oe.full={date:Me,time:He,"date-time":function Xe(Ne){var st=Ne.split(Te);return 2==st.length&&Me(st[0])&&He(st[1],!0)},uri:function ke(Ne){return Je.test(Ne)&&I.test(Ne)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":T,url:W,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:F,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:et,uuid:V,"json-pointer":X,"json-pointer-uri-fragment":P,"relative-json-pointer":K};var Te=/t|\s/i,Je=/\/|:/,gt=/[^\\]\\Z/;function et(Ne){if(gt.test(Ne))return!1;try{return new RegExp(Ne),!0}catch{return!1}}},6685:(ut,Se,p)=>{"use strict";var z=p(5841),k=p(1677),m=p(8892),q=p(8861),F=p(604),I=k.ucs2length,G=p(362),T=m.Validation;function V(Te,Xe,Je){var ke=P.call(this,Te,Xe,Je);return ke>=0?{index:ke,compiling:!0}:(this._compilations[ke=this._compilations.length]={schema:Te,root:Xe,baseId:Je},{index:ke,compiling:!1})}function X(Te,Xe,Je){var ke=P.call(this,Te,Xe,Je);ke>=0&&this._compilations.splice(ke,1)}function P(Te,Xe,Je){for(var ke=0;ke{"use strict";var z=p(5568),k=p(362),m=p(1677),q=p(2420),F=p(4331);function I(ke,gt,et){var Ne=this._refs[et];if("string"==typeof Ne){if(!this._refs[Ne])return I.call(this,ke,gt,Ne);Ne=this._refs[Ne]}if((Ne=Ne||this._schemas[et])instanceof q)return P(Ne.schema,this._opts.inlineRefs)?Ne.schema:Ne.validate||this._compile(Ne);var Ge,Fe,ge,st=G.call(this,gt,et);return st&&(Ge=st.schema,gt=st.root,ge=st.baseId),Ge instanceof q?Fe=Ge.validate||ke.call(this,Ge.schema,gt,void 0,ge):void 0!==Ge&&(Fe=P(Ge,this._opts.inlineRefs)?Ge:ke.call(this,Ge,gt,void 0,ge)),Fe}function G(ke,gt){var et=z.parse(gt),Ne=Me(et),st=ie(this._getId(ke.schema));if(0===Object.keys(ke.schema).length||Ne!==st){var Ge=Te(Ne),Fe=this._refs[Ge];if("string"==typeof Fe)return T.call(this,ke,Fe,et);if(Fe instanceof q)Fe.validate||this._compile(Fe),ke=Fe;else{if(!((Fe=this._schemas[Ge])instanceof q))return;if(Fe.validate||this._compile(Fe),Ge==Te(gt))return{schema:Fe,root:ke,baseId:st};ke=Fe}if(!ke.schema)return;st=ie(this._getId(ke.schema))}return V.call(this,et,st,ke.schema,ke)}function T(ke,gt,et){var Ne=G.call(this,ke,gt);if(Ne){var st=Ne.schema,Ge=Ne.baseId;ke=Ne.root;var Fe=this._getId(st);return Fe&&(Ge=Xe(Ge,Fe)),V.call(this,et,Ge,st,ke)}}ut.exports=I,I.normalizeId=Te,I.fullPath=ie,I.url=Xe,I.ids=function Je(ke){var gt=Te(this._getId(ke)),et={"":gt},Ne={"":ie(gt,!1)},st={},Ge=this;return F(ke,{allKeys:!0},function(Fe,ge,Oe,tt,Re,mt,St){if(""!==ge){var Lt=Ge._getId(Fe),qt=et[tt],wn=Ne[tt]+"/"+Re;if(void 0!==St&&(wn+="/"+("number"==typeof St?St:m.escapeFragment(St))),"string"==typeof Lt){Lt=qt=Te(qt?z.resolve(qt,Lt):Lt);var On=Ge._refs[Lt];if("string"==typeof On&&(On=Ge._refs[On]),On&&On.schema){if(!k(Fe,On.schema))throw new Error('id "'+Lt+'" resolves to more than one schema')}else if(Lt!=Te(wn))if("#"==Lt[0]){if(st[Lt]&&!k(Fe,st[Lt]))throw new Error('id "'+Lt+'" resolves to more than one schema');st[Lt]=Fe}else Ge._refs[Lt]=wn}et[ge]=qt,Ne[ge]=wn}}),st},I.inlineRef=P,I.schema=G;var W=m.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function V(ke,gt,et,Ne){if(ke.fragment=ke.fragment||"","/"==ke.fragment.slice(0,1)){for(var st=ke.fragment.split("/"),Ge=1;Ge{"use strict";var z=p(2956),k=p(1677).toHash;ut.exports=function(){var q=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],F=["type","$comment"];return q.all=k(F),q.types=k(["number","integer","string","array","object","boolean","null"]),q.forEach(function(T){T.rules=T.rules.map(function(W){var V;if("object"==typeof W){var X=Object.keys(W)[0];V=W[X],W=X,V.forEach(function(K){F.push(K),q.all[K]=!0})}return F.push(W),q.all[W]={keyword:W,code:z[W],implements:V}}),q.all.$comment={keyword:"$comment",code:z.$comment},T.type&&(q.types[T.type]=T)}),q.keywords=k(F.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),q.custom={},q}},2420:(ut,Se,p)=>{"use strict";var z=p(1677);ut.exports=function k(m){z.copy(m,this)}},1132:ut=>{"use strict";ut.exports=function(p){for(var q,z=0,k=p.length,m=0;m=55296&&q<=56319&&m{"use strict";function k(Fe,ge,Oe,tt){var Re=tt?" !== ":" === ",mt=tt?" || ":" && ",St=tt?"!":"",Lt=tt?"":"!";switch(Fe){case"null":return ge+Re+"null";case"array":return St+"Array.isArray("+ge+")";case"object":return"("+St+ge+mt+"typeof "+ge+Re+'"object"'+mt+Lt+"Array.isArray("+ge+"))";case"integer":return"(typeof "+ge+Re+'"number"'+mt+Lt+"("+ge+" % 1)"+mt+ge+Re+ge+(Oe?mt+St+"isFinite("+ge+")":"")+")";case"number":return"(typeof "+ge+Re+'"'+Fe+'"'+(Oe?mt+St+"isFinite("+ge+")":"")+")";default:return"typeof "+ge+Re+'"'+Fe+'"'}}ut.exports={copy:function z(Fe,ge){for(var Oe in ge=ge||{},Fe)ge[Oe]=Fe[Oe];return ge},checkDataType:k,checkDataTypes:function m(Fe,ge,Oe){if(1===Fe.length)return k(Fe[0],ge,Oe,!0);var tt="",Re=I(Fe);for(var mt in Re.array&&Re.object&&(tt=Re.null?"(":"(!"+ge+" || ",tt+="typeof "+ge+' !== "object")',delete Re.null,delete Re.array,delete Re.object),Re.number&&delete Re.integer,Re)tt+=(tt?" && ":"")+k(mt,ge,Oe,!0);return tt},coerceToTypes:function F(Fe,ge){if(Array.isArray(ge)){for(var Oe=[],tt=0;tt=ge)throw new Error("Cannot access property/index "+tt+" levels up, current level is "+ge);return Oe[ge-tt]}if(tt>ge)throw new Error("Cannot access data "+tt+" levels up, current level is "+ge);if(mt="data"+(ge-tt||""),!Re)return mt}for(var Lt=mt,qt=Re.split("/"),wn=0;wn{"use strict";var Se=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];ut.exports=function(p,z){for(var k=0;k{"use strict";var z=p(8198);ut.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:z.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:z.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},9402:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I;var K="maximum"==z,oe=K?"exclusiveMaximum":"exclusiveMinimum",ie=p.schema[oe],Me=p.opts.$data&&ie&&ie.$data,He=K?"<":">",Te=K?">":"<",Xe=void 0;if(!X&&"number"!=typeof I&&void 0!==I)throw new Error(z+" must be number");if(!Me&&void 0!==ie&&"number"!=typeof ie&&"boolean"!=typeof ie)throw new Error(oe+" must be number or boolean");if(Me){var Ge,Je=p.util.getData(ie.$data,F,p.dataPathArr),ke="exclusive"+q,gt="exclType"+q,et="exclIsNumber"+q,st="' + "+(Ne="op"+q)+" + '";m+=" var schemaExcl"+q+" = "+Je+"; ",Xe=oe,(Ge=Ge||[]).push(m+=" var "+ke+"; var "+gt+" = typeof "+(Je="schemaExcl"+q)+"; if ("+gt+" != 'boolean' && "+gt+" != 'undefined' && "+gt+" != 'number') { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(Xe||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: '"+oe+" should be boolean' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Fe=m;m=Ge.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Fe+"]); ":" validate.errors = ["+Fe+"]; return false; ":" var err = "+Fe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=" "+gt+" == 'number' ? ( ("+ke+" = "+P+" === undefined || "+Je+" "+He+"= "+P+") ? "+V+" "+Te+"= "+Je+" : "+V+" "+Te+" "+P+" ) : ( ("+ke+" = "+Je+" === true) ? "+V+" "+Te+"= "+P+" : "+V+" "+Te+" "+P+" ) || "+V+" !== "+V+") { var op"+q+" = "+ke+" ? '"+He+"' : '"+He+"='; ",void 0===I&&(Xe=oe,T=p.errSchemaPath+"/"+oe,P=Je,X=Me)}else if(st=He,(et="number"==typeof ie)&&X){var Ne="'"+st+"'";m+=" if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=" ( "+P+" === undefined || "+ie+" "+He+"= "+P+" ? "+V+" "+Te+"= "+ie+" : "+V+" "+Te+" "+P+" ) || "+V+" !== "+V+") { "}else et&&void 0===I?(ke=!0,Xe=oe,T=p.errSchemaPath+"/"+oe,P=ie,Te+="="):(et&&(P=Math[K?"min":"max"](ie,I)),ie===(!et||P)?(ke=!0,Xe=oe,T=p.errSchemaPath+"/"+oe,Te+="="):(ke=!1,st+="=")),Ne="'"+st+"'",m+=" if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=" "+V+" "+Te+" "+P+" || "+V+" !== "+V+") { ";return Xe=Xe||z,(Ge=Ge||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: '"+(Xe||"_limit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { comparison: "+Ne+", limit: "+P+", exclusive: "+ke+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be "+st+" ",m+=X?"' + "+P:P+"'"),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",Fe=m,m=Ge.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Fe+"]); ":" validate.errors = ["+Fe+"]; return false; ":" var err = "+Fe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",W&&(m+=" else { "),m}},3792:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || ");var oe=z,ie=ie||[];ie.push(m+=" "+V+".length "+("maxItems"==z?">":"<")+" "+P+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(oe||"_limitItems")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have ",m+="maxItems"==z?"more":"fewer",m+=" than ",m+=X?"' + "+P+" + '":""+I,m+=" items' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Me=m;return m=ie.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},3226:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || "),m+=!1===p.opts.unicode?" "+V+".length ":" ucs2length("+V+") ";var oe=z,ie=ie||[];ie.push(m+=" "+("maxLength"==z?">":"<")+" "+P+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(oe||"_limitLength")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be ",m+="maxLength"==z?"longer":"shorter",m+=" than ",m+=X?"' + "+P+" + '":""+I,m+=" characters' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Me=m;return m=ie.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},2119:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'number') || ");var oe=z,ie=ie||[];ie.push(m+=" Object.keys("+V+").length "+("maxProperties"==z?">":"<")+" "+P+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(oe||"_limitProperties")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have ",m+="maxProperties"==z?"more":"fewer",m+=" than ",m+=X?"' + "+P+" + '":""+I,m+=" properties' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Me=m;return m=ie.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},9218:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.schema[z],F=p.schemaPath+p.util.getProperty(z),I=p.errSchemaPath+"/"+z,G=!p.opts.allErrors,T=p.util.copy(p),W="";T.level++;var V="valid"+T.level,X=T.baseId,P=!0,K=q;if(K)for(var oe,ie=-1,Me=K.length-1;ie0||!1===oe:p.util.schemaHasRules(oe,p.RULES.all))&&(P=!1,T.schema=oe,T.schemaPath=F+"["+ie+"]",T.errSchemaPath=I+"/"+ie,m+=" "+p.validate(T)+" ",T.baseId=X,G&&(m+=" if ("+V+") { ",W+="}"));return G&&(m+=P?" if (true) { ":" "+W.slice(0,-1)+" "),m}},3883:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p),oe="";K.level++;var ie="valid"+K.level;if(I.every(function(et){return p.opts.strictKeywords?"object"==typeof et&&Object.keys(et).length>0||!1===et:p.util.schemaHasRules(et,p.RULES.all)})){var He=K.baseId;m+=" var "+P+" = errors; var "+X+" = false; ";var Te=p.compositeRule;p.compositeRule=K.compositeRule=!0;var Xe=I;if(Xe)for(var Je,ke=-1,gt=Xe.length-1;ke{"use strict";ut.exports=function(p,z,k){var m=" ",F=p.errSchemaPath+"/"+z,G=p.util.toQuotedString(p.schema[z]);return!0===p.opts.$comment?m+=" console.log("+G+");":"function"==typeof p.opts.$comment&&(m+=" self._opts.$comment("+G+", "+p.util.toQuotedString(F)+", validate.root.schema);"),m}},439:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;P&&(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; "),P||(m+=" var schema"+q+" = validate.schema"+G+";");var oe=oe||[];oe.push(m+="var "+X+" = equal("+V+", schema"+q+"); if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'const' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValue: schema"+q+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be equal to constant' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ie=m;return m=oe.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ie+"]); ":" validate.errors = ["+ie+"]; return false; ":" var err = "+ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" }",W&&(m+=" else { "),m}},7939:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p);K.level++;var ie="valid"+K.level,Me="i"+q,He=K.dataLevel=p.dataLevel+1,Te="data"+He,Xe=p.baseId,Je=p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all);if(m+="var "+P+" = errors;var "+X+";",Je){var ke=p.compositeRule;p.compositeRule=K.compositeRule=!0,K.schema=I,K.schemaPath=G,K.errSchemaPath=T,m+=" var "+ie+" = false; for (var "+Me+" = 0; "+Me+" < "+V+".length; "+Me+"++) { ",K.errorPath=p.util.getPathExpr(p.errorPath,Me,p.opts.jsonPointers,!0);var gt=V+"["+Me+"]";K.dataPathArr[He]=Me;var et=p.validate(K);K.baseId=Xe,p.util.varOccurences(et,Te)<2?m+=" "+p.util.varReplace(et,Te,gt)+" ":m+=" var "+Te+" = "+gt+"; "+et+" ",m+=" if ("+ie+") break; } ",p.compositeRule=K.compositeRule=ke,m+=" if (!"+ie+") {"}else m+=" if ("+V+".length == 0) {";var Ne=Ne||[];Ne.push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should contain a valid item' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var st=m;return m=Ne.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+st+"]); ":" validate.errors = ["+st+"]; return false; ":" var err = "+st+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { ",Je&&(m+=" errors = "+P+"; if (vErrors !== null) { if ("+P+") vErrors.length = "+P+"; else vErrors = null; } "),p.opts.allErrors&&(m+=" } "),m}},5237:ut=>{"use strict";ut.exports=function(p,z,k){var V,ie,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,X="data"+(F||""),P="valid"+q,K="errs__"+q,oe=p.opts.$data&&I&&I.$data;oe?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",ie="schema"+q):ie=I;var Je,ke,gt,et,Ne,Me=this,He="definition"+q,Te=Me.definition,Xe="";if(oe&&Te.$data){var st=Te.validateSchema;m+=" var "+He+" = RULES.custom['"+z+"'].definition; var "+(Ne="keywordValidate"+q)+" = "+He+".validate;"}else{if(!(et=p.useCustomRule(Me,I,p.schema,p)))return;ie="validate.schema"+G,Ne=et.code,Je=Te.compile,ke=Te.inline,gt=Te.macro}var Ge=Ne+".errors",Fe="i"+q,ge="ruleErr"+q,Oe=Te.async;if(Oe&&!p.async)throw new Error("async keyword in sync schema");if(ke||gt||(m+=Ge+" = null;"),m+="var "+K+" = errors;var "+P+";",oe&&Te.$data&&(Xe+="}",m+=" if ("+ie+" === undefined) { "+P+" = true; } else { ",st&&(Xe+="}",m+=" "+P+" = "+He+".validateSchema("+ie+"); if ("+P+") { ")),ke)m+=Te.statements?" "+et.validate+" ":" "+P+" = "+et.validate+"; ";else if(gt){var tt=p.util.copy(p);Xe="",tt.level++;var Re="valid"+tt.level;tt.schema=et.validate,tt.schemaPath="";var mt=p.compositeRule;p.compositeRule=tt.compositeRule=!0;var St=p.validate(tt).replace(/validate\.schema/g,Ne);p.compositeRule=tt.compositeRule=mt,m+=" "+St}else{(Lt=Lt||[]).push(m),m="",m+=" "+Ne+".call( ",m+=p.opts.passContext?"this":"self",m+=Je||!1===Te.schema?" , "+X+" ":" , "+ie+" , "+X+" , validate.schema"+p.schemaPath+" ",m+=" , (dataPath || '')",'""'!=p.errorPath&&(m+=" + "+p.errorPath);var qt=F?"data"+(F-1||""):"parentData",wn=F?p.dataPathArr[F]:"parentDataProperty",On=m+=" , "+qt+" , "+wn+" , rootData ) ";m=Lt.pop(),!1===Te.errors?(m+=" "+P+" = ",Oe&&(m+="await "),m+=On+"; "):m+=Oe?" var "+(Ge="customErrors"+q)+" = null; try { "+P+" = await "+On+"; } catch (e) { "+P+" = false; if (e instanceof ValidationError) "+Ge+" = e.errors; else throw e; } ":" "+Ge+" = null; "+P+" = "+On+"; "}if(Te.modifying&&(m+=" if ("+qt+") "+X+" = "+qt+"["+wn+"];"),m+=""+Xe,Te.valid)W&&(m+=" if (true) { ");else{var Lt;m+=" if ( ",void 0===Te.valid?(m+=" !",m+=gt?""+Re:""+P):m+=" "+!Te.valid+" ",V=Me.keyword,(Lt=Lt||[]).push(m+=") { "),(Lt=Lt||[]).push(m=""),m="",!1!==p.createErrors?(m+=" { keyword: '"+(V||"custom")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { keyword: '"+Me.keyword+"' } ",!1!==p.opts.messages&&(m+=" , message: 'should pass \""+Me.keyword+"\" keyword validation' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+X+" "),m+=" } "):m+=" {} ";var _i=m;m=Lt.pop();var jn=m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+_i+"]); ":" validate.errors = ["+_i+"]; return false; ":" var err = "+_i+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";m=Lt.pop(),ke?Te.errors?"full"!=Te.errors&&(m+=" for (var "+Fe+"="+K+"; "+Fe+"{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p),K="";P.level++;var oe="valid"+P.level,ie={},Me={},He=p.opts.ownProperties;for(ke in I)if("__proto__"!=ke){var Te=I[ke],Xe=Array.isArray(Te)?Me:ie;Xe[ke]=Te}m+="var "+X+" = errors;";var Je=p.errorPath;for(var ke in m+="var missing"+q+";",Me)if((Xe=Me[ke]).length){if(m+=" if ( "+V+p.util.getProperty(ke)+" !== undefined ",He&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(ke)+"') "),W){m+=" && ( ";var gt=Xe;if(gt)for(var Ne=-1,st=gt.length-1;Ne0||!1===Te:p.util.schemaHasRules(Te,p.RULES.all))&&(m+=" "+oe+" = true; if ( "+V+p.util.getProperty(ke)+" !== undefined ",He&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(ke)+"') "),m+=") { ",P.schema=Te,P.schemaPath=G+p.util.getProperty(ke),P.errSchemaPath=T+"/"+p.util.escapeFragment(ke),m+=" "+p.validate(P)+" ",P.baseId=qt,m+=" } ",W&&(m+=" if ("+oe+") { ",K+="}"));return W&&(m+=" "+K+" if ("+X+" == errors) {"),m}},4299:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;P&&(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ");var oe="i"+q,ie="schema"+q;P||(m+=" var "+ie+" = validate.schema"+G+";"),m+="var "+X+";",P&&(m+=" if (schema"+q+" === undefined) "+X+" = true; else if (!Array.isArray(schema"+q+")) "+X+" = false; else {"),m+=X+" = false;for (var "+oe+"=0; "+oe+"<"+ie+".length; "+oe+"++) if (equal("+V+", "+ie+"["+oe+"])) { "+X+" = true; break; }",P&&(m+=" } ");var Me=Me||[];Me.push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValues: schema"+q+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be equal to one of the allowed values' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var He=m;return m=Me.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+He+"]); ":" validate.errors = ["+He+"]; return false; ":" var err = "+He+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" }",W&&(m+=" else { "),m}},4097:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||"");if(!1===p.opts.format)return W&&(m+=" if (true) { "),m;var P,X=p.opts.$data&&I&&I.$data;X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I;var K=p.opts.unknownFormats,oe=Array.isArray(K);if(X)m+=" var "+(ie="format"+q)+" = formats["+P+"]; var "+(Me="isObject"+q)+" = typeof "+ie+" == 'object' && !("+ie+" instanceof RegExp) && "+ie+".validate; var "+(He="formatType"+q)+" = "+Me+" && "+ie+".type || 'string'; if ("+Me+") { ",p.async&&(m+=" var async"+q+" = "+ie+".async; "),m+=" "+ie+" = "+ie+".validate; } if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'string') || "),m+=" (","ignore"!=K&&(m+=" ("+P+" && !"+ie+" ",oe&&(m+=" && self._opts.unknownFormats.indexOf("+P+") == -1 "),m+=") || "),m+=" ("+ie+" && "+He+" == '"+k+"' && !(typeof "+ie+" == 'function' ? ",m+=p.async?" (async"+q+" ? await "+ie+"("+V+") : "+ie+"("+V+")) ":" "+ie+"("+V+") ",m+=" : "+ie+".test("+V+"))))) {";else{var ie;if(!(ie=p.formats[I])){if("ignore"==K)return p.logger.warn('unknown format "'+I+'" ignored in schema at path "'+p.errSchemaPath+'"'),W&&(m+=" if (true) { "),m;if(oe&&K.indexOf(I)>=0)return W&&(m+=" if (true) { "),m;throw new Error('unknown format "'+I+'" is used in schema at path "'+p.errSchemaPath+'"')}var Me,He=(Me="object"==typeof ie&&!(ie instanceof RegExp)&&ie.validate)&&ie.type||"string";if(Me){var Te=!0===ie.async;ie=ie.validate}if(He!=k)return W&&(m+=" if (true) { "),m;if(Te){if(!p.async)throw new Error("async format in sync schema");m+=" if (!(await "+(Xe="formats"+p.util.getProperty(I)+".validate")+"("+V+"))) { "}else{m+=" if (! ";var Xe="formats"+p.util.getProperty(I);Me&&(Xe+=".validate"),m+="function"==typeof ie?" "+Xe+"("+V+") ":" "+Xe+".test("+V+") ",m+=") { "}}var Je=Je||[];Je.push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'format' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { format: ",m+=X?""+P:""+p.util.toQuotedString(I),m+=" } ",!1!==p.opts.messages&&(m+=" , message: 'should match format \"",m+=X?"' + "+P+" + '":""+p.util.escapeQuotes(I),m+="\"' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+p.util.toQuotedString(I),m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ke=m;return m=Je.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ke+"]); ":" validate.errors = ["+ke+"]; return false; ":" var err = "+ke+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",W&&(m+=" else { "),m}},2061:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p);K.level++;var oe="valid"+K.level,ie=p.schema.then,Me=p.schema.else,He=void 0!==ie&&(p.opts.strictKeywords?"object"==typeof ie&&Object.keys(ie).length>0||!1===ie:p.util.schemaHasRules(ie,p.RULES.all)),Te=void 0!==Me&&(p.opts.strictKeywords?"object"==typeof Me&&Object.keys(Me).length>0||!1===Me:p.util.schemaHasRules(Me,p.RULES.all)),Xe=K.baseId;if(He||Te){var Je;K.createErrors=!1,K.schema=I,K.schemaPath=G,K.errSchemaPath=T,m+=" var "+P+" = errors; var "+X+" = true; ";var ke=p.compositeRule;p.compositeRule=K.compositeRule=!0,m+=" "+p.validate(K)+" ",K.baseId=Xe,K.createErrors=!0,m+=" errors = "+P+"; if (vErrors !== null) { if ("+P+") vErrors.length = "+P+"; else vErrors = null; } ",p.compositeRule=K.compositeRule=ke,He?(m+=" if ("+oe+") { ",K.schema=p.schema.then,K.schemaPath=p.schemaPath+".then",K.errSchemaPath=p.errSchemaPath+"/then",m+=" "+p.validate(K)+" ",K.baseId=Xe,m+=" "+X+" = "+oe+"; ",He&&Te?m+=" var "+(Je="ifClause"+q)+" = 'then'; ":Je="'then'",m+=" } ",Te&&(m+=" else { ")):m+=" if (!"+oe+") { ",Te&&(K.schema=p.schema.else,K.schemaPath=p.schemaPath+".else",K.errSchemaPath=p.errSchemaPath+"/else",m+=" "+p.validate(K)+" ",K.baseId=Xe,m+=" "+X+" = "+oe+"; ",He&&Te?m+=" var "+(Je="ifClause"+q)+" = 'else'; ":Je="'else'",m+=" } "),m+=" if (!"+X+") { var err = ",!1!==p.createErrors?(m+=" { keyword: 'if' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { failingKeyword: "+Je+" } ",!1!==p.opts.messages&&(m+=" , message: 'should match \"' + "+Je+" + '\" schema' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&W&&(m+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),m+=" } ",W&&(m+=" else { ")}else W&&(m+=" if (true) { ");return m}},2956:(ut,Se,p)=>{"use strict";ut.exports={$ref:p(3953),allOf:p(9218),anyOf:p(3883),$comment:p(757),const:p(439),contains:p(7939),dependencies:p(3899),enum:p(4299),format:p(4097),if:p(2061),items:p(9240),maximum:p(9402),minimum:p(9402),maxItems:p(3792),minItems:p(3792),maxLength:p(3226),minLength:p(3226),maxProperties:p(2119),minProperties:p(2119),multipleOf:p(9095),not:p(8457),oneOf:p(7681),pattern:p(9438),properties:p(6319),propertyNames:p(6611),required:p(5051),uniqueItems:p(5329),validate:p(604)}},9240:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p),oe="";K.level++;var ie="valid"+K.level,Me="i"+q,He=K.dataLevel=p.dataLevel+1,Te="data"+He,Xe=p.baseId;if(m+="var "+P+" = errors;var "+X+";",Array.isArray(I)){var Je=p.schema.additionalItems;if(!1===Je){m+=" "+X+" = "+V+".length <= "+I.length+"; ";var ke=T;T=p.errSchemaPath+"/additionalItems";var gt=gt||[];gt.push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+I.length+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have more than "+I.length+" items' "),p.opts.verbose&&(m+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var et=m;m=gt.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+et+"]); ":" validate.errors = ["+et+"]; return false; ":" var err = "+et+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",T=ke,W&&(oe+="}",m+=" else { ")}var Ne=I;if(Ne)for(var st,Ge=-1,Fe=Ne.length-1;Ge0||!1===st:p.util.schemaHasRules(st,p.RULES.all)){m+=" "+ie+" = true; if ("+V+".length > "+Ge+") { ";var ge=V+"["+Ge+"]";K.schema=st,K.schemaPath=G+"["+Ge+"]",K.errSchemaPath=T+"/"+Ge,K.errorPath=p.util.getPathExpr(p.errorPath,Ge,p.opts.jsonPointers,!0),K.dataPathArr[He]=Ge;var Oe=p.validate(K);K.baseId=Xe,p.util.varOccurences(Oe,Te)<2?m+=" "+p.util.varReplace(Oe,Te,ge)+" ":m+=" var "+Te+" = "+ge+"; "+Oe+" ",m+=" } ",W&&(m+=" if ("+ie+") { ",oe+="}")}"object"==typeof Je&&(p.opts.strictKeywords?"object"==typeof Je&&Object.keys(Je).length>0||!1===Je:p.util.schemaHasRules(Je,p.RULES.all))&&(K.schema=Je,K.schemaPath=p.schemaPath+".additionalItems",K.errSchemaPath=p.errSchemaPath+"/additionalItems",m+=" "+ie+" = true; if ("+V+".length > "+I.length+") { for (var "+Me+" = "+I.length+"; "+Me+" < "+V+".length; "+Me+"++) { ",K.errorPath=p.util.getPathExpr(p.errorPath,Me,p.opts.jsonPointers,!0),ge=V+"["+Me+"]",K.dataPathArr[He]=Me,Oe=p.validate(K),K.baseId=Xe,p.util.varOccurences(Oe,Te)<2?m+=" "+p.util.varReplace(Oe,Te,ge)+" ":m+=" var "+Te+" = "+ge+"; "+Oe+" ",W&&(m+=" if (!"+ie+") break; "),m+=" } } ",W&&(m+=" if ("+ie+") { ",oe+="}"))}else(p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all))&&(K.schema=I,K.schemaPath=G,K.errSchemaPath=T,m+=" for (var "+Me+" = 0; "+Me+" < "+V+".length; "+Me+"++) { ",K.errorPath=p.util.getPathExpr(p.errorPath,Me,p.opts.jsonPointers,!0),ge=V+"["+Me+"]",K.dataPathArr[He]=Me,Oe=p.validate(K),K.baseId=Xe,p.util.varOccurences(Oe,Te)<2?m+=" "+p.util.varReplace(Oe,Te,ge)+" ":m+=" var "+Te+" = "+ge+"; "+Oe+" ",W&&(m+=" if (!"+ie+") break; "),m+=" }");return W&&(m+=" "+oe+" if ("+P+" == errors) {"),m}},9095:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;if(X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I,!X&&"number"!=typeof I)throw new Error(z+" must be number");m+="var division"+q+";if (",X&&(m+=" "+P+" !== undefined && ( typeof "+P+" != 'number' || "),m+=" (division"+q+" = "+V+" / "+P+", ",m+=p.opts.multipleOfPrecision?" Math.abs(Math.round(division"+q+") - division"+q+") > 1e-"+p.opts.multipleOfPrecision+" ":" division"+q+" !== parseInt(division"+q+") ",m+=" ) ",X&&(m+=" ) ");var K=K||[];K.push(m+=" ) { "),m="",!1!==p.createErrors?(m+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { multipleOf: "+P+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be multiple of ",m+=X?"' + "+P:P+"'"),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var oe=m;return m=K.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+oe+"]); ":" validate.errors = ["+oe+"]; return false; ":" var err = "+oe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},8457:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p);P.level++;var K="valid"+P.level;if(p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all)){P.schema=I,P.schemaPath=G,P.errSchemaPath=T,m+=" var "+X+" = errors; ";var ie,oe=p.compositeRule;p.compositeRule=P.compositeRule=!0,P.createErrors=!1,P.opts.allErrors&&(ie=P.opts.allErrors,P.opts.allErrors=!1),m+=" "+p.validate(P)+" ",P.createErrors=!0,ie&&(P.opts.allErrors=ie),p.compositeRule=P.compositeRule=oe;var Me=Me||[];Me.push(m+=" if ("+K+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be valid' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var He=m;m=Me.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+He+"]); ":" validate.errors = ["+He+"]; return false; ":" var err = "+He+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { errors = "+X+"; if (vErrors !== null) { if ("+X+") vErrors.length = "+X+"; else vErrors = null; } ",p.opts.allErrors&&(m+=" } ")}else m+=" var err = ",!1!==p.createErrors?(m+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be valid' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",W&&(m+=" if (false) { ");return m}},7681:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P="errs__"+q,K=p.util.copy(p),oe="";K.level++;var ie="valid"+K.level,Me=K.baseId,He="prevValid"+q,Te="passingSchemas"+q;m+="var "+P+" = errors , "+He+" = false , "+X+" = false , "+Te+" = null; ";var Xe=p.compositeRule;p.compositeRule=K.compositeRule=!0;var Je=I;if(Je)for(var ke,gt=-1,et=Je.length-1;gt0||!1===ke:p.util.schemaHasRules(ke,p.RULES.all))?(K.schema=ke,K.schemaPath=G+"["+gt+"]",K.errSchemaPath=T+"/"+gt,m+=" "+p.validate(K)+" ",K.baseId=Me):m+=" var "+ie+" = true; ",gt&&(m+=" if ("+ie+" && "+He+") { "+X+" = false; "+Te+" = ["+Te+", "+gt+"]; } else { ",oe+="}"),m+=" if ("+ie+") { "+X+" = "+He+" = true; "+Te+" = "+gt+"; }";return p.compositeRule=K.compositeRule=Xe,m+=oe+"if (!"+X+") { var err = ",!1!==p.createErrors?(m+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { passingSchemas: "+Te+" } ",!1!==p.opts.messages&&(m+=" , message: 'should match exactly one schema in oneOf' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&W&&(m+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),m+="} else { errors = "+P+"; if (vErrors !== null) { if ("+P+") vErrors.length = "+P+"; else vErrors = null; }",p.opts.allErrors&&(m+=" } "),m}},9438:ut=>{"use strict";ut.exports=function(p,z,k){var P,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X=p.opts.$data&&I&&I.$data;X?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",P="schema"+q):P=I;var K=X?"(new RegExp("+P+"))":p.usePattern(I);m+="if ( ",X&&(m+=" ("+P+" !== undefined && typeof "+P+" != 'string') || ");var oe=oe||[];oe.push(m+=" !"+K+".test("+V+") ) { "),m="",!1!==p.createErrors?(m+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { pattern: ",m+=X?""+P:""+p.util.toQuotedString(I),m+=" } ",!1!==p.opts.messages&&(m+=" , message: 'should match pattern \"",m+=X?"' + "+P+" + '":""+p.util.escapeQuotes(I),m+="\"' "),p.opts.verbose&&(m+=" , schema: ",m+=X?"validate.schema"+G:""+p.util.toQuotedString(I),m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ie=m;return m=oe.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ie+"]); ":" validate.errors = ["+ie+"]; return false; ":" var err = "+ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",W&&(m+=" else { "),m}},6319:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p),K="";P.level++;var oe="valid"+P.level,ie="key"+q,Me="idx"+q,He=P.dataLevel=p.dataLevel+1,Te="data"+He,Xe="dataProperties"+q,Je=Object.keys(I||{}).filter(St),ke=p.schema.patternProperties||{},gt=Object.keys(ke).filter(St),et=p.schema.additionalProperties,Ne=Je.length||gt.length,st=!1===et,Ge="object"==typeof et&&Object.keys(et).length,Fe=p.opts.removeAdditional,ge=st||Ge||Fe,Oe=p.opts.ownProperties,tt=p.baseId,Re=p.schema.required;if(Re&&(!p.opts.$data||!Re.$data)&&Re.length8)m+=" || validate.schema"+G+".hasOwnProperty("+ie+") ";else{var Lt=Je;if(Lt)for(var wn=-1,On=Lt.length-1;wn0||!1===ri:p.util.schemaHasRules(ri,p.RULES.all)){var Qo=p.util.getProperty(qt),So=(on=V+Qo,Ri&&void 0!==ri.default);if(P.schema=ri,P.schemaPath=G+Qo,P.errSchemaPath=T+"/"+p.util.escapeFragment(qt),P.errorPath=p.util.getPath(p.errorPath,qt,p.opts.jsonPointers),P.dataPathArr[He]=p.util.toQuotedString(qt),Yt=p.validate(P),P.baseId=tt,p.util.varOccurences(Yt,Te)<2){Yt=p.util.varReplace(Yt,Te,on);var Zi=on}else Zi=Te,m+=" var "+Te+" = "+on+"; ";if(So)m+=" "+Yt+" ";else{if(mt&&mt[qt]){m+=" if ( "+Zi+" === undefined ",Oe&&(m+=" || ! Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(qt)+"') "),m+=") { "+oe+" = false; ",li=p.errorPath,Pt=T;var jt,Er=p.util.escapeQuotes(qt);p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPath(li,qt,p.opts.jsonPointers)),T=p.errSchemaPath+"/required",(jt=jt||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+Er+"' } ",!1!==p.opts.messages&&(m+=" , message: '",m+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Er+"\\'",m+="' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ",En=m,m=jt.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+En+"]); ":" validate.errors = ["+En+"]; return false; ":" var err = "+En+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T=Pt,p.errorPath=li,m+=" } else { "}else W?(m+=" if ( "+Zi+" === undefined ",Oe&&(m+=" || ! Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(qt)+"') "),m+=") { "+oe+" = true; } else { "):(m+=" if ("+Zi+" !== undefined ",Oe&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", '"+p.util.escapeQuotes(qt)+"') "),m+=" ) { ");m+=" "+Yt+" } "}}W&&(m+=" if ("+oe+") { ",K+="}")}}if(gt.length){var _o=gt;if(_o)for(var jn,tl=-1,mf=_o.length-1;tl0||!1===ri:p.util.schemaHasRules(ri,p.RULES.all))&&(P.schema=ri,P.schemaPath=p.schemaPath+".patternProperties"+p.util.getProperty(jn),P.errSchemaPath=p.errSchemaPath+"/patternProperties/"+p.util.escapeFragment(jn),m+=Oe?" "+Xe+" = "+Xe+" || Object.keys("+V+"); for (var "+Me+"=0; "+Me+"<"+Xe+".length; "+Me+"++) { var "+ie+" = "+Xe+"["+Me+"]; ":" for (var "+ie+" in "+V+") { ",m+=" if ("+p.usePattern(jn)+".test("+ie+")) { ",P.errorPath=p.util.getPathExpr(p.errorPath,ie,p.opts.jsonPointers),on=V+"["+ie+"]",P.dataPathArr[He]=ie,Yt=p.validate(P),P.baseId=tt,p.util.varOccurences(Yt,Te)<2?m+=" "+p.util.varReplace(Yt,Te,on)+" ":m+=" var "+Te+" = "+on+"; "+Yt+" ",W&&(m+=" if (!"+oe+") break; "),m+=" } ",W&&(m+=" else "+oe+" = true; "),m+=" } ",W&&(m+=" if ("+oe+") { ",K+="}"))}return W&&(m+=" "+K+" if ("+X+" == errors) {"),m}},6611:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="errs__"+q,P=p.util.copy(p);P.level++;var oe="valid"+P.level;if(m+="var "+X+" = errors;",p.opts.strictKeywords?"object"==typeof I&&Object.keys(I).length>0||!1===I:p.util.schemaHasRules(I,p.RULES.all)){P.schema=I,P.schemaPath=G,P.errSchemaPath=T;var ie="key"+q,Me="idx"+q,He="i"+q,Te="' + "+ie+" + '",Je="data"+(P.dataLevel=p.dataLevel+1),ke="dataProperties"+q,gt=p.opts.ownProperties,et=p.baseId;gt&&(m+=" var "+ke+" = undefined; "),m+=gt?" "+ke+" = "+ke+" || Object.keys("+V+"); for (var "+Me+"=0; "+Me+"<"+ke+".length; "+Me+"++) { var "+ie+" = "+ke+"["+Me+"]; ":" for (var "+ie+" in "+V+") { ",m+=" var startErrs"+q+" = errors; ";var Ne=ie,st=p.compositeRule;p.compositeRule=P.compositeRule=!0;var Ge=p.validate(P);P.baseId=et,p.util.varOccurences(Ge,Je)<2?m+=" "+p.util.varReplace(Ge,Je,Ne)+" ":m+=" var "+Je+" = "+Ne+"; "+Ge+" ",p.compositeRule=P.compositeRule=st,m+=" if (!"+oe+") { for (var "+He+"=startErrs"+q+"; "+He+"{"use strict";ut.exports=function(p,z,k){var X,P,m=" ",F=p.dataLevel,I=p.schema[z],G=p.errSchemaPath+"/"+z,T=!p.opts.allErrors,W="data"+(F||""),V="valid"+p.level;if("#"==I||"#/"==I)p.isRoot?(X=p.async,P="validate"):(X=!0===p.root.schema.$async,P="root.refVal[0]");else{var K=p.resolveRef(p.baseId,I,p.isRoot);if(void 0===K){var oe=p.MissingRefError.message(p.baseId,I);if("fail"==p.opts.missingRefs){p.logger.error(oe),(ie=ie||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(G)+" , params: { ref: '"+p.util.escapeQuotes(I)+"' } ",!1!==p.opts.messages&&(m+=" , message: 'can\\'t resolve reference "+p.util.escapeQuotes(I)+"' "),p.opts.verbose&&(m+=" , schema: "+p.util.toQuotedString(I)+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+W+" "),m+=" } "):m+=" {} ";var Me=m;m=ie.pop(),m+=!p.compositeRule&&T?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T&&(m+=" if (false) { ")}else{if("ignore"!=p.opts.missingRefs)throw new p.MissingRefError(p.baseId,I,oe);p.logger.warn(oe),T&&(m+=" if (true) { ")}}else if(K.inline){var He=p.util.copy(p);He.level++;var Te="valid"+He.level;He.schema=K.schema,He.schemaPath="",He.errSchemaPath=I,m+=" "+p.validate(He).replace(/validate\.schema/g,K.code)+" ",T&&(m+=" if ("+Te+") { ")}else X=!0===K.$async||p.async&&!1!==K.$async,P=K.code}if(P){var ie;(ie=ie||[]).push(m),m="",m+=p.opts.passContext?" "+P+".call(this, ":" "+P+"( ",m+=" "+W+", (dataPath || '')",'""'!=p.errorPath&&(m+=" + "+p.errorPath);var gt=m+=" , "+(F?"data"+(F-1||""):"parentData")+" , "+(F?p.dataPathArr[F]:"parentDataProperty")+", rootData) ";if(m=ie.pop(),X){if(!p.async)throw new Error("async schema referenced by sync schema");T&&(m+=" var "+V+"; "),m+=" try { await "+gt+"; ",T&&(m+=" "+V+" = true; "),m+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",T&&(m+=" "+V+" = false; "),m+=" } ",T&&(m+=" if ("+V+") { ")}else m+=" if (!"+gt+") { if (vErrors === null) vErrors = "+P+".errors; else vErrors = vErrors.concat("+P+".errors); errors = vErrors.length; } ",T&&(m+=" else { ")}return m}},5051:ut=>{"use strict";ut.exports=function(p,z,k){var m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;P&&(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ");var oe="schema"+q;if(!P)if(I.length0||!1===Je:p.util.schemaHasRules(Je,p.RULES.all))||(ie[ie.length]=He)}}else ie=I;if(P||ie.length){var ke=p.errorPath,gt=P||ie.length>=p.opts.loopRequired,et=p.opts.ownProperties;if(W)if(m+=" var missing"+q+"; ",gt){P||(m+=" var "+oe+" = validate.schema"+G+"; ");var Ge="' + "+(st="schema"+q+"["+(Ne="i"+q)+"]")+" + '";p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPathExpr(ke,st,p.opts.jsonPointers)),m+=" var "+X+" = true; ",P&&(m+=" if (schema"+q+" === undefined) "+X+" = true; else if (!Array.isArray(schema"+q+")) "+X+" = false; else {"),m+=" for (var "+Ne+" = 0; "+Ne+" < "+oe+".length; "+Ne+"++) { "+X+" = "+V+"["+oe+"["+Ne+"]] !== undefined ",et&&(m+=" && Object.prototype.hasOwnProperty.call("+V+", "+oe+"["+Ne+"]) "),m+="; if (!"+X+") break; } ",P&&(m+=" } "),(Fe=Fe||[]).push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+Ge+"' } ",!1!==p.opts.messages&&(m+=" , message: '",m+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Ge+"\\'",m+="' "),p.opts.verbose&&(m+=" , schema: validate.schema"+G+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var ge=m;m=Fe.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+ge+"]); ":" validate.errors = ["+ge+"]; return false; ":" var err = "+ge+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { "}else{m+=" if ( ";var Fe,Oe=ie;if(Oe)for(var Ne=-1,Re=Oe.length-1;Ne{"use strict";ut.exports=function(p,z,k){var K,m=" ",q=p.level,F=p.dataLevel,I=p.schema[z],G=p.schemaPath+p.util.getProperty(z),T=p.errSchemaPath+"/"+z,W=!p.opts.allErrors,V="data"+(F||""),X="valid"+q,P=p.opts.$data&&I&&I.$data;if(P?(m+=" var schema"+q+" = "+p.util.getData(I.$data,F,p.dataPathArr)+"; ",K="schema"+q):K=I,(I||P)&&!1!==p.opts.uniqueItems){P&&(m+=" var "+X+"; if ("+K+" === false || "+K+" === undefined) "+X+" = true; else if (typeof "+K+" != 'boolean') "+X+" = false; else { "),m+=" var i = "+V+".length , "+X+" = true , j; if (i > 1) { ";var oe=p.schema.items&&p.schema.items.type,ie=Array.isArray(oe);!oe||"object"==oe||"array"==oe||ie&&(oe.indexOf("object")>=0||oe.indexOf("array")>=0)?m+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+V+"[i], "+V+"[j])) { "+X+" = false; break outer; } } } ":(m+=" var itemIndices = {}, item; for (;i--;) { var item = "+V+"[i]; ",m+=" if ("+p.util["checkDataType"+(ie?"s":"")](oe,"item",p.opts.strictNumbers,!0)+") continue; ",ie&&(m+=" if (typeof item == 'string') item = '\"' + item; "),m+=" if (typeof itemIndices[item] == 'number') { "+X+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),m+=" } ",P&&(m+=" } ");var He=He||[];He.push(m+=" if (!"+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { i: i, j: j } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),p.opts.verbose&&(m+=" , schema: ",m+=P?"validate.schema"+G:""+I,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+V+" "),m+=" } "):m+=" {} ";var Te=m;m=He.pop(),m+=!p.compositeRule&&W?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",W&&(m+=" else { ")}else W&&(m+=" if (true) { ");return m}},604:ut=>{"use strict";ut.exports=function(p,z,k){var m="",q=!0===p.schema.$async,F=p.util.schemaHasRulesExcept(p.schema,p.RULES.all,"$ref"),I=p.self._getId(p.schema);if(p.opts.strictKeywords){var G=p.util.schemaUnknownRules(p.schema,p.RULES.keywords);if(G){var T="unknown keyword: "+G;if("log"!==p.opts.strictKeywords)throw new Error(T);p.logger.warn(T)}}if(p.isTop&&(m+=" var validate = ",q&&(p.async=!0,m+="async "),m+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",I&&(p.opts.sourceCode||p.opts.processCode)&&(m+=" /*# sourceURL="+I+" */ ")),"boolean"==typeof p.schema||!F&&!p.schema.$ref){var W=p.level,V=p.dataLevel,X=p.schema[z="false schema"],P=p.schemaPath+p.util.getProperty(z),K=p.errSchemaPath+"/"+z,Je=!p.opts.allErrors,oe="data"+(V||""),Xe="valid"+W;if(!1===p.schema){p.isTop?Je=!0:m+=" var "+Xe+" = false; ",(ie=ie||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(K)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'boolean schema is false' "),p.opts.verbose&&(m+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+oe+" "),m+=" } "):m+=" {} ";var Me=m;m=ie.pop(),m+=!p.compositeRule&&Je?p.async?" throw new ValidationError(["+Me+"]); ":" validate.errors = ["+Me+"]; return false; ":" var err = "+Me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else m+=p.isTop?q?" return data; ":" validate.errors = null; return true; ":" var "+Xe+" = true; ";return p.isTop&&(m+=" }; return validate; "),m}if(p.isTop){var He=p.isTop;if(W=p.level=0,V=p.dataLevel=0,oe="data",p.rootId=p.resolve.fullPath(p.self._getId(p.root.schema)),p.baseId=p.baseId||p.rootId,delete p.isTop,p.dataPathArr=[""],void 0!==p.schema.default&&p.opts.useDefaults&&p.opts.strictDefaults){var Te="default is ignored in the schema root";if("log"!==p.opts.strictDefaults)throw new Error(Te);p.logger.warn(Te)}m+=" var vErrors = null; ",m+=" var errors = 0; ",m+=" if (rootData === undefined) rootData = data; "}else{if(W=p.level,oe="data"+((V=p.dataLevel)||""),I&&(p.baseId=p.resolve.url(p.baseId,I)),q&&!p.async)throw new Error("async schema in sync schema");m+=" var errs_"+W+" = errors;"}Xe="valid"+W,Je=!p.opts.allErrors;var ke="",gt="",Ne=p.schema.type,st=Array.isArray(Ne);if(Ne&&p.opts.nullable&&!0===p.schema.nullable&&(st?-1==Ne.indexOf("null")&&(Ne=Ne.concat("null")):"null"!=Ne&&(Ne=[Ne,"null"],st=!0)),st&&1==Ne.length&&(Ne=Ne[0],st=!1),p.schema.$ref&&F){if("fail"==p.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+p.errSchemaPath+'" (see option extendRefs)');!0!==p.opts.extendRefs&&(F=!1,p.logger.warn('$ref: keywords ignored in schema at path "'+p.errSchemaPath+'"'))}if(p.schema.$comment&&p.opts.$comment&&(m+=" "+p.RULES.all.$comment.code(p,"$comment")),Ne){if(p.opts.coerceTypes)var Ge=p.util.coerceToTypes(p.opts.coerceTypes,Ne);var Fe=p.RULES.types[Ne];if(Ge||st||!0===Fe||Fe&&!ri(Fe)){if(P=p.schemaPath+".type",K=p.errSchemaPath+"/type",P=p.schemaPath+".type",K=p.errSchemaPath+"/type",m+=" if ("+p.util[st?"checkDataTypes":"checkDataType"](Ne,oe,p.opts.strictNumbers,!0)+") { ",Ge){var Oe="dataType"+W,tt="coerced"+W;m+=" var "+Oe+" = typeof "+oe+"; var "+tt+" = undefined; ","array"==p.opts.coerceTypes&&(m+=" if ("+Oe+" == 'object' && Array.isArray("+oe+") && "+oe+".length == 1) { "+oe+" = "+oe+"[0]; "+Oe+" = typeof "+oe+"; if ("+p.util.checkDataType(p.schema.type,oe,p.opts.strictNumbers)+") "+tt+" = "+oe+"; } "),m+=" if ("+tt+" !== undefined) ; ";var Re=Ge;if(Re)for(var mt,St=-1,Lt=Re.length-1;St{"use strict";var z=/^[a-z_$][a-z0-9_$-]*$/i,k=p(5237),m=p(8606);ut.exports={add:function q(T,W){var V=this.RULES;if(V.keywords[T])throw new Error("Keyword "+T+" is already defined");if(!z.test(T))throw new Error("Keyword "+T+" is not a valid identifier");if(W){this.validateKeyword(W,!0);var X=W.type;if(Array.isArray(X))for(var P=0;P{var Se={utf8:{stringToBytes:function(p){return Se.bin.stringToBytes(unescape(encodeURIComponent(p)))},bytesToString:function(p){return decodeURIComponent(escape(Se.bin.bytesToString(p)))}},bin:{stringToBytes:function(p){for(var z=[],k=0;k{const z=p(4605),k={};for(const F of Object.keys(z))k[z[F]]=F;const m={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};ut.exports=m;for(const F of Object.keys(m)){if(!("channels"in m[F]))throw new Error("missing channels property: "+F);if(!("labels"in m[F]))throw new Error("missing channel labels property: "+F);if(m[F].labels.length!==m[F].channels)throw new Error("channel and label counts mismatch: "+F);const{channels:I,labels:G}=m[F];delete m[F].channels,delete m[F].labels,Object.defineProperty(m[F],"channels",{value:I}),Object.defineProperty(m[F],"labels",{value:G})}function q(F,I){return(F[0]-I[0])**2+(F[1]-I[1])**2+(F[2]-I[2])**2}m.rgb.hsl=function(F){const I=F[0]/255,G=F[1]/255,T=F[2]/255,W=Math.min(I,G,T),V=Math.max(I,G,T),X=V-W;let P,K;V===W?P=0:I===V?P=(G-T)/X:G===V?P=2+(T-I)/X:T===V&&(P=4+(I-G)/X),P=Math.min(60*P,360),P<0&&(P+=360);const oe=(W+V)/2;return K=V===W?0:oe<=.5?X/(V+W):X/(2-V-W),[P,100*K,100*oe]},m.rgb.hsv=function(F){let I,G,T,W,V;const X=F[0]/255,P=F[1]/255,K=F[2]/255,oe=Math.max(X,P,K),ie=oe-Math.min(X,P,K),Me=function(He){return(oe-He)/6/ie+.5};return 0===ie?(W=0,V=0):(V=ie/oe,I=Me(X),G=Me(P),T=Me(K),X===oe?W=T-G:P===oe?W=1/3+I-T:K===oe&&(W=2/3+G-I),W<0?W+=1:W>1&&(W-=1)),[360*W,100*V,100*oe]},m.rgb.hwb=function(F){const I=F[0],G=F[1];let T=F[2];const W=m.rgb.hsl(F)[0],V=1/255*Math.min(I,Math.min(G,T));return T=1-1/255*Math.max(I,Math.max(G,T)),[W,100*V,100*T]},m.rgb.cmyk=function(F){const I=F[0]/255,G=F[1]/255,T=F[2]/255,W=Math.min(1-I,1-G,1-T);return[100*((1-I-W)/(1-W)||0),100*((1-G-W)/(1-W)||0),100*((1-T-W)/(1-W)||0),100*W]},m.rgb.keyword=function(F){const I=k[F];if(I)return I;let T,G=1/0;for(const W of Object.keys(z)){const X=q(F,z[W]);X.04045?((I+.055)/1.055)**2.4:I/12.92,G=G>.04045?((G+.055)/1.055)**2.4:G/12.92,T=T>.04045?((T+.055)/1.055)**2.4:T/12.92,[100*(.4124*I+.3576*G+.1805*T),100*(.2126*I+.7152*G+.0722*T),100*(.0193*I+.1192*G+.9505*T)]},m.rgb.lab=function(F){const I=m.rgb.xyz(F);let G=I[0],T=I[1],W=I[2];return G/=95.047,T/=100,W/=108.883,G=G>.008856?G**(1/3):7.787*G+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,W=W>.008856?W**(1/3):7.787*W+16/116,[116*T-16,500*(G-T),200*(T-W)]},m.hsl.rgb=function(F){const I=F[0]/360,G=F[1]/100,T=F[2]/100;let W,V,X;if(0===G)return X=255*T,[X,X,X];W=T<.5?T*(1+G):T+G-T*G;const P=2*T-W,K=[0,0,0];for(let oe=0;oe<3;oe++)V=I+1/3*-(oe-1),V<0&&V++,V>1&&V--,X=6*V<1?P+6*(W-P)*V:2*V<1?W:3*V<2?P+(W-P)*(2/3-V)*6:P,K[oe]=255*X;return K},m.hsl.hsv=function(F){const I=F[0];let G=F[1]/100,T=F[2]/100,W=G;const V=Math.max(T,.01);return T*=2,G*=T<=1?T:2-T,W*=V<=1?V:2-V,[I,100*(0===T?2*W/(V+W):2*G/(T+G)),(T+G)/2*100]},m.hsv.rgb=function(F){const I=F[0]/60,G=F[1]/100;let T=F[2]/100;const W=Math.floor(I)%6,V=I-Math.floor(I),X=255*T*(1-G),P=255*T*(1-G*V),K=255*T*(1-G*(1-V));switch(T*=255,W){case 0:return[T,K,X];case 1:return[P,T,X];case 2:return[X,T,K];case 3:return[X,P,T];case 4:return[K,X,T];case 5:return[T,X,P]}},m.hsv.hsl=function(F){const I=F[0],G=F[1]/100,T=F[2]/100,W=Math.max(T,.01);let V,X;X=(2-G)*T;const P=(2-G)*W;return V=G*W,V/=P<=1?P:2-P,V=V||0,X/=2,[I,100*V,100*X]},m.hwb.rgb=function(F){const I=F[0]/360;let G=F[1]/100,T=F[2]/100;const W=G+T;let V;W>1&&(G/=W,T/=W);const X=Math.floor(6*I),P=1-T;V=6*I-X,1&X&&(V=1-V);const K=G+V*(P-G);let oe,ie,Me;switch(X){default:case 6:case 0:oe=P,ie=K,Me=G;break;case 1:oe=K,ie=P,Me=G;break;case 2:oe=G,ie=P,Me=K;break;case 3:oe=G,ie=K,Me=P;break;case 4:oe=K,ie=G,Me=P;break;case 5:oe=P,ie=G,Me=K}return[255*oe,255*ie,255*Me]},m.cmyk.rgb=function(F){const G=F[1]/100,T=F[2]/100,W=F[3]/100;return[255*(1-Math.min(1,F[0]/100*(1-W)+W)),255*(1-Math.min(1,G*(1-W)+W)),255*(1-Math.min(1,T*(1-W)+W))]},m.xyz.rgb=function(F){const I=F[0]/100,G=F[1]/100,T=F[2]/100;let W,V,X;return W=3.2406*I+-1.5372*G+-.4986*T,V=-.9689*I+1.8758*G+.0415*T,X=.0557*I+-.204*G+1.057*T,W=W>.0031308?1.055*W**(1/2.4)-.055:12.92*W,V=V>.0031308?1.055*V**(1/2.4)-.055:12.92*V,X=X>.0031308?1.055*X**(1/2.4)-.055:12.92*X,W=Math.min(Math.max(0,W),1),V=Math.min(Math.max(0,V),1),X=Math.min(Math.max(0,X),1),[255*W,255*V,255*X]},m.xyz.lab=function(F){let I=F[0],G=F[1],T=F[2];return I/=95.047,G/=100,T/=108.883,I=I>.008856?I**(1/3):7.787*I+16/116,G=G>.008856?G**(1/3):7.787*G+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,[116*G-16,500*(I-G),200*(G-T)]},m.lab.xyz=function(F){let W,V,X;V=(F[0]+16)/116,W=F[1]/500+V,X=V-F[2]/200;const P=V**3,K=W**3,oe=X**3;return V=P>.008856?P:(V-16/116)/7.787,W=K>.008856?K:(W-16/116)/7.787,X=oe>.008856?oe:(X-16/116)/7.787,W*=95.047,V*=100,X*=108.883,[W,V,X]},m.lab.lch=function(F){const I=F[0],G=F[1],T=F[2];let W;return W=360*Math.atan2(T,G)/2/Math.PI,W<0&&(W+=360),[I,Math.sqrt(G*G+T*T),W]},m.lch.lab=function(F){const G=F[1],W=F[2]/360*2*Math.PI;return[F[0],G*Math.cos(W),G*Math.sin(W)]},m.rgb.ansi16=function(F,I=null){const[G,T,W]=F;let V=null===I?m.rgb.hsv(F)[2]:I;if(V=Math.round(V/50),0===V)return 30;let X=30+(Math.round(W/255)<<2|Math.round(T/255)<<1|Math.round(G/255));return 2===V&&(X+=60),X},m.hsv.ansi16=function(F){return m.rgb.ansi16(m.hsv.rgb(F),F[2])},m.rgb.ansi256=function(F){const I=F[0],G=F[1],T=F[2];return I===G&&G===T?I<8?16:I>248?231:Math.round((I-8)/247*24)+232:16+36*Math.round(I/255*5)+6*Math.round(G/255*5)+Math.round(T/255*5)},m.ansi16.rgb=function(F){let I=F%10;if(0===I||7===I)return F>50&&(I+=3.5),I=I/10.5*255,[I,I,I];const G=.5*(1+~~(F>50));return[(1&I)*G*255,(I>>1&1)*G*255,(I>>2&1)*G*255]},m.ansi256.rgb=function(F){if(F>=232){const V=10*(F-232)+8;return[V,V,V]}let I;return F-=16,[Math.floor(F/36)/5*255,Math.floor((I=F%36)/6)/5*255,I%6/5*255]},m.rgb.hex=function(F){const G=(((255&Math.round(F[0]))<<16)+((255&Math.round(F[1]))<<8)+(255&Math.round(F[2]))).toString(16).toUpperCase();return"000000".substring(G.length)+G},m.hex.rgb=function(F){const I=F.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!I)return[0,0,0];let G=I[0];3===I[0].length&&(G=G.split("").map(P=>P+P).join(""));const T=parseInt(G,16);return[T>>16&255,T>>8&255,255&T]},m.rgb.hcg=function(F){const I=F[0]/255,G=F[1]/255,T=F[2]/255,W=Math.max(Math.max(I,G),T),V=Math.min(Math.min(I,G),T),X=W-V;let P,K;return P=X<1?V/(1-X):0,K=X<=0?0:W===I?(G-T)/X%6:W===G?2+(T-I)/X:4+(I-G)/X,K/=6,K%=1,[360*K,100*X,100*P]},m.hsl.hcg=function(F){const I=F[1]/100,G=F[2]/100,T=G<.5?2*I*G:2*I*(1-G);let W=0;return T<1&&(W=(G-.5*T)/(1-T)),[F[0],100*T,100*W]},m.hsv.hcg=function(F){const G=F[2]/100,T=F[1]/100*G;let W=0;return T<1&&(W=(G-T)/(1-T)),[F[0],100*T,100*W]},m.hcg.rgb=function(F){const G=F[1]/100,T=F[2]/100;if(0===G)return[255*T,255*T,255*T];const W=[0,0,0],V=F[0]/360%1*6,X=V%1,P=1-X;let K=0;switch(Math.floor(V)){case 0:W[0]=1,W[1]=X,W[2]=0;break;case 1:W[0]=P,W[1]=1,W[2]=0;break;case 2:W[0]=0,W[1]=1,W[2]=X;break;case 3:W[0]=0,W[1]=P,W[2]=1;break;case 4:W[0]=X,W[1]=0,W[2]=1;break;default:W[0]=1,W[1]=0,W[2]=P}return K=(1-G)*T,[255*(G*W[0]+K),255*(G*W[1]+K),255*(G*W[2]+K)]},m.hcg.hsv=function(F){const I=F[1]/100,T=I+F[2]/100*(1-I);let W=0;return T>0&&(W=I/T),[F[0],100*W,100*T]},m.hcg.hsl=function(F){const I=F[1]/100,T=F[2]/100*(1-I)+.5*I;let W=0;return T>0&&T<.5?W=I/(2*T):T>=.5&&T<1&&(W=I/(2*(1-T))),[F[0],100*W,100*T]},m.hcg.hwb=function(F){const I=F[1]/100,T=I+F[2]/100*(1-I);return[F[0],100*(T-I),100*(1-T)]},m.hwb.hcg=function(F){const T=1-F[2]/100,W=T-F[1]/100;let V=0;return W<1&&(V=(T-W)/(1-W)),[F[0],100*W,100*V]},m.apple.rgb=function(F){return[F[0]/65535*255,F[1]/65535*255,F[2]/65535*255]},m.rgb.apple=function(F){return[F[0]/255*65535,F[1]/255*65535,F[2]/255*65535]},m.gray.rgb=function(F){return[F[0]/100*255,F[0]/100*255,F[0]/100*255]},m.gray.hsl=function(F){return[0,0,F[0]]},m.gray.hsv=m.gray.hsl,m.gray.hwb=function(F){return[0,100,F[0]]},m.gray.cmyk=function(F){return[0,0,0,F[0]]},m.gray.lab=function(F){return[F[0],0,0]},m.gray.hex=function(F){const I=255&Math.round(F[0]/100*255),T=((I<<16)+(I<<8)+I).toString(16).toUpperCase();return"000000".substring(T.length)+T},m.rgb.gray=function(F){return[(F[0]+F[1]+F[2])/3/255*100]}},3205:(ut,Se,p)=>{const z=p(2348),k=p(8236),m={};Object.keys(z).forEach(G=>{m[G]={},Object.defineProperty(m[G],"channels",{value:z[G].channels}),Object.defineProperty(m[G],"labels",{value:z[G].labels});const T=k(G);Object.keys(T).forEach(V=>{const X=T[V];m[G][V]=function I(G){const T=function(...W){const V=W[0];if(null==V)return V;V.length>1&&(W=V);const X=G(W);if("object"==typeof X)for(let P=X.length,K=0;K1&&(W=V),G(W))};return"conversion"in G&&(T.conversion=G.conversion),T}(X)})}),ut.exports=m},8236:(ut,Se,p)=>{const z=p(2348);function q(I,G){return function(T){return G(I(T))}}function F(I,G){const T=[G[I].parent,I];let W=z[G[I].parent][I],V=G[I].parent;for(;G[V].parent;)T.unshift(G[V].parent),W=q(z[G[V].parent][V],W),V=G[V].parent;return W.conversion=T,W}ut.exports=function(I){const G=function m(I){const G=function k(){const I={},G=Object.keys(z);for(let T=G.length,W=0;W{"use strict";ut.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},9928:ut=>{var Se,p;Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ut.exports=p={rotl:function(z,k){return z<>>32-k},rotr:function(z,k){return z<<32-k|z>>>k},endian:function(z){if(z.constructor==Number)return 16711935&p.rotl(z,8)|4278255360&p.rotl(z,24);for(var k=0;k0;z--)k.push(Math.floor(256*Math.random()));return k},bytesToWords:function(z){for(var k=[],m=0,q=0;m>>5]|=z[m]<<24-q%32;return k},wordsToBytes:function(z){for(var k=[],m=0;m<32*z.length;m+=8)k.push(z[m>>>5]>>>24-m%32&255);return k},bytesToHex:function(z){for(var k=[],m=0;m>>4).toString(16)),k.push((15&z[m]).toString(16));return k.join("")},hexToBytes:function(z){for(var k=[],m=0;m>>6*(3-F)&63):"=");return k.join("")},base64ToBytes:function(z){z=z.replace(/[^A-Z0-9+\/]/gi,"");for(var k=[],m=0,q=0;m>>6-2*q);return k}}},243:ut=>{"use strict";var Se={single_source_shortest_paths:function(p,z,k){var m={},q={};q[z]=0;var I,G,T,W,V,P,F=Se.PriorityQueue.make();for(F.push(z,0);!F.empty();)for(T in W=(I=F.pop()).cost,V=p[G=I.value]||{})V.hasOwnProperty(T)&&(P=W+V[T],(typeof q[T]>"u"||q[T]>P)&&(q[T]=P,F.push(T,P),m[T]=G));if(typeof k<"u"&&typeof q[k]>"u"){var ie=["Could not find a path from ",z," to ",k,"."].join("");throw new Error(ie)}return m},extract_shortest_path_from_predecessor_list:function(p,z){for(var k=[],m=z;m;)k.push(m),m=p[m];return k.reverse(),k},find_path:function(p,z,k){var m=Se.single_source_shortest_paths(p,z,k);return Se.extract_shortest_path_from_predecessor_list(m,k)},PriorityQueue:{make:function(p){var m,z=Se.PriorityQueue,k={};for(m in p=p||{},z)z.hasOwnProperty(m)&&(k[m]=z[m]);return k.queue=[],k.sorter=p.sorter||z.default_sorter,k},default_sorter:function(p,z){return p.cost-z.cost},push:function(p,z){this.queue.push({value:p,cost:z}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};ut.exports=Se},3174:ut=>{"use strict";ut.exports=function(p){for(var z=[],k=p.length,m=0;m=55296&&q<=56319&&k>m+1){var F=p.charCodeAt(m+1);F>=56320&&F<=57343&&(q=1024*(q-55296)+F-56320+65536,m+=1)}q<128?z.push(q):q<2048?(z.push(q>>6|192),z.push(63&q|128)):q<55296||q>=57344&&q<65536?(z.push(q>>12|224),z.push(q>>6&63|128),z.push(63&q|128)):q>=65536&&q<=1114111?(z.push(q>>18|240),z.push(q>>12&63|128),z.push(q>>6&63|128),z.push(63&q|128)):z.push(239,191,189)}return new Uint8Array(z).buffer}},362:ut=>{"use strict";ut.exports=function Se(p,z){if(p===z)return!0;if(p&&z&&"object"==typeof p&&"object"==typeof z){if(p.constructor!==z.constructor)return!1;var k,m,q;if(Array.isArray(p)){if((k=p.length)!=z.length)return!1;for(m=k;0!=m--;)if(!Se(p[m],z[m]))return!1;return!0}if(p.constructor===RegExp)return p.source===z.source&&p.flags===z.flags;if(p.valueOf!==Object.prototype.valueOf)return p.valueOf()===z.valueOf();if(p.toString!==Object.prototype.toString)return p.toString()===z.toString();if((k=(q=Object.keys(p)).length)!==Object.keys(z).length)return!1;for(m=k;0!=m--;)if(!Object.prototype.hasOwnProperty.call(z,q[m]))return!1;for(m=k;0!=m--;){var F=q[m];if(!Se(p[F],z[F]))return!1}return!0}return p!=p&&z!=z}},8861:ut=>{"use strict";ut.exports=function(Se,p){p||(p={}),"function"==typeof p&&(p={cmp:p});var z="boolean"==typeof p.cycles&&p.cycles,k=p.cmp&&function(q){return function(F){return function(I,G){return q({key:I,value:F[I]},{key:G,value:F[G]})}}}(p.cmp),m=[];return function q(F){if(F&&F.toJSON&&"function"==typeof F.toJSON&&(F=F.toJSON()),void 0!==F){if("number"==typeof F)return isFinite(F)?""+F:"null";if("object"!=typeof F)return JSON.stringify(F);var I,G;if(Array.isArray(F)){for(G="[",I=0;I0&&O[O.length-1])&&(6===Ue[0]||2===Ue[0])){x=0;continue}if(3===Ue[0]&&(!O||Ue[1]>O[0]&&Ue[1]=55296&&S<=56319&&x>10),J%1024+56320),(S+1===x||w.length>16384)&&(O+=String.fromCharCode.apply(String,w),w.length=0)}return O},V="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",X=typeof Uint8Array>"u"?[]:new Uint8Array(256),P=0;P<64;P++)X[V.charCodeAt(P)]=P;for(var K="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",oe=typeof Uint8Array>"u"?[]:new Uint8Array(256),ie=0;ie<64;ie++)oe[K.charCodeAt(ie)]=ie;for(var Lt=function(v,g,x){return v.slice?v.slice(g,x):new Uint16Array(Array.prototype.slice.call(v,g,x))},On=function(){function v(g,x,w,S,O,J){this.initialValue=g,this.errorValue=x,this.highStart=w,this.highValueIndex=S,this.index=O,this.data=J}return v.prototype.get=function(g){var x;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[x=((x=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[x=((x=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[x=((x=this.index[x+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},v}(),_i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",jn=typeof Uint8Array>"u"?[]:new Uint8Array(256),Pi=0;Pi<64;Pi++)jn[_i.charCodeAt(Pi)]=Pi;var x,w,S,J,pe,ir=10,ri=13,So=15,Er=17,_o=18,tl=19,mf=20,Ou=21,Js=22,ea=24,Zo=25,xl=26,Ac=27,Bd=28,gc=30,Gc=32,pf=33,Lu=34,sp=35,ma=37,Wc=38,Uu=39,Ji=40,gf=42,jb=[9001,65288],Hi="\xd7",Be=(x=function(v){var w,O,J,pe,me,g=.75*v.length,x=v.length,S=0;"="===v[v.length-1]&&(g--,"="===v[v.length-2]&&g--);var Ue=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),We=Array.isArray(Ue)?Ue:new Uint8Array(Ue);for(w=0;w>4,We[S++]=(15&J)<<4|pe>>2,We[S++]=(3&pe)<<6|63&me;return Ue}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),w=Array.isArray(x)?function(v){for(var g=v.length,x=[],w=0;w0;){var pe=w[--O];if(Array.isArray(v)?-1!==v.indexOf(pe):v===pe)for(var me=x;me<=w.length;){var J;if((J=w[++me])===g)return!0;if(J!==ir)break}if(pe!==ir)break}return!1},Qi=function(v,g){for(var x=v;x>=0;){var w=g[x];if(w!==ir)return w;x--}return 0},lo=function(v,g,x,w,S){if(0===x[w])return Hi;var O=w-1;if(Array.isArray(S)&&!0===S[O])return Hi;var J=O-1,pe=O+1,me=g[O],Ue=J>=0?g[J]:0,We=g[pe];if(2===me&&3===We)return Hi;if(-1!==De.indexOf(me))return"!";if(-1!==De.indexOf(We)||-1!==yt.indexOf(We))return Hi;if(8===Qi(O,g))return"\xf7";if(11===Be.get(v[O])||(me===Gc||me===pf)&&11===Be.get(v[pe])||7===me||7===We||9===me||-1===[ir,ri,So].indexOf(me)&&9===We||-1!==[Er,_o,tl,ea,Bd].indexOf(We)||Qi(O,g)===Js||Qr(23,Js,O,g)||Qr([Er,_o],Ou,O,g)||Qr(12,12,O,g))return Hi;if(me===ir)return"\xf7";if(23===me||23===We)return Hi;if(16===We||16===me)return"\xf7";if(-1!==[ri,So,Ou].indexOf(We)||14===me||36===Ue&&-1!==ct.indexOf(me)||me===Bd&&36===We||We===mf||-1!==fe.indexOf(We)&&me===Zo||-1!==fe.indexOf(me)&&We===Zo||me===Ac&&-1!==[ma,Gc,pf].indexOf(We)||-1!==[ma,Gc,pf].indexOf(me)&&We===xl||-1!==fe.indexOf(me)&&-1!==Qe.indexOf(We)||-1!==Qe.indexOf(me)&&-1!==fe.indexOf(We)||-1!==[Ac,xl].indexOf(me)&&(We===Zo||-1!==[Js,So].indexOf(We)&&g[pe+1]===Zo)||-1!==[Js,So].indexOf(me)&&We===Zo||me===Zo&&-1!==[Zo,Bd,ea].indexOf(We))return Hi;if(-1!==[Zo,Bd,ea,Er,_o].indexOf(We))for(var lt=O;lt>=0;){if((Et=g[lt])===Zo)return Hi;if(-1===[Bd,ea].indexOf(Et))break;lt--}if(-1!==[Ac,xl].indexOf(We))for(lt=-1!==[Er,_o].indexOf(me)?J:O;lt>=0;){var Et;if((Et=g[lt])===Zo)return Hi;if(-1===[Bd,ea].indexOf(Et))break;lt--}if(Wc===me&&-1!==[Wc,Uu,Lu,sp].indexOf(We)||-1!==[Uu,Lu].indexOf(me)&&-1!==[Uu,Ji].indexOf(We)||-1!==[Ji,sp].indexOf(me)&&We===Ji||-1!==bi.indexOf(me)&&-1!==[mf,xl].indexOf(We)||-1!==bi.indexOf(We)&&me===Ac||-1!==fe.indexOf(me)&&-1!==fe.indexOf(We)||me===ea&&-1!==fe.indexOf(We)||-1!==fe.concat(Zo).indexOf(me)&&We===Js&&-1===jb.indexOf(v[pe])||-1!==fe.concat(Zo).indexOf(We)&&me===_o)return Hi;if(41===me&&41===We){for(var bn=x[O],en=1;bn>0&&41===g[--bn];)en++;if(en%2!=0)return Hi}return me===Gc&&We===pf?Hi:"\xf7"},ko=function(v,g){g||(g={lineBreak:"normal",wordBreak:"normal"});var x=function(v,g){void 0===g&&(g="strict");var x=[],w=[],S=[];return v.forEach(function(O,J){var pe=Be.get(O);if(pe>50?(S.push(!0),pe-=50):S.push(!1),-1!==["normal","auto","loose"].indexOf(g)&&-1!==[8208,8211,12316,12448].indexOf(O))return w.push(J),x.push(16);if(4===pe||11===pe){if(0===J)return w.push(J),x.push(gc);var me=x[J-1];return-1===yn.indexOf(me)?(w.push(w[J-1]),x.push(me)):(w.push(J),x.push(gc))}return w.push(J),31===pe?x.push("strict"===g?Ou:ma):pe===gf||29===pe?x.push(gc):43===pe?x.push(O>=131072&&O<=196605||O>=196608&&O<=262141?ma:gc):void x.push(pe)}),[w,x,S]}(v,g.lineBreak),w=x[0],S=x[1],O=x[2];return("break-all"===g.wordBreak||"break-word"===g.wordBreak)&&(S=S.map(function(pe){return-1!==[Zo,gc,gf].indexOf(pe)?ma:pe})),[w,S,"keep-all"===g.wordBreak?O.map(function(pe,me){return pe&&v[me]>=19968&&v[me]<=40959}):void 0]},zr=function(){function v(g,x,w,S){this.codePoints=g,this.required="!"===x,this.start=w,this.end=S}return v.prototype.slice=function(){return W.apply(void 0,this.codePoints.slice(this.start,this.end))},v}(),ps=function(v){return v>=48&&v<=57},dp=function(v){return ps(v)||v>=65&&v<=70||v>=97&&v<=102},xf=function(v){return 10===v||9===v||32===v},Cf=function(v){return function(v){return function(v){return v>=97&&v<=122}(v)||function(v){return v>=65&&v<=90}(v)}(v)||function(v){return v>=128}(v)||95===v},iv=function(v){return Cf(v)||ps(v)||45===v},$c=function(v){return v>=0&&v<=8||11===v||v>=14&&v<=31||127===v},nl=function(v,g){return 92===v&&10!==g},hp=function(v,g,x){return 45===v?Cf(g)||nl(g,x):!!Cf(v)||!(92!==v||!nl(v,g))},ci=function(v,g,x){return 43===v||45===v?!!ps(g)||46===g&&ps(x):ps(46===v?g:v)},_r=function(v){var g=0,x=1;(43===v[g]||45===v[g])&&(45===v[g]&&(x=-1),g++);for(var w=[];ps(v[g]);)w.push(v[g++]);var S=w.length?parseInt(W.apply(void 0,w),10):0;46===v[g]&&g++;for(var O=[];ps(v[g]);)O.push(v[g++]);var J=O.length,pe=J?parseInt(W.apply(void 0,O),10):0;(69===v[g]||101===v[g])&&g++;var me=1;(43===v[g]||45===v[g])&&(45===v[g]&&(me=-1),g++);for(var Ue=[];ps(v[g]);)Ue.push(v[g++]);var We=Ue.length?parseInt(W.apply(void 0,Ue),10):0;return x*(S+pe*Math.pow(10,-J))*Math.pow(10,me*We)},F8={type:2},OF={type:3},LF={type:4},D8={type:13},NF={type:8},rv={type:21},sr={type:9},ov={type:10},Xx={type:11},Aa={type:12},Kx={type:14},sv={type:23},k8={type:1},fp={type:25},av={type:24},vg={type:26},UF={type:27},HF={type:28},VF={type:29},Yx={type:31},Rd={type:32},Zx=function(){function v(){this._value=[]}return v.prototype.write=function(g){this._value=this._value.concat(T(g))},v.prototype.read=function(){for(var g=[],x=this.consumeToken();x!==Rd;)g.push(x),x=this.consumeToken();return g},v.prototype.consumeToken=function(){var g=this.consumeCodePoint();switch(g){case 34:return this.consumeStringToken(34);case 35:var x=this.peekCodePoint(0),w=this.peekCodePoint(1),S=this.peekCodePoint(2);if(iv(x)||nl(w,S)){var O=hp(x,w,S)?2:1;return{type:5,value:this.consumeName(),flags:O}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),D8;break;case 39:return this.consumeStringToken(39);case 40:return F8;case 41:return OF;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Kx;break;case 43:if(ci(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 44:return LF;case 45:var pe=g,me=this.peekCodePoint(0),Ue=this.peekCodePoint(1);if(ci(pe,me,Ue))return this.reconsumeCodePoint(g),this.consumeNumericToken();if(hp(pe,me,Ue))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();if(45===me&&62===Ue)return this.consumeCodePoint(),this.consumeCodePoint(),av;break;case 46:if(ci(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var We=this.consumeCodePoint();if(42===We&&47===(We=this.consumeCodePoint()))return this.consumeToken();if(-1===We)return this.consumeToken()}break;case 58:return vg;case 59:return UF;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),fp;break;case 64:var lt=this.peekCodePoint(0),Et=this.peekCodePoint(1),bn=this.peekCodePoint(2);if(hp(lt,Et,bn))return{type:7,value:this.consumeName()};break;case 91:return HF;case 92:if(nl(g,this.peekCodePoint(0)))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();break;case 93:return VF;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),NF;break;case 123:return Xx;case 125:return Aa;case 117:case 85:var en=this.peekCodePoint(0),dn=this.peekCodePoint(1);return 43===en&&(dp(dn)||63===dn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(g),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),sr;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),rv;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ov;break;case-1:return Rd}return xf(g)?(this.consumeWhiteSpace(),Yx):ps(g)?(this.reconsumeCodePoint(g),this.consumeNumericToken()):Cf(g)?(this.reconsumeCodePoint(g),this.consumeIdentLikeToken()):{type:6,value:W(g)}},v.prototype.consumeCodePoint=function(){var g=this._value.shift();return typeof g>"u"?-1:g},v.prototype.reconsumeCodePoint=function(g){this._value.unshift(g)},v.prototype.peekCodePoint=function(g){return g>=this._value.length?-1:this._value[g]},v.prototype.consumeUnicodeRangeToken=function(){for(var g=[],x=this.consumeCodePoint();dp(x)&&g.length<6;)g.push(x),x=this.consumeCodePoint();for(var w=!1;63===x&&g.length<6;)g.push(x),x=this.consumeCodePoint(),w=!0;if(w)return{type:30,start:parseInt(W.apply(void 0,g.map(function(me){return 63===me?48:me})),16),end:parseInt(W.apply(void 0,g.map(function(me){return 63===me?70:me})),16)};var J=parseInt(W.apply(void 0,g),16);if(45===this.peekCodePoint(0)&&dp(this.peekCodePoint(1))){this.consumeCodePoint(),x=this.consumeCodePoint();for(var pe=[];dp(x)&&pe.length<6;)pe.push(x),x=this.consumeCodePoint();return{type:30,start:J,end:parseInt(W.apply(void 0,pe),16)}}return{type:30,start:J,end:J}},v.prototype.consumeIdentLikeToken=function(){var g=this.consumeName();return"url"===g.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:g}):{type:20,value:g}},v.prototype.consumeUrlToken=function(){var g=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var x=this.peekCodePoint(0);if(39===x||34===x){var w=this.consumeStringToken(this.consumeCodePoint());return 0===w.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:w.value}):(this.consumeBadUrlRemnants(),sv)}for(;;){var S=this.consumeCodePoint();if(-1===S||41===S)return{type:22,value:W.apply(void 0,g)};if(xf(S))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:W.apply(void 0,g)}):(this.consumeBadUrlRemnants(),sv);if(34===S||39===S||40===S||$c(S))return this.consumeBadUrlRemnants(),sv;if(92===S){if(!nl(S,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),sv;g.push(this.consumeEscapedCodePoint())}else g.push(S)}},v.prototype.consumeWhiteSpace=function(){for(;xf(this.peekCodePoint(0));)this.consumeCodePoint()},v.prototype.consumeBadUrlRemnants=function(){for(;;){var g=this.consumeCodePoint();if(41===g||-1===g)return;nl(g,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},v.prototype.consumeStringSlice=function(g){for(var w="";g>0;){var S=Math.min(5e4,g);w+=W.apply(void 0,this._value.splice(0,S)),g-=S}return this._value.shift(),w},v.prototype.consumeStringToken=function(g){for(var x="",w=0;;){var S=this._value[w];if(-1===S||void 0===S||S===g)return{type:0,value:x+=this.consumeStringSlice(w)};if(10===S)return this._value.splice(0,w),k8;if(92===S){var O=this._value[w+1];-1!==O&&void 0!==O&&(10===O?(x+=this.consumeStringSlice(w),w=-1,this._value.shift()):nl(S,O)&&(x+=this.consumeStringSlice(w),x+=W(this.consumeEscapedCodePoint()),w=-1))}w++}},v.prototype.consumeNumber=function(){var g=[],x=4,w=this.peekCodePoint(0);for((43===w||45===w)&&g.push(this.consumeCodePoint());ps(this.peekCodePoint(0));)g.push(this.consumeCodePoint());w=this.peekCodePoint(0);var S=this.peekCodePoint(1);if(46===w&&ps(S))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),x=8;ps(this.peekCodePoint(0));)g.push(this.consumeCodePoint());w=this.peekCodePoint(0),S=this.peekCodePoint(1);var O=this.peekCodePoint(2);if((69===w||101===w)&&((43===S||45===S)&&ps(O)||ps(S)))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),x=8;ps(this.peekCodePoint(0));)g.push(this.consumeCodePoint());return[_r(g),x]},v.prototype.consumeNumericToken=function(){var g=this.consumeNumber(),x=g[0],w=g[1],S=this.peekCodePoint(0),O=this.peekCodePoint(1),J=this.peekCodePoint(2);return hp(S,O,J)?{type:15,number:x,flags:w,unit:this.consumeName()}:37===S?(this.consumeCodePoint(),{type:16,number:x,flags:w}):{type:17,number:x,flags:w}},v.prototype.consumeEscapedCodePoint=function(){var g=this.consumeCodePoint();if(dp(g)){for(var x=W(g);dp(this.peekCodePoint(0))&&x.length<6;)x+=W(this.consumeCodePoint());xf(this.peekCodePoint(0))&&this.consumeCodePoint();var w=parseInt(x,16);return 0===w||function(v){return v>=55296&&v<=57343}(w)||w>1114111?65533:w}return-1===g?65533:g},v.prototype.consumeName=function(){for(var g="";;){var x=this.consumeCodePoint();if(iv(x))g+=W(x);else{if(!nl(x,this.peekCodePoint(0)))return this.reconsumeCodePoint(x),g;g+=W(this.consumeEscapedCodePoint())}}},v}(),jc=function(){function v(g){this._tokens=g}return v.create=function(g){var x=new Zx;return x.write(g),new v(x.read())},v.parseValue=function(g){return v.create(g).parseComponentValue()},v.parseValues=function(g){return v.create(g).parseComponentValues()},v.prototype.parseComponentValue=function(){for(var g=this.consumeToken();31===g.type;)g=this.consumeToken();if(32===g.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(g);var x=this.consumeComponentValue();do{g=this.consumeToken()}while(31===g.type);if(32===g.type)return x;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},v.prototype.parseComponentValues=function(){for(var g=[];;){var x=this.consumeComponentValue();if(32===x.type)return g;g.push(x),g.push()}},v.prototype.consumeComponentValue=function(){var g=this.consumeToken();switch(g.type){case 11:case 28:case 2:return this.consumeSimpleBlock(g.type);case 19:return this.consumeFunction(g)}return g},v.prototype.consumeSimpleBlock=function(g){for(var x={type:g,values:[]},w=this.consumeToken();;){if(32===w.type||QF(w,g))return x;this.reconsumeToken(w),x.values.push(this.consumeComponentValue()),w=this.consumeToken()}},v.prototype.consumeFunction=function(g){for(var x={name:g.value,values:[],type:18};;){var w=this.consumeToken();if(32===w.type||3===w.type)return x;this.reconsumeToken(w),x.values.push(this.consumeComponentValue())}},v.prototype.consumeToken=function(){var g=this._tokens.shift();return typeof g>"u"?Rd:g},v.prototype.reconsumeToken=function(g){this._tokens.unshift(g)},v}(),mp=function(v){return 15===v.type},ve=function(v){return 17===v.type},Sr=function(v){return 20===v.type},Qt=function(v){return 0===v.type},Mf=function(v,g){return Sr(v)&&v.value===g},yg=function(v){return 31!==v.type},bc=function(v){return 31!==v.type&&4!==v.type},vc=function(v){var g=[],x=[];return v.forEach(function(w){if(4===w.type){if(0===x.length)throw new Error("Error parsing function args, zero tokens for arg");return g.push(x),void(x=[])}31!==w.type&&x.push(w)}),x.length&&g.push(x),g},QF=function(v,g){return 11===g&&12===v.type||28===g&&29===v.type||2===g&&3===v.type},Od=function(v){return 17===v.type||15===v.type},To=function(v){return 16===v.type||Od(v)},qu=function(v){return v.length>1?[v[0],v[1]]:[v[0]]},Is={type:17,number:0,flags:4},Ef={type:16,number:50,flags:4},Ld={type:16,number:100,flags:4},Il=function(v,g,x){var w=v[0],S=v[1];return[jr(w,g),jr(typeof S<"u"?S:w,x)]},jr=function(v,g){if(16===v.type)return v.number/100*g;if(mp(v))switch(v.unit){case"rem":case"em":return 16*v.number;default:return v.number}return v.number},Wu_parse=function(v,g){if(15===g.type)switch(g.unit){case"deg":return Math.PI*g.number/180;case"grad":return Math.PI/200*g.number;case"rad":return g.number;case"turn":return 2*Math.PI*g.number}throw new Error("Unsupported angle type")},wg=function(v){return 15===v.type&&("deg"===v.unit||"grad"===v.unit||"rad"===v.unit||"turn"===v.unit)},zF=function(v){switch(v.filter(Sr).map(function(x){return x.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Is,Is];case"to top":case"bottom":return Da(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Is,Ld];case"to right":case"left":return Da(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Ld,Ld];case"to bottom":case"top":return Da(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Ld,Is];case"to left":case"right":return Da(270)}return 0},Da=function(v){return Math.PI*v/180},$u_parse=function(v,g){if(18===g.type){var x=Nd[g.name];if(typeof x>"u")throw new Error('Attempting to parse an unsupported color function "'+g.name+'"');return x(v,g.values)}if(5===g.type){if(3===g.value.length){var w=g.value.substring(0,1),S=g.value.substring(1,2),O=g.value.substring(2,3);return ka(parseInt(w+w,16),parseInt(S+S,16),parseInt(O+O,16),1)}if(4===g.value.length){w=g.value.substring(0,1),S=g.value.substring(1,2),O=g.value.substring(2,3);var J=g.value.substring(3,4);return ka(parseInt(w+w,16),parseInt(S+S,16),parseInt(O+O,16),parseInt(J+J,16)/255)}if(6===g.value.length)return w=g.value.substring(0,2),S=g.value.substring(2,4),O=g.value.substring(4,6),ka(parseInt(w,16),parseInt(S,16),parseInt(O,16),1);if(8===g.value.length)return w=g.value.substring(0,2),S=g.value.substring(2,4),O=g.value.substring(4,6),J=g.value.substring(6,8),ka(parseInt(w,16),parseInt(S,16),parseInt(O,16),parseInt(J,16)/255)}if(20===g.type){var pe=Fl[g.value.toUpperCase()];if(typeof pe<"u")return pe}return Fl.TRANSPARENT},zo=function(v){return!(255&v)},qo=function(v){var g=255&v,x=255&v>>8,w=255&v>>16,S=255&v>>24;return g<255?"rgba("+S+","+w+","+x+","+g/255+")":"rgb("+S+","+w+","+x+")"},ka=function(v,g,x,w){return(v<<24|g<<16|x<<8|Math.round(255*w))>>>0},qF=function(v,g){if(17===v.type)return v.number;if(16===v.type){var x=3===g?1:255;return 3===g?v.number/100*x:Math.round(v.number/100*x)}return 0},cv=function(v,g){var x=g.filter(bc);if(3===x.length){var w=x.map(qF);return ka(w[0],w[1],w[2],1)}if(4===x.length){var pe=x.map(qF);return ka(pe[0],pe[1],pe[2],pe[3])}return 0};function il(v,g,x){return x<0&&(x+=1),x>=1&&(x-=1),x<1/6?(g-v)*x*6+v:x<.5?g:x<2/3?6*(g-v)*(2/3-x)+v:v}var dr=function(v,g){var x=g.filter(bc),w=x[0],S=x[1],O=x[2],J=x[3],pe=(17===w.type?Da(w.number):Wu_parse(v,w))/(2*Math.PI),me=To(S)?S.number/100:0,Ue=To(O)?O.number/100:0,We=typeof J<"u"&&To(J)?jr(J,1):1;if(0===me)return ka(255*Ue,255*Ue,255*Ue,1);var lt=Ue<=.5?Ue*(me+1):Ue+me-Ue*me,Et=2*Ue-lt,bn=il(Et,lt,pe+1/3),en=il(Et,lt,pe),dn=il(Et,lt,pe-1/3);return ka(255*bn,255*en,255*dn,We)},Nd={hsl:dr,hsla:dr,rgb:cv,rgba:cv},Sf=function(v,g){return $u_parse(v,jc.create(g).parseComponentValue())},Fl={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},xg={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(v,g){return g.map(function(x){if(Sr(x))switch(x.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Cg={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ga=function(v,g){var x=$u_parse(v,g[0]),w=g[1];return w&&To(w)?{color:x,stop:w}:{color:x,stop:null}},Ct=function(v,g){var x=v[0],w=v[v.length-1];null===x.stop&&(x.stop=Is),null===w.stop&&(w.stop=Ld);for(var S=[],O=0,J=0;JO?me:O),O=me}else S.push(null)}var Ue=null;for(J=0;JJ.optimumDistance)?{optimumCorner:pe,optimumDistance:We}:J},{optimumDistance:S?1/0:-1/0,optimumCorner:null}).optimumCorner},gp=function(v,g){var x=Da(180),w=[];return vc(g).forEach(function(S,O){if(0===O){var J=S[0];if(20===J.type&&-1!==["top","left","right","bottom"].indexOf(J.value))return void(x=zF(S));if(wg(J))return void(x=(Wu_parse(v,J)+Da(270))%Da(360))}var pe=ga(v,S);w.push(pe)}),{angle:x,stops:w,type:1}},Mg="closest-side",eC="farthest-side",tC="closest-corner",ol="farthest-corner",hv="ellipse",rC="contain",Eg=function(v,g){var x=0,w=3,S=[],O=[];return vc(g).forEach(function(J,pe){var me=!0;if(0===pe?me=J.reduce(function(We,lt){if(Sr(lt))switch(lt.value){case"center":return O.push(Ef),!1;case"top":case"left":return O.push(Is),!1;case"right":case"bottom":return O.push(Ld),!1}else if(To(lt)||Od(lt))return O.push(lt),!1;return We},me):1===pe&&(me=J.reduce(function(We,lt){if(Sr(lt))switch(lt.value){case"circle":return x=0,!1;case hv:return x=1,!1;case rC:case Mg:return w=0,!1;case eC:return w=1,!1;case tC:return w=2,!1;case"cover":case ol:return w=3,!1}else if(Od(lt)||To(lt))return Array.isArray(w)||(w=[]),w.push(lt),!1;return We},me)),me){var Ue=ga(v,J);S.push(Ue)}}),{size:w,shape:x,stops:S,position:O,type:2}},fv_parse=function(v,g){if(22===g.type){var x={url:g.value,type:0};return v.cache.addImage(g.value),x}if(18===g.type){var w=bt[g.name];if(typeof w>"u")throw new Error('Attempting to parse an unsupported image function "'+g.name+'"');return w(v,g.values)}throw new Error("Unsupported image type "+g.type)};for(var bt={"linear-gradient":function(v,g){var x=Da(180),w=[];return vc(g).forEach(function(S,O){if(0===O){var J=S[0];if(20===J.type&&"to"===J.value)return void(x=zF(S));if(wg(J))return void(x=Wu_parse(v,J))}var pe=ga(v,S);w.push(pe)}),{angle:x,stops:w,type:1}},"-moz-linear-gradient":gp,"-ms-linear-gradient":gp,"-o-linear-gradient":gp,"-webkit-linear-gradient":gp,"radial-gradient":function(v,g){var x=0,w=3,S=[],O=[];return vc(g).forEach(function(J,pe){var me=!0;if(0===pe){var Ue=!1;me=J.reduce(function(lt,Et){if(Ue)if(Sr(Et))switch(Et.value){case"center":return O.push(Ef),lt;case"top":case"left":return O.push(Is),lt;case"right":case"bottom":return O.push(Ld),lt}else(To(Et)||Od(Et))&&O.push(Et);else if(Sr(Et))switch(Et.value){case"circle":return x=0,!1;case hv:return x=1,!1;case"at":return Ue=!0,!1;case Mg:return w=0,!1;case"cover":case eC:return w=1,!1;case rC:case tC:return w=2,!1;case ol:return w=3,!1}else if(Od(Et)||To(Et))return Array.isArray(w)||(w=[]),w.push(Et),!1;return lt},me)}if(me){var We=ga(v,J);S.push(We)}}),{size:w,shape:x,stops:S,position:O,type:2}},"-moz-radial-gradient":Eg,"-ms-radial-gradient":Eg,"-o-radial-gradient":Eg,"-webkit-radial-gradient":Eg,"-webkit-gradient":function(v,g){var x=Da(180),w=[],S=1;return vc(g).forEach(function(me,Ue){var We=me[0];if(0===Ue){if(Sr(We)&&"linear"===We.value)return void(S=1);if(Sr(We)&&"radial"===We.value)return void(S=2)}if(18===We.type)if("from"===We.name){var lt=$u_parse(v,We.values[0]);w.push({stop:Is,color:lt})}else if("to"===We.name)lt=$u_parse(v,We.values[0]),w.push({stop:Ld,color:lt});else if("color-stop"===We.name){var Et=We.values.filter(bc);if(2===Et.length){lt=$u_parse(v,Et[1]);var bn=Et[0];ve(bn)&&w.push({stop:{type:16,number:100*bn.number,flags:bn.flags},color:lt})}}}),1===S?{angle:(x+Da(180))%Da(360),stops:w,type:S}:{size:3,shape:0,stops:w,position:[],type:S}}},KF={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(v,g){if(0===g.length)return[];var x=g[0];return 20===x.type&&"none"===x.value?[]:g.filter(function(w){return bc(w)&&function XF(v){return!(20===v.type&&"none"===v.value||18===v.type&&!bt[v.name])}(w)}).map(function(w){return fv_parse(v,w)})}},YF={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(v,g){return g.map(function(x){if(Sr(x))switch(x.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},kt={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(v,g){return vc(g).map(function(x){return x.filter(To)}).map(qu)}},sC={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(v,g){return vc(g).map(function(x){return x.filter(Sr).map(function(w){return w.value}).join(" ")}).map(Wt)}},Wt=function(v){switch(v){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}},ur=function(v){return v.AUTO="auto",v.CONTAIN="contain",v.COVER="cover",v}(ur||{}),Vi={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(v,g){return vc(g).map(function(x){return x.filter(es)})}},es=function(v){return Sr(v)||To(v)},Go=function(v){return{name:"border-"+v+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},ju=Go("top"),qs=Go("right"),aC=Go("bottom"),lC=Go("left"),Xu=function(v){return{name:"border-radius-"+v,initialValue:"0 0",prefix:!1,type:1,parse:function(g,x){return qu(x.filter(To))}}},ZF=Xu("top-left"),JF=Xu("top-right"),_p=Xu("bottom-right"),eD=Xu("bottom-left"),Tf=function(v){return{name:"border-"+v+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(g,x){switch(x){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},cC=Tf("top"),Sg=Tf("right"),B8=Tf("bottom"),mv=Tf("left"),Tg=function(v){return{name:"border-"+v+"-width",initialValue:"0",type:0,prefix:!1,parse:function(g,x){return mp(x)?x.number:0}}},pv=Tg("top"),dC=Tg("right"),uC=Tg("bottom"),Ku=Tg("left"),tD={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Av={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(v,g){return"rtl"===g?1:0}},Ig={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).reduce(function(x,w){return x|nD(w.value)},0)}},nD=function(v){switch(v){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},gv={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Fg={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(v,g){return 20===g.type&&"normal"===g.value?0:17===g.type||15===g.type?g.number:0}},Ba=function(v){return v.NORMAL="normal",v.STRICT="strict",v}(Ba||{}),If={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){return"strict"===g?Ba.STRICT:Ba.NORMAL}},_v={name:"line-height",initialValue:"normal",prefix:!1,type:4},hC=function(v,g){return Sr(v)&&"normal"===v.value?1.2*g:17===v.type?g*v.number:To(v)?jr(v,g):g},iD={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(v,g){return 20===g.type&&"none"===g.value?null:fv_parse(v,g)}},fC={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(v,g){return"inside"===g?0:1}},Ud={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Dg=function(v){return{name:"margin-"+v,initialValue:"0",prefix:!1,type:4}},rD=Dg("top"),oD=Dg("right"),bv=Dg("bottom"),vv=Dg("left"),mC={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).map(function(x){switch(x.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},bp={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){return"break-word"===g?"break-word":"normal"}},Xc=function(v){return{name:"padding-"+v,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},sD=Xc("top"),aD=Xc("right"),ts=Xc("bottom"),pC=Xc("left"),lD={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(v,g){switch(g){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},vp={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(v,g){switch(g){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},cD={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(v,g){return 1===g.length&&Mf(g[0],"none")?[]:vc(g).map(function(x){for(var w={color:Fl.TRANSPARENT,offsetX:Is,offsetY:Is,blur:Is},S=0,O=0;O"u")throw new Error('Attempting to parse an unsupported transform function "'+g.name+'"');return x(g.values)}return null}},mD={matrix:function(v){var g=v.filter(function(x){return 17===x.type}).map(function(x){return x.number});return 6===g.length?g:null},matrix3d:function(v){var g=v.filter(function(me){return 17===me.type}).map(function(me){return me.number});return 16===g.length?[g[0],g[1],g[4],g[5],g[12],g[13]]:null}},kg={type:16,number:50,flags:4},Bg=[kg,kg],uo={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(v,g){var x=g.filter(To);return 2!==x.length?Bg:[x[0],x[1]]}},Jt={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"hidden":return 1;case"collapse":return 2;default:return 0}}},Hn=function(v){return v.NORMAL="normal",v.BREAK_ALL="break-all",v.KEEP_ALL="keep-all",v}(Hn||{}),Ro={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){switch(g){case"break-all":return Hn.BREAK_ALL;case"keep-all":return Hn.KEEP_ALL;default:return Hn.NORMAL}}},Dl={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(v,g){if(20===g.type)return{auto:!0,order:0};if(ve(g))return{auto:!1,order:g.number};throw new Error("Invalid z-index number parsed")}},Fs={name:"time",parse:function(v,g){if(15===g.type)switch(g.unit.toLowerCase()){case"s":return 1e3*g.number;case"ms":return g.number}throw new Error("Unsupported time type")}},Pa={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(v,g){return ve(g)?g.number:1}},Ff={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Xr={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).map(function(x){switch(x.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(x){return 0!==x})}},Ds={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(v,g){var x=[],w=[];return g.forEach(function(S){switch(S.type){case 20:case 0:x.push(S.value);break;case 17:x.push(S.number.toString());break;case 4:w.push(x.join(" ")),x.length=0}}),x.length&&w.push(x.join(" ")),w.map(function(S){return-1===S.indexOf(" ")?S:"'"+S+"'"})}},kl={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},oi={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(v,g){return ve(g)?g.number:Sr(g)&&"bold"===g.value?700:400}},yp={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(v,g){return g.filter(Sr).map(function(x){return x.value})}},AC={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){switch(g){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},ho=function(v,g){return!!(v&g)},bo={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(v,g){if(0===g.length)return[];var x=g[0];return 20===x.type&&"none"===x.value?[]:g}},wp={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(v,g){if(0===g.length)return null;var x=g[0];if(20===x.type&&"none"===x.value)return null;for(var w=[],S=g.filter(yg),O=0;O1?1:0],this.overflowWrap=gn(g,bp,x.overflowWrap),this.paddingTop=gn(g,sD,x.paddingTop),this.paddingRight=gn(g,aD,x.paddingRight),this.paddingBottom=gn(g,ts,x.paddingBottom),this.paddingLeft=gn(g,pC,x.paddingLeft),this.paintOrder=gn(g,Pg,x.paintOrder),this.position=gn(g,vp,x.position),this.textAlign=gn(g,lD,x.textAlign),this.textDecorationColor=gn(g,Ff,null!==(w=x.textDecorationColor)&&void 0!==w?w:x.color),this.textDecorationLine=gn(g,Xr,null!==(S=x.textDecorationLine)&&void 0!==S?S:x.textDecoration),this.textShadow=gn(g,cD,x.textShadow),this.textTransform=gn(g,dD,x.textTransform),this.transform=gn(g,uD,x.transform),this.transformOrigin=gn(g,uo,x.transformOrigin),this.visibility=gn(g,Jt,x.visibility),this.webkitTextStrokeColor=gn(g,Yu,x.webkitTextStrokeColor),this.webkitTextStrokeWidth=gn(g,vi,x.webkitTextStrokeWidth),this.wordBreak=gn(g,Ro,x.wordBreak),this.zIndex=gn(g,Dl,x.zIndex)}return v.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},v.prototype.isTransparent=function(){return zo(this.backgroundColor)},v.prototype.isTransformed=function(){return null!==this.transform},v.prototype.isPositioned=function(){return 0!==this.position},v.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},v.prototype.isFloating=function(){return 0!==this.float},v.prototype.isInlineLevel=function(){return ho(this.display,4)||ho(this.display,33554432)||ho(this.display,268435456)||ho(this.display,536870912)||ho(this.display,67108864)||ho(this.display,134217728)},v}(),Cp=function(){return function v(g,x){this.content=gn(g,bo,x.content),this.quotes=gn(g,xp,x.quotes)}}(),Bl=function(){return function v(g,x){this.counterIncrement=gn(g,wp,x.counterIncrement),this.counterReset=gn(g,Df,x.counterReset)}}(),gn=function(v,g,x){var w=new Zx,S=null!==x&&typeof x<"u"?x.toString():g.initialValue;w.write(S);var O=new jc(w.read());switch(g.type){case 2:var J=O.parseComponentValue();return g.parse(v,Sr(J)?J.value:g.initialValue);case 0:return g.parse(v,O.parseComponentValue());case 1:return g.parse(v,O.parseComponentValues());case 4:return O.parseComponentValue();case 3:switch(g.format){case"angle":return Wu_parse(v,O.parseComponentValue());case"color":return $u_parse(v,O.parseComponentValue());case"image":return fv_parse(v,O.parseComponentValue());case"length":var pe=O.parseComponentValue();return Od(pe)?pe:Is;case"length-percentage":var me=O.parseComponentValue();return To(me)?me:Is;case"time":return Fs.parse(v,O.parseComponentValue())}}},Mp=function(v,g){var x=function(v){switch(v.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(v);return 1===x||g===x},eo=function(){return function v(g,x){this.context=g,this.textNodes=[],this.elements=[],this.flags=0,Mp(x,3),this.styles=new wv(g,window.getComputedStyle(x,null)),Wg(x)&&(this.styles.animationDuration.some(function(w){return w>0})&&(x.style.animationDuration="0s"),null!==this.styles.transform&&(x.style.transform="none")),this.bounds=I(this.context,x),Mp(x,4)&&(this.flags|=16)}}(),Rg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Pl=typeof Uint8Array>"u"?[]:new Uint8Array(256),Zu=0;Zu<64;Zu++)Pl[Rg.charCodeAt(Zu)]=Zu;for(var gD=function(v,g,x){return v.slice?v.slice(g,x):new Uint16Array(Array.prototype.slice.call(v,g,x))},bC=function(){function v(g,x,w,S,O,J){this.initialValue=g,this.errorValue=x,this.highStart=w,this.highValueIndex=S,this.index=O,this.data=J}return v.prototype.get=function(g){var x;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[x=((x=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[x=((x=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[x=((x=this.index[x+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},v}(),_D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",q8=typeof Uint8Array>"u"?[]:new Uint8Array(256),Cv=0;Cv<64;Cv++)q8[_D.charCodeAt(Cv)]=Cv;var vC=8,Ug=9,yC=11,Vg=12,CC=function(){for(var v=[],g=0;g>10),J%1024+56320),(S+1===x||w.length>16384)&&(O+=String.fromCharCode.apply(String,w),w.length=0)}return O},vD=function(v,g){var x=function(v){var w,O,J,pe,me,g=.75*v.length,x=v.length,S=0;"="===v[v.length-1]&&(g--,"="===v[v.length-2]&&g--);var Ue=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),We=Array.isArray(Ue)?Ue:new Uint8Array(Ue);for(w=0;w>4,We[S++]=(15&J)<<4|pe>>2,We[S++]=(3&pe)<<6|63&me;return Ue}(v),w=Array.isArray(x)?function(v){for(var g=v.length,x=[],w=0;w=55296&&S<=56319&&x=x)return{done:!0,value:null};for(var J="\xd7";wJ.x||We.y>J.y;return J=We,0===Ue||lt});return v.body.removeChild(g),pe}(document);return Object.defineProperty(As,"SUPPORT_WORD_BREAKING",{value:v}),v},get SUPPORT_SVG_DRAWING(){var v=function(v){var g=new Image,x=v.createElement("canvas"),w=x.getContext("2d");if(!w)return!1;g.src="data:image/svg+xml,";try{w.drawImage(g,0,0),x.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(As,"SUPPORT_SVG_DRAWING",{value:v}),v},get SUPPORT_FOREIGNOBJECT_DRAWING(){var v="function"==typeof Array.from&&"function"==typeof window.fetch?function(v){var g=v.createElement("canvas"),x=100;g.width=x,g.height=x;var w=g.getContext("2d");if(!w)return Promise.reject(!1);w.fillStyle="rgb(0, 255, 0)",w.fillRect(0,0,x,x);var S=new Image,O=g.toDataURL();S.src=O;var J=zg(x,x,0,0,S);return w.fillStyle="red",w.fillRect(0,0,x,x),EC(J).then(function(pe){w.drawImage(pe,0,0);var me=w.getImageData(0,0,x,x).data;w.fillStyle="red",w.fillRect(0,0,x,x);var Ue=v.createElement("div");return Ue.style.backgroundImage="url("+O+")",Ue.style.height=x+"px",MC(me)?EC(zg(x,x,0,0,Ue)):Promise.reject(!1)}).then(function(pe){return w.drawImage(pe,0,0),MC(w.getImageData(0,0,x,x).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(As,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:v}),v},get SUPPORT_CORS_IMAGES(){var v=typeof(new Image).crossOrigin<"u";return Object.defineProperty(As,"SUPPORT_CORS_IMAGES",{value:v}),v},get SUPPORT_RESPONSE_TYPE(){var v="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(As,"SUPPORT_RESPONSE_TYPE",{value:v}),v},get SUPPORT_CORS_XHR(){var v="withCredentials"in new XMLHttpRequest;return Object.defineProperty(As,"SUPPORT_CORS_XHR",{value:v}),v},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var v=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(As,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:v}),v}},eh=function(){return function v(g,x){this.text=g,this.bounds=x}}(),Ip=function(v,g){var x=g.ownerDocument;if(x){var w=x.createElement("html2canvaswrapper");w.appendChild(g.cloneNode(!0));var S=g.parentNode;if(S){S.replaceChild(w,g);var O=I(v,w);return w.firstChild&&S.replaceChild(w.firstChild,w),O}}return F.EMPTY},Fp=function(v,g,x){var w=v.ownerDocument;if(!w)throw new Error("Node has no owner document");var S=w.createRange();return S.setStart(v,g),S.setEnd(v,g+x),S},Dp=function(v){if(As.SUPPORT_NATIVE_TEXT_SEGMENTATION){var g=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(g.segment(v)).map(function(x){return x.segment})}return function(v){for(var w,g=na(v),x=[];!(w=g.next()).done;)w.value&&x.push(w.value.slice());return x}(v)},si=function(v,g){return 0!==g.letterSpacing?Dp(v):function(v,g){if(As.SUPPORT_NATIVE_TEXT_SEGMENTATION){var x=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(x.segment(v)).map(function(w){return w.segment})}return W8(v,g)}(v,g)},SC=[32,160,4961,65792,65793,4153,4241],W8=function(v,g){for(var S,x=function(v,g){var x=T(v),w=ko(x,g),S=w[0],O=w[1],J=w[2],pe=x.length,me=0,Ue=0;return{next:function(){if(Ue>=pe)return{done:!0,value:null};for(var We=Hi;Ue0)if(As.SUPPORT_RANGE_BOUNDS){var me=Fp(w,J,pe.length).getClientRects();if(me.length>1){var Ue=Dp(pe),We=0;Ue.forEach(function(Et){O.push(new eh(Et,F.fromDOMRectList(v,Fp(w,We+J,Et.length).getClientRects()))),We+=Et.length})}else O.push(new eh(pe,F.fromDOMRectList(v,me)))}else{var lt=w.splitText(pe.length);O.push(new eh(pe,Ip(v,w))),w=lt}else As.SUPPORT_RANGE_BOUNDS||(w=w.splitText(pe.length));J+=pe.length}),O}(g,this.text,w,x)}}(),CD=function(v,g){switch(g){case 1:return v.toLowerCase();case 3:return v.replace(MD,TC);case 2:return v.toUpperCase();default:return v}},MD=/(^|\s|:|-|\(|\))([a-z])/g,TC=function(v,g,x){return v.length>0?g+x.toUpperCase():v},nh=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.src=w.currentSrc||w.src,S.intrinsicWidth=w.naturalWidth,S.intrinsicHeight=w.naturalHeight,S.context.cache.addImage(S.src),S}return p(g,v),g}(eo),IC=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.canvas=w,S.intrinsicWidth=w.width,S.intrinsicHeight=w.height,S}return p(g,v),g}(eo),FC=function(v){function g(x,w){var S=v.call(this,x,w)||this,O=new XMLSerializer,J=I(x,w);return w.setAttribute("width",J.width+"px"),w.setAttribute("height",J.height+"px"),S.svg="data:image/svg+xml,"+encodeURIComponent(O.serializeToString(w)),S.intrinsicWidth=w.width.baseVal.value,S.intrinsicHeight=w.height.baseVal.value,S.context.cache.addImage(S.svg),S}return p(g,v),g}(eo),DC=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.value=w.value,S}return p(g,v),g}(eo),Fv=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.start=w.start,S.reversed="boolean"==typeof w.reversed&&!0===w.reversed,S}return p(g,v),g}(eo),ED=[{type:15,flags:0,unit:"px",number:3}],Dt=[{type:16,flags:0,number:50}],Rt="checkbox",Ar="radio",kC="password",Pf=707406591,sl=function(v){function g(x,w){var S=v.call(this,x,w)||this;switch(S.type=w.type.toLowerCase(),S.checked=w.checked,S.value=function(v){var g=v.type===kC?new Array(v.value.length+1).join("\u2022"):v.value;return 0===g.length?v.placeholder||"":g}(w),(S.type===Rt||S.type===Ar)&&(S.styles.backgroundColor=3739148031,S.styles.borderTopColor=S.styles.borderRightColor=S.styles.borderBottomColor=S.styles.borderLeftColor=2779096575,S.styles.borderTopWidth=S.styles.borderRightWidth=S.styles.borderBottomWidth=S.styles.borderLeftWidth=1,S.styles.borderTopStyle=S.styles.borderRightStyle=S.styles.borderBottomStyle=S.styles.borderLeftStyle=1,S.styles.backgroundClip=[0],S.styles.backgroundOrigin=[0],S.bounds=function(v){return v.width>v.height?new F(v.left+(v.width-v.height)/2,v.top,v.height,v.height):v.width0)x.textNodes.push(new xD(v,S,x.styles));else if(Rf(S))if(ks(S)&&S.assignedNodes)S.assignedNodes().forEach(function(pe){return kp(v,pe,x,w)});else{var J=Ws(v,S);J.styles.isVisible()&&(PC(S,J,w)?J.flags|=4:Nl(J.styles)&&(J.flags|=2),-1!==$8.indexOf(S.tagName)&&(J.flags|=8),x.elements.push(J),S.shadowRoot?kp(v,S.shadowRoot,J,w):!Of(S)&&!Bp(S)&&!Kg(S)&&kp(v,S,J,w))}},Ws=function(v,g){return Xg(g)?new nh(v,g):Rv(g)?new IC(v,g):Bp(g)?new FC(v,g):SD(g)?new DC(v,g):Dv(g)?new Fv(v,g):kv(g)?new sl(v,g):Kg(g)?new qg(v,g):Of(g)?new Gg(v,g):Ov(g)?new BC(v,g):new eo(v,g)},wc=function(v,g){var x=Ws(v,g);return x.flags|=4,kp(v,g,x,x),x},PC=function(v,g,x){return g.styles.isPositionedWithZIndex()||g.styles.opacity<1||g.styles.isTransformed()||Pv(v)&&x.styles.isTransparent()},Nl=function(v){return v.isPositioned()||v.isFloating()},xc=function(v){return v.nodeType===Node.TEXT_NODE},Rf=function(v){return v.nodeType===Node.ELEMENT_NODE},Wg=function(v){return Rf(v)&&typeof v.style<"u"&&!$g(v)},$g=function(v){return"object"==typeof v.className},SD=function(v){return"LI"===v.tagName},Dv=function(v){return"OL"===v.tagName},kv=function(v){return"INPUT"===v.tagName},Bp=function(v){return"svg"===v.tagName},Pv=function(v){return"BODY"===v.tagName},Rv=function(v){return"CANVAS"===v.tagName},jg=function(v){return"VIDEO"===v.tagName},Xg=function(v){return"IMG"===v.tagName},Ov=function(v){return"IFRAME"===v.tagName},Lv=function(v){return"STYLE"===v.tagName},Of=function(v){return"TEXTAREA"===v.tagName},Kg=function(v){return"SELECT"===v.tagName},ks=function(v){return"SLOT"===v.tagName},Vd=function(v){return v.tagName.indexOf("-")>0},Kr=function(){function v(){this.counters={}}return v.prototype.getCounterValue=function(g){var x=this.counters[g];return x&&x.length?x[x.length-1]:1},v.prototype.getCounterValues=function(g){return this.counters[g]||[]},v.prototype.pop=function(g){var x=this;g.forEach(function(w){return x.counters[w].pop()})},v.prototype.parse=function(g){var x=this,w=g.counterIncrement,S=g.counterReset,O=!0;null!==w&&w.forEach(function(pe){var me=x.counters[pe.counter];me&&0!==pe.increment&&(O=!1,me.length||me.push(1),me[Math.max(0,me.length-1)]+=pe.increment)});var J=[];return O&&S.forEach(function(pe){var me=x.counters[pe.counter];J.push(pe.counter),me||(me=x.counters[pe.counter]=[]),me.push(pe.reset)}),J},v}(),Ul={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},OC={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u0554","\u0553","\u0552","\u0551","\u0550","\u054f","\u054e","\u054d","\u054c","\u054b","\u054a","\u0549","\u0548","\u0547","\u0546","\u0545","\u0544","\u0543","\u0542","\u0541","\u0540","\u053f","\u053e","\u053d","\u053c","\u053b","\u053a","\u0539","\u0538","\u0537","\u0536","\u0535","\u0534","\u0533","\u0532","\u0531"]},Yg={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["\u05d9\u05f3","\u05d8\u05f3","\u05d7\u05f3","\u05d6\u05f3","\u05d5\u05f3","\u05d4\u05f3","\u05d3\u05f3","\u05d2\u05f3","\u05d1\u05f3","\u05d0\u05f3","\u05ea","\u05e9","\u05e8","\u05e7","\u05e6","\u05e4","\u05e2","\u05e1","\u05e0","\u05de","\u05dc","\u05db","\u05d9\u05d8","\u05d9\u05d7","\u05d9\u05d6","\u05d8\u05d6","\u05d8\u05d5","\u05d9","\u05d8","\u05d7","\u05d6","\u05d5","\u05d4","\u05d3","\u05d2","\u05d1","\u05d0"]},TD={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u10f5","\u10f0","\u10ef","\u10f4","\u10ee","\u10ed","\u10ec","\u10eb","\u10ea","\u10e9","\u10e8","\u10e7","\u10e6","\u10e5","\u10e4","\u10f3","\u10e2","\u10e1","\u10e0","\u10df","\u10de","\u10dd","\u10f2","\u10dc","\u10db","\u10da","\u10d9","\u10d8","\u10d7","\u10f1","\u10d6","\u10d5","\u10d4","\u10d3","\u10d2","\u10d1","\u10d0"]},ih=function(v,g,x,w,S,O){return vx?Yc(v,S,O.length>0):w.integers.reduce(function(J,pe,me){for(;v>=pe;)v-=pe,J+=w.values[me];return J},"")+O},Nv=function(v,g,x,w){var S="";do{x||v--,S=w(v)+S,v/=g}while(v*g>=g);return S},to=function(v,g,x,w,S){var O=x-g+1;return(v<0?"-":"")+(Nv(Math.abs(v),O,w,function(J){return W(Math.floor(J%O)+g)})+S)},$s=function(v,g,x){void 0===x&&(x=". ");var w=g.length;return Nv(Math.abs(v),w,!1,function(S){return g[Math.floor(S%w)]})+x},Ql=function(v,g,x,w,S,O){if(v<-9999||v>9999)return Yc(v,4,S.length>0);var J=Math.abs(v),pe=S;if(0===J)return g[0]+pe;for(var me=0;J>0&&me<=4;me++){var Ue=J%10;0===Ue&&ho(O,1)&&""!==pe?pe=g[Ue]+pe:Ue>1||1===Ue&&0===me||1===Ue&&1===me&&ho(O,2)||1===Ue&&1===me&&ho(O,4)&&v>100||1===Ue&&me>1&&ho(O,8)?pe=g[Ue]+(me>0?x[me-1]:"")+pe:1===Ue&&me>0&&(pe=x[me-1]+pe),J=Math.floor(J/10)}return(v<0?w:"")+pe},zd="\ub9c8\uc774\ub108\uc2a4",Yc=function(v,g,x){var w=x?". ":"",S=x?"\u3001":"",O=x?", ":"",J=x?" ":"";switch(g){case 0:return"\u2022"+J;case 1:return"\u25e6"+J;case 2:return"\u25fe"+J;case 5:var pe=to(v,48,57,!0,w);return pe.length<4?"0"+pe:pe;case 4:return $s(v,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",S);case 6:return ih(v,1,3999,Ul,3,w).toLowerCase();case 7:return ih(v,1,3999,Ul,3,w);case 8:return to(v,945,969,!1,w);case 9:return to(v,97,122,!1,w);case 10:return to(v,65,90,!1,w);case 11:return to(v,1632,1641,!0,w);case 12:case 49:return ih(v,1,9999,OC,3,w);case 35:return ih(v,1,9999,OC,3,w).toLowerCase();case 13:return to(v,2534,2543,!0,w);case 14:case 30:return to(v,6112,6121,!0,w);case 15:return $s(v,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",S);case 16:return $s(v,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",S);case 17:case 48:return Ql(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",S,14);case 47:return Ql(v,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",S,15);case 42:return Ql(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",S,14);case 41:return Ql(v,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",S,15);case 26:return Ql(v,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",S,0);case 25:return Ql(v,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",S,7);case 31:return Ql(v,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",zd,O,7);case 33:return Ql(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",zd,O,0);case 32:return Ql(v,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",zd,O,7);case 18:return to(v,2406,2415,!0,w);case 20:return ih(v,1,19999,TD,3,w);case 21:return to(v,2790,2799,!0,w);case 22:return to(v,2662,2671,!0,w);case 22:return ih(v,1,10999,Yg,3,w);case 23:return $s(v,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d\u305f\u3061\u3064\u3066\u3068\u306a\u306b\u306c\u306d\u306e\u306f\u3072\u3075\u3078\u307b\u307e\u307f\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308a\u308b\u308c\u308d\u308f\u3090\u3091\u3092\u3093");case 24:return $s(v,"\u3044\u308d\u306f\u306b\u307b\u3078\u3068\u3061\u308a\u306c\u308b\u3092\u308f\u304b\u3088\u305f\u308c\u305d\u3064\u306d\u306a\u3089\u3080\u3046\u3090\u306e\u304a\u304f\u3084\u307e\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304d\u3086\u3081\u307f\u3057\u3091\u3072\u3082\u305b\u3059");case 27:return to(v,3302,3311,!0,w);case 28:return $s(v,"\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f0\u30f1\u30f2\u30f3",S);case 29:return $s(v,"\u30a4\u30ed\u30cf\u30cb\u30db\u30d8\u30c8\u30c1\u30ea\u30cc\u30eb\u30f2\u30ef\u30ab\u30e8\u30bf\u30ec\u30bd\u30c4\u30cd\u30ca\u30e9\u30e0\u30a6\u30f0\u30ce\u30aa\u30af\u30e4\u30de\u30b1\u30d5\u30b3\u30a8\u30c6\u30a2\u30b5\u30ad\u30e6\u30e1\u30df\u30b7\u30f1\u30d2\u30e2\u30bb\u30b9",S);case 34:return to(v,3792,3801,!0,w);case 37:return to(v,6160,6169,!0,w);case 38:return to(v,4160,4169,!0,w);case 39:return to(v,2918,2927,!0,w);case 40:return to(v,1776,1785,!0,w);case 43:return to(v,3046,3055,!0,w);case 44:return to(v,3174,3183,!0,w);case 45:return to(v,3664,3673,!0,w);case 46:return to(v,3872,3881,!0,w);default:return to(v,48,57,!0,w)}},NC="data-html2canvas-ignore",Zg=function(){function v(g,x,w){if(this.context=g,this.options=w,this.scrolledElements=[],this.referenceElement=x,this.counters=new Kr,this.quoteDepth=0,!x.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(x.ownerDocument.documentElement,!1)}return v.prototype.toIFrame=function(g,x){var w=this,S=ID(g,x);if(!S.contentWindow)return Promise.reject("Unable to find iframe window");var O=g.defaultView.pageXOffset,J=g.defaultView.pageYOffset,pe=S.contentWindow,me=pe.document,Ue=X8(S).then(function(){return k(w,void 0,void 0,function(){var We,lt;return m(this,function(Et){switch(Et.label){case 0:return this.scrolledElements.forEach(Qv),pe&&(pe.scrollTo(x.left,x.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(pe.scrollY!==x.top||pe.scrollX!==x.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(pe.scrollX-x.left,pe.scrollY-x.top,0,0))),We=this.options.onclone,typeof(lt=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:me.fonts&&me.fonts.ready?[4,me.fonts.ready]:[3,2];case 1:Et.sent(),Et.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,j8(me)]:[3,4];case 3:Et.sent(),Et.label=4;case 4:return"function"==typeof We?[2,Promise.resolve().then(function(){return We(me,lt)}).then(function(){return S})]:[2,S]}})})});return me.open(),me.write(DD(document.doctype)+""),Pp(this.referenceElement.ownerDocument,O,J),me.replaceChild(me.adoptNode(this.documentElement),me.documentElement),me.close(),Ue},v.prototype.createElementClone=function(g){if(Mp(g,2),Rv(g))return this.createCanvasClone(g);if(jg(g))return this.createVideoClone(g);if(Lv(g))return this.createStyleClone(g);var x=g.cloneNode(!1);return Xg(x)&&(Xg(g)&&g.currentSrc&&g.currentSrc!==g.src&&(x.src=g.currentSrc,x.srcset=""),"lazy"===x.loading&&(x.loading="eager")),Vd(x)?this.createCustomElementClone(x):x},v.prototype.createCustomElementClone=function(g){var x=document.createElement("html2canvascustomelement");return rh(g.style,x),x},v.prototype.createStyleClone=function(g){try{var x=g.sheet;if(x&&x.cssRules){var w=[].slice.call(x.cssRules,0).reduce(function(O,J){return J&&"string"==typeof J.cssText?O+J.cssText:O},""),S=g.cloneNode(!1);return S.textContent=w,S}}catch(O){if(this.context.logger.error("Unable to access cssRules property",O),"SecurityError"!==O.name)throw O}return g.cloneNode(!1)},v.prototype.createCanvasClone=function(g){var x;if(this.options.inlineImages&&g.ownerDocument){var w=g.ownerDocument.createElement("img");try{return w.src=g.toDataURL(),w}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",g)}}var S=g.cloneNode(!1);try{S.width=g.width,S.height=g.height;var O=g.getContext("2d"),J=S.getContext("2d");if(J)if(!this.options.allowTaint&&O)J.putImageData(O.getImageData(0,0,g.width,g.height),0,0);else{var pe=null!==(x=g.getContext("webgl2"))&&void 0!==x?x:g.getContext("webgl");if(pe){var me=pe.getContextAttributes();!1===me?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",g)}J.drawImage(g,0,0)}return S}catch{this.context.logger.info("Unable to clone canvas as it is tainted",g)}return S},v.prototype.createVideoClone=function(g){var x=g.ownerDocument.createElement("canvas");x.width=g.offsetWidth,x.height=g.offsetHeight;var w=x.getContext("2d");try{return w&&(w.drawImage(g,0,0,x.width,x.height),this.options.allowTaint||w.getImageData(0,0,x.width,x.height)),x}catch{this.context.logger.info("Unable to clone video as it is tainted",g)}var S=g.ownerDocument.createElement("canvas");return S.width=g.offsetWidth,S.height=g.offsetHeight,S},v.prototype.appendChildNode=function(g,x,w){(!Rf(x)||!function(v){return"SCRIPT"===v.tagName}(x)&&!x.hasAttribute(NC)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(x)))&&(!this.options.copyStyles||!Rf(x)||!Lv(x))&&g.appendChild(this.cloneNode(x,w))},v.prototype.cloneChildNodes=function(g,x,w){for(var S=this,O=g.shadowRoot?g.shadowRoot.firstChild:g.firstChild;O;O=O.nextSibling)if(Rf(O)&&ks(O)&&"function"==typeof O.assignedNodes){var J=O.assignedNodes();J.length&&J.forEach(function(pe){return S.appendChildNode(x,pe,w)})}else this.appendChildNode(x,O,w)},v.prototype.cloneNode=function(g,x){if(xc(g))return document.createTextNode(g.data);if(!g.ownerDocument)return g.cloneNode(!1);var w=g.ownerDocument.defaultView;if(w&&Rf(g)&&(Wg(g)||$g(g))){var S=this.createElementClone(g);S.style.transitionProperty="none";var O=w.getComputedStyle(g),J=w.getComputedStyle(g,":before"),pe=w.getComputedStyle(g,":after");this.referenceElement===g&&Wg(S)&&(this.clonedReferenceElement=S),Pv(S)&&Cc(S);var me=this.counters.parse(new Bl(this.context,O)),Ue=this.resolvePseudoContent(g,S,J,Jg.BEFORE);Vd(g)&&(x=!0),jg(g)||this.cloneChildNodes(g,S,x),Ue&&S.insertBefore(Ue,S.firstChild);var We=this.resolvePseudoContent(g,S,pe,Jg.AFTER);return We&&S.appendChild(We),this.counters.pop(me),(O&&(this.options.copyStyles||$g(g))&&!Ov(g)||x)&&rh(O,S),(0!==g.scrollTop||0!==g.scrollLeft)&&this.scrolledElements.push([S,g.scrollLeft,g.scrollTop]),(Of(g)||Kg(g))&&(Of(S)||Kg(S))&&(S.value=g.value),S}return g.cloneNode(!1)},v.prototype.resolvePseudoContent=function(g,x,w,S){var O=this;if(w){var J=w.content,pe=x.ownerDocument;if(pe&&J&&"none"!==J&&"-moz-alt-content"!==J&&"none"!==w.display){this.counters.parse(new Bl(this.context,w));var me=new Cp(this.context,w),Ue=pe.createElement("html2canvaspseudoelement");rh(w,Ue),me.content.forEach(function(lt){if(0===lt.type)Ue.appendChild(pe.createTextNode(lt.value));else if(22===lt.type){var Et=pe.createElement("img");Et.src=lt.value,Et.style.opacity="1",Ue.appendChild(Et)}else if(18===lt.type){if("attr"===lt.name){var bn=lt.values.filter(Sr);bn.length&&Ue.appendChild(pe.createTextNode(g.getAttribute(bn[0].value)||""))}else if("counter"===lt.name){var en=lt.values.filter(bc),Wn=en[1];if((dn=en[0])&&Sr(dn)){var Sn=O.counters.getCounterValue(dn.value),Tn=Wn&&Sr(Wn)?Ud.parse(O.context,Wn.value):3;Ue.appendChild(pe.createTextNode(Yc(Sn,Tn,!1)))}}else if("counters"===lt.name){var dn,mr=lt.values.filter(bc),Oi=mr[1];if(Wn=mr[2],(dn=mr[0])&&Sr(dn)){var ai=O.counters.getCounterValues(dn.value),vn=Wn&&Sr(Wn)?Ud.parse(O.context,Wn.value):3,ar=Oi&&0===Oi.type?Oi.value:"",hr=ai.map(function(_a){return Yc(_a,vn,!1)}).join(ar);Ue.appendChild(pe.createTextNode(hr))}}}else if(20===lt.type)switch(lt.value){case"open-quote":Ue.appendChild(pe.createTextNode(yv(me.quotes,O.quoteDepth++,!0)));break;case"close-quote":Ue.appendChild(pe.createTextNode(yv(me.quotes,--O.quoteDepth,!1)));break;default:Ue.appendChild(pe.createTextNode(lt.value))}}),Ue.className=t0+" "+n0;var We=S===Jg.BEFORE?" "+t0:" "+n0;return $g(x)?x.className.baseValue+=We:x.className+=We,Ue}}},v.destroy=function(g){return!!g.parentNode&&(g.parentNode.removeChild(g),!0)},v}(),Jg=function(v){return v[v.BEFORE=0]="BEFORE",v[v.AFTER=1]="AFTER",v}(Jg||{}),ID=function(v,g){var x=v.createElement("iframe");return x.className="html2canvas-container",x.style.visibility="hidden",x.style.position="fixed",x.style.left="-10000px",x.style.top="0px",x.style.border="0",x.width=g.width.toString(),x.height=g.height.toString(),x.scrolling="no",x.setAttribute(NC,"true"),v.body.appendChild(x),x},FD=function(v){return new Promise(function(g){v.complete?g():v.src?(v.onload=g,v.onerror=g):g()})},j8=function(v){return Promise.all([].slice.call(v.images,0).map(FD))},X8=function(v){return new Promise(function(g,x){var w=v.contentWindow;if(!w)return x("No window assigned for iframe");var S=w.document;w.onload=v.onload=function(){w.onload=v.onload=null;var O=setInterval(function(){S.body.childNodes.length>0&&"complete"===S.readyState&&(clearInterval(O),g(v))},50)}})},Vv=["all","d","content"],rh=function(v,g){for(var x=v.length-1;x>=0;x--){var w=v.item(x);-1===Vv.indexOf(w)&&g.style.setProperty(w,v.getPropertyValue(w))}return g},DD=function(v){var g="";return v&&(g+=""),g},Pp=function(v,g,x){v&&v.defaultView&&(g!==v.defaultView.pageXOffset||x!==v.defaultView.pageYOffset)&&v.defaultView.scrollTo(g,x)},Qv=function(v){var g=v[0],w=v[2];g.scrollLeft=v[1],g.scrollTop=w},t0="___html2canvas___pseudoelement_before",n0="___html2canvas___pseudoelement_after",UC='{\n content: "" !important;\n display: none !important;\n}',Cc=function(v){kD(v,"."+t0+":before"+UC+"\n ."+n0+":after"+UC)},kD=function(v,g){var x=v.ownerDocument;if(x){var w=x.createElement("style");w.textContent=g,v.appendChild(w)}},Rp=function(){function v(){}return v.getOrigin=function(g){var x=v._link;return x?(x.href=g,x.href=x.href,x.protocol+x.hostname+x.port):"about:blank"},v.isSameOrigin=function(g){return v.getOrigin(g)===v._origin},v.setContext=function(g){v._link=g.document.createElement("a"),v._origin=v.getOrigin(g.location.href)},v._origin="about:blank",v}(),zv=function(){function v(g,x){this.context=g,this._options=x,this._cache={}}return v.prototype.addImage=function(g){var x=Promise.resolve();return this.has(g)||(s0(g)||BD(g))&&(this._cache[g]=this.loadImage(g)).catch(function(){}),x},v.prototype.match=function(g){return this._cache[g]},v.prototype.loadImage=function(g){return k(this,void 0,void 0,function(){var x,w,S,O,J=this;return m(this,function(pe){switch(pe.label){case 0:return x=Rp.isSameOrigin(g),w=!o0(g)&&!0===this._options.useCORS&&As.SUPPORT_CORS_IMAGES&&!x,S=!o0(g)&&!x&&!s0(g)&&"string"==typeof this._options.proxy&&As.SUPPORT_CORS_XHR&&!w,x||!1!==this._options.allowTaint||o0(g)||s0(g)||S||w?(O=g,S?[4,this.proxy(O)]:[3,2]):[2];case 1:O=pe.sent(),pe.label=2;case 2:return this.context.logger.debug("Added image "+g.substring(0,256)),[4,new Promise(function(me,Ue){var We=new Image;We.onload=function(){return me(We)},We.onerror=Ue,(VC(O)||w)&&(We.crossOrigin="anonymous"),We.src=O,!0===We.complete&&setTimeout(function(){return me(We)},500),J._options.imageTimeout>0&&setTimeout(function(){return Ue("Timed out ("+J._options.imageTimeout+"ms) loading image")},J._options.imageTimeout)})];case 3:return[2,pe.sent()]}})})},v.prototype.has=function(g){return typeof this._cache[g]<"u"},v.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},v.prototype.proxy=function(g){var x=this,w=this._options.proxy;if(!w)throw new Error("No proxy defined");var S=g.substring(0,256);return new Promise(function(O,J){var pe=As.SUPPORT_RESPONSE_TYPE?"blob":"text",me=new XMLHttpRequest;me.onload=function(){if(200===me.status)if("text"===pe)O(me.response);else{var lt=new FileReader;lt.addEventListener("load",function(){return O(lt.result)},!1),lt.addEventListener("error",function(Et){return J(Et)},!1),lt.readAsDataURL(me.response)}else J("Failed to proxy resource "+S+" with status code "+me.status)},me.onerror=J;var Ue=w.indexOf("?")>-1?"&":"?";if(me.open("GET",""+w+Ue+"url="+encodeURIComponent(g)+"&responseType="+pe),"text"!==pe&&me instanceof XMLHttpRequest&&(me.responseType=pe),x._options.imageTimeout){var We=x._options.imageTimeout;me.timeout=We,me.ontimeout=function(){return J("Timed out ("+We+"ms) proxying "+S)}}me.send()})},v}(),HC=/^data:image\/svg\+xml/i,r0=/^data:image\/.*;base64,/i,qv=/^data:image\/.*/i,BD=function(v){return As.SUPPORT_SVG_DRAWING||!QC(v)},o0=function(v){return qv.test(v)},VC=function(v){return r0.test(v)},s0=function(v){return"blob"===v.substr(0,4)},QC=function(v){return"svg"===v.substr(-3).toLowerCase()||HC.test(v)},_n=function(){function v(g,x){this.type=0,this.x=g,this.y=x}return v.prototype.add=function(g,x){return new v(this.x+g,this.y+x)},v}(),Zc=function(v,g,x){return new _n(v.x+(g.x-v.x)*x,v.y+(g.y-v.y)*x)},Mc=function(){function v(g,x,w,S){this.type=1,this.start=g,this.startControl=x,this.endControl=w,this.end=S}return v.prototype.subdivide=function(g,x){var w=Zc(this.start,this.startControl,g),S=Zc(this.startControl,this.endControl,g),O=Zc(this.endControl,this.end,g),J=Zc(w,S,g),pe=Zc(S,O,g),me=Zc(J,pe,g);return x?new v(this.start,w,J,me):new v(me,pe,O,this.end)},v.prototype.add=function(g,x){return new v(this.start.add(g,x),this.startControl.add(g,x),this.endControl.add(g,x),this.end.add(g,x))},v.prototype.reverse=function(){return new v(this.end,this.endControl,this.startControl,this.start)},v}(),al=function(v){return 1===v.type},zC=function(){return function v(g){var x=g.styles,w=g.bounds,S=Il(x.borderTopLeftRadius,w.width,w.height),O=S[0],J=S[1],pe=Il(x.borderTopRightRadius,w.width,w.height),me=pe[0],Ue=pe[1],We=Il(x.borderBottomRightRadius,w.width,w.height),lt=We[0],Et=We[1],bn=Il(x.borderBottomLeftRadius,w.width,w.height),en=bn[0],dn=bn[1],Wn=[];Wn.push((O+me)/w.width),Wn.push((en+lt)/w.width),Wn.push((J+dn)/w.height),Wn.push((Ue+Et)/w.height);var Sn=Math.max.apply(Math,Wn);Sn>1&&(O/=Sn,J/=Sn,me/=Sn,Ue/=Sn,lt/=Sn,Et/=Sn,en/=Sn,dn/=Sn);var Tn=w.width-me,mr=w.height-Et,Oi=w.width-lt,ai=w.height-dn,vn=x.borderTopWidth,ar=x.borderRightWidth,hr=x.borderBottomWidth,di=x.borderLeftWidth,Wo=jr(x.paddingTop,g.bounds.width),_a=jr(x.paddingRight,g.bounds.width),La=jr(x.paddingBottom,g.bounds.width),Rr=jr(x.paddingLeft,g.bounds.width);this.topLeftBorderDoubleOuterBox=O>0||J>0?Tr(w.left+di/3,w.top+vn/3,O-di/3,J-vn/3,Mr.TOP_LEFT):new _n(w.left+di/3,w.top+vn/3),this.topRightBorderDoubleOuterBox=O>0||J>0?Tr(w.left+Tn,w.top+vn/3,me-ar/3,Ue-vn/3,Mr.TOP_RIGHT):new _n(w.left+w.width-ar/3,w.top+vn/3),this.bottomRightBorderDoubleOuterBox=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt-ar/3,Et-hr/3,Mr.BOTTOM_RIGHT):new _n(w.left+w.width-ar/3,w.top+w.height-hr/3),this.bottomLeftBorderDoubleOuterBox=en>0||dn>0?Tr(w.left+di/3,w.top+ai,en-di/3,dn-hr/3,Mr.BOTTOM_LEFT):new _n(w.left+di/3,w.top+w.height-hr/3),this.topLeftBorderDoubleInnerBox=O>0||J>0?Tr(w.left+2*di/3,w.top+2*vn/3,O-2*di/3,J-2*vn/3,Mr.TOP_LEFT):new _n(w.left+2*di/3,w.top+2*vn/3),this.topRightBorderDoubleInnerBox=O>0||J>0?Tr(w.left+Tn,w.top+2*vn/3,me-2*ar/3,Ue-2*vn/3,Mr.TOP_RIGHT):new _n(w.left+w.width-2*ar/3,w.top+2*vn/3),this.bottomRightBorderDoubleInnerBox=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt-2*ar/3,Et-2*hr/3,Mr.BOTTOM_RIGHT):new _n(w.left+w.width-2*ar/3,w.top+w.height-2*hr/3),this.bottomLeftBorderDoubleInnerBox=en>0||dn>0?Tr(w.left+2*di/3,w.top+ai,en-2*di/3,dn-2*hr/3,Mr.BOTTOM_LEFT):new _n(w.left+2*di/3,w.top+w.height-2*hr/3),this.topLeftBorderStroke=O>0||J>0?Tr(w.left+di/2,w.top+vn/2,O-di/2,J-vn/2,Mr.TOP_LEFT):new _n(w.left+di/2,w.top+vn/2),this.topRightBorderStroke=O>0||J>0?Tr(w.left+Tn,w.top+vn/2,me-ar/2,Ue-vn/2,Mr.TOP_RIGHT):new _n(w.left+w.width-ar/2,w.top+vn/2),this.bottomRightBorderStroke=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt-ar/2,Et-hr/2,Mr.BOTTOM_RIGHT):new _n(w.left+w.width-ar/2,w.top+w.height-hr/2),this.bottomLeftBorderStroke=en>0||dn>0?Tr(w.left+di/2,w.top+ai,en-di/2,dn-hr/2,Mr.BOTTOM_LEFT):new _n(w.left+di/2,w.top+w.height-hr/2),this.topLeftBorderBox=O>0||J>0?Tr(w.left,w.top,O,J,Mr.TOP_LEFT):new _n(w.left,w.top),this.topRightBorderBox=me>0||Ue>0?Tr(w.left+Tn,w.top,me,Ue,Mr.TOP_RIGHT):new _n(w.left+w.width,w.top),this.bottomRightBorderBox=lt>0||Et>0?Tr(w.left+Oi,w.top+mr,lt,Et,Mr.BOTTOM_RIGHT):new _n(w.left+w.width,w.top+w.height),this.bottomLeftBorderBox=en>0||dn>0?Tr(w.left,w.top+ai,en,dn,Mr.BOTTOM_LEFT):new _n(w.left,w.top+w.height),this.topLeftPaddingBox=O>0||J>0?Tr(w.left+di,w.top+vn,Math.max(0,O-di),Math.max(0,J-vn),Mr.TOP_LEFT):new _n(w.left+di,w.top+vn),this.topRightPaddingBox=me>0||Ue>0?Tr(w.left+Math.min(Tn,w.width-ar),w.top+vn,Tn>w.width+ar?0:Math.max(0,me-ar),Math.max(0,Ue-vn),Mr.TOP_RIGHT):new _n(w.left+w.width-ar,w.top+vn),this.bottomRightPaddingBox=lt>0||Et>0?Tr(w.left+Math.min(Oi,w.width-di),w.top+Math.min(mr,w.height-hr),Math.max(0,lt-ar),Math.max(0,Et-hr),Mr.BOTTOM_RIGHT):new _n(w.left+w.width-ar,w.top+w.height-hr),this.bottomLeftPaddingBox=en>0||dn>0?Tr(w.left+di,w.top+Math.min(ai,w.height-hr),Math.max(0,en-di),Math.max(0,dn-hr),Mr.BOTTOM_LEFT):new _n(w.left+di,w.top+w.height-hr),this.topLeftContentBox=O>0||J>0?Tr(w.left+di+Rr,w.top+vn+Wo,Math.max(0,O-(di+Rr)),Math.max(0,J-(vn+Wo)),Mr.TOP_LEFT):new _n(w.left+di+Rr,w.top+vn+Wo),this.topRightContentBox=me>0||Ue>0?Tr(w.left+Math.min(Tn,w.width+di+Rr),w.top+vn+Wo,Tn>w.width+di+Rr?0:me-di+Rr,Ue-(vn+Wo),Mr.TOP_RIGHT):new _n(w.left+w.width-(ar+_a),w.top+vn+Wo),this.bottomRightContentBox=lt>0||Et>0?Tr(w.left+Math.min(Oi,w.width-(di+Rr)),w.top+Math.min(mr,w.height+vn+Wo),Math.max(0,lt-(ar+_a)),Et-(hr+La),Mr.BOTTOM_RIGHT):new _n(w.left+w.width-(ar+_a),w.top+w.height-(hr+La)),this.bottomLeftContentBox=en>0||dn>0?Tr(w.left+di+Rr,w.top+ai,Math.max(0,en-(di+Rr)),dn-(hr+La),Mr.BOTTOM_LEFT):new _n(w.left+di+Rr,w.top+w.height-(hr+La))}}(),Mr=function(v){return v[v.TOP_LEFT=0]="TOP_LEFT",v[v.TOP_RIGHT=1]="TOP_RIGHT",v[v.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",v[v.BOTTOM_LEFT=3]="BOTTOM_LEFT",v}(Mr||{}),Tr=function(v,g,x,w,S){var O=(Math.sqrt(2)-1)/3*4,J=x*O,pe=w*O,me=v+x,Ue=g+w;switch(S){case Mr.TOP_LEFT:return new Mc(new _n(v,Ue),new _n(v,Ue-pe),new _n(me-J,g),new _n(me,g));case Mr.TOP_RIGHT:return new Mc(new _n(v,g),new _n(v+J,g),new _n(me,Ue-pe),new _n(me,Ue));case Mr.BOTTOM_RIGHT:return new Mc(new _n(me,g),new _n(me,g+pe),new _n(v+J,Ue),new _n(v,Ue));default:return new Mc(new _n(me,Ue),new _n(me-J,Ue),new _n(v,g+pe),new _n(v,g))}},Jc=function(v){return[v.topLeftBorderBox,v.topRightBorderBox,v.bottomRightBorderBox,v.bottomLeftBorderBox]},a0=function(v){return[v.topLeftPaddingBox,v.topRightPaddingBox,v.bottomRightPaddingBox,v.bottomLeftPaddingBox]},no=function(){return function v(g,x,w){this.offsetX=g,this.offsetY=x,this.matrix=w,this.type=0,this.target=6}}(),Nf=function(){return function v(g,x){this.path=g,this.target=x,this.type=1}}(),PD=function(){return function v(g){this.opacity=g,this.type=2,this.target=6}}(),zl=function(v){return 1===v.type},Gv=function(v,g){return v.length===g.length&&v.some(function(x,w){return x===g[w]})},Op=function(){return function v(g){this.element=g,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),$v=function(){function v(g,x){if(this.container=g,this.parent=x,this.effects=[],this.curves=new zC(this.container),this.container.styles.opacity<1&&this.effects.push(new PD(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new no(this.container.bounds.left+this.container.styles.transformOrigin[0].number,this.container.bounds.top+this.container.styles.transformOrigin[1].number,this.container.styles.transform)),0!==this.container.styles.overflowX){var J=Jc(this.curves),pe=a0(this.curves);Gv(J,pe)?this.effects.push(new Nf(J,6)):(this.effects.push(new Nf(J,2)),this.effects.push(new Nf(pe,4)))}}return v.prototype.getEffects=function(g){for(var x=-1===[2,3].indexOf(this.container.styles.position),w=this.parent,S=this.effects.slice(0);w;){var O=w.effects.filter(function(me){return!zl(me)});if(x||0!==w.container.styles.position||!w.parent){if(S.unshift.apply(S,O),x=-1===[2,3].indexOf(w.container.styles.position),0!==w.container.styles.overflowX){var J=Jc(w.curves),pe=a0(w.curves);Gv(J,pe)||S.unshift(new Nf(pe,6))}}else S.unshift.apply(S,O);w=w.parent}return S.filter(function(me){return ho(me.target,g)})},v}(),jv=function(v,g,x,w){v.container.elements.forEach(function(S){var O=ho(S.flags,4),J=ho(S.flags,2),pe=new $v(S,v);ho(S.styles.display,2048)&&w.push(pe);var me=ho(S.flags,8)?[]:w;if(O||J){var Ue=O||S.styles.isPositioned()?x:g,We=new Op(pe);if(S.styles.isPositioned()||S.styles.opacity<1||S.styles.isTransformed()){var lt=S.styles.zIndex.order;if(lt<0){var Et=0;Ue.negativeZIndex.some(function(en,dn){return lt>en.element.container.styles.zIndex.order?(Et=dn,!1):Et>0}),Ue.negativeZIndex.splice(Et,0,We)}else if(lt>0){var bn=0;Ue.positiveZIndex.some(function(en,dn){return lt>=en.element.container.styles.zIndex.order?(bn=dn+1,!1):bn>0}),Ue.positiveZIndex.splice(bn,0,We)}else Ue.zeroOrAutoZIndexOrTransformedOrOpacity.push(We)}else S.styles.isFloating()?Ue.nonPositionedFloats.push(We):Ue.nonPositionedInlineLevel.push(We);jv(pe,We,O?We:x,me)}else S.styles.isInlineLevel()?g.inlineLevel.push(pe):g.nonInlineLevel.push(pe),jv(pe,g,x,me);ho(S.flags,8)&&GC(S,me)})},GC=function(v,g){for(var x=v instanceof Fv?v.start:1,w=v instanceof Fv&&v.reversed,S=0;S"u"?v[0]:x},qd=function(v,g,x,w,S){var O=g[0],J=g[1],pe=x[0],me=x[1];switch(v){case 2:return[new _n(Math.round(w.left),Math.round(w.top+J)),new _n(Math.round(w.left+w.width),Math.round(w.top+J)),new _n(Math.round(w.left+w.width),Math.round(me+w.top+J)),new _n(Math.round(w.left),Math.round(me+w.top+J))];case 3:return[new _n(Math.round(w.left+O),Math.round(w.top)),new _n(Math.round(w.left+O+pe),Math.round(w.top)),new _n(Math.round(w.left+O+pe),Math.round(w.height+w.top)),new _n(Math.round(w.left+O),Math.round(w.height+w.top))];case 1:return[new _n(Math.round(w.left+O),Math.round(w.top+J)),new _n(Math.round(w.left+O+pe),Math.round(w.top+J)),new _n(Math.round(w.left+O+pe),Math.round(w.top+J+me)),new _n(Math.round(w.left+O),Math.round(w.top+J+me))];default:return[new _n(Math.round(S.left),Math.round(S.top)),new _n(Math.round(S.left+S.width),Math.round(S.top)),new _n(Math.round(S.left+S.width),Math.round(S.height+S.top)),new _n(Math.round(S.left),Math.round(S.height+S.top))]}},$C="Hidden Text",jC=function(){function v(g){this._data={},this._document=g}return v.prototype.parseMetrics=function(g,x){var w=this._document.createElement("div"),S=this._document.createElement("img"),O=this._document.createElement("span"),J=this._document.body;w.style.visibility="hidden",w.style.fontFamily=g,w.style.fontSize=x,w.style.margin="0",w.style.padding="0",w.style.whiteSpace="nowrap",J.appendChild(w),S.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",S.width=1,S.height=1,S.style.margin="0",S.style.padding="0",S.style.verticalAlign="baseline",O.style.fontFamily=g,O.style.fontSize=x,O.style.margin="0",O.style.padding="0",O.appendChild(this._document.createTextNode($C)),w.appendChild(O),w.appendChild(S);var pe=S.offsetTop-O.offsetTop+2;w.removeChild(O),w.appendChild(this._document.createTextNode($C)),w.style.lineHeight="normal",S.style.verticalAlign="super";var me=S.offsetTop-w.offsetTop+2;return J.removeChild(w),{baseline:pe,middle:me}},v.prototype.getMetrics=function(g,x){var w=g+" "+x;return typeof this._data[w]>"u"&&(this._data[w]=this.parseMetrics(g,x)),this._data[w]},v}(),HD=function(){return function v(g,x){this.context=g,this.options=x}}(),J8=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S._activeEffects=[],S.canvas=w.canvas?w.canvas:document.createElement("canvas"),S.ctx=S.canvas.getContext("2d"),w.canvas||(S.canvas.width=Math.floor(w.width*w.scale),S.canvas.height=Math.floor(w.height*w.scale),S.canvas.style.width=w.width+"px",S.canvas.style.height=w.height+"px"),S.fontMetrics=new jC(document),S.ctx.scale(S.options.scale,S.options.scale),S.ctx.translate(-w.x,-w.y),S.ctx.textBaseline="bottom",S._activeEffects=[],S.context.logger.debug("Canvas renderer initialized ("+w.width+"x"+w.height+") with scale "+w.scale),S}return p(g,v),g.prototype.applyEffects=function(x){for(var w=this;this._activeEffects.length;)this.popEffect();x.forEach(function(S){return w.applyEffect(S)})},g.prototype.applyEffect=function(x){this.ctx.save(),function(v){return 2===v.type}(x)&&(this.ctx.globalAlpha=x.opacity),function(v){return 0===v.type}(x)&&(this.ctx.translate(x.offsetX,x.offsetY),this.ctx.transform(x.matrix[0],x.matrix[1],x.matrix[2],x.matrix[3],x.matrix[4],x.matrix[5]),this.ctx.translate(-x.offsetX,-x.offsetY)),zl(x)&&(this.path(x.path),this.ctx.clip()),this._activeEffects.push(x)},g.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},g.prototype.renderStack=function(x){return k(this,void 0,void 0,function(){return m(this,function(S){switch(S.label){case 0:return x.element.container.styles.isVisible()?[4,this.renderStackContent(x)]:[3,2];case 1:S.sent(),S.label=2;case 2:return[2]}})})},g.prototype.renderNode=function(x){return k(this,void 0,void 0,function(){return m(this,function(w){switch(w.label){case 0:return ho(x.container.flags,16),x.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(x)]:[3,3];case 1:return w.sent(),[4,this.renderNodeContent(x)];case 2:w.sent(),w.label=3;case 3:return[2]}})})},g.prototype.renderTextWithLetterSpacing=function(x,w,S){var O=this;0===w?this.ctx.fillText(x.text,x.bounds.left,x.bounds.top+S):Dp(x.text).reduce(function(pe,me){return O.ctx.fillText(me,pe,x.bounds.top+S),pe+O.ctx.measureText(me).width},x.bounds.left)},g.prototype.createFontStyle=function(x){var w=x.fontVariant.filter(function(J){return"normal"===J||"small-caps"===J}).join(""),S=Nn(x.fontFamily).join(", "),O=mp(x.fontSize)?""+x.fontSize.number+x.fontSize.unit:x.fontSize.number+"px";return[[x.fontStyle,w,x.fontWeight,O,S].join(" "),S,O]},g.prototype.renderTextNode=function(x,w){return k(this,void 0,void 0,function(){var S,J,pe,me,Ue,We,lt,Et=this;return m(this,function(bn){return S=this.createFontStyle(w),J=S[1],pe=S[2],this.ctx.font=S[0],this.ctx.direction=1===w.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",me=this.fontMetrics.getMetrics(J,pe),Ue=me.baseline,We=me.middle,lt=w.paintOrder,x.textBounds.forEach(function(en){lt.forEach(function(dn){switch(dn){case 0:Et.ctx.fillStyle=qo(w.color),Et.renderTextWithLetterSpacing(en,w.letterSpacing,Ue);var Wn=w.textShadow;Wn.length&&en.text.trim().length&&(Wn.slice(0).reverse().forEach(function(Sn){Et.ctx.shadowColor=qo(Sn.color),Et.ctx.shadowOffsetX=Sn.offsetX.number*Et.options.scale,Et.ctx.shadowOffsetY=Sn.offsetY.number*Et.options.scale,Et.ctx.shadowBlur=Sn.blur.number,Et.renderTextWithLetterSpacing(en,w.letterSpacing,Ue)}),Et.ctx.shadowColor="",Et.ctx.shadowOffsetX=0,Et.ctx.shadowOffsetY=0,Et.ctx.shadowBlur=0),w.textDecorationLine.length&&(Et.ctx.fillStyle=qo(w.textDecorationColor||w.color),w.textDecorationLine.forEach(function(Sn){switch(Sn){case 1:Et.ctx.fillRect(en.bounds.left,Math.round(en.bounds.top+Ue),en.bounds.width,1);break;case 2:Et.ctx.fillRect(en.bounds.left,Math.round(en.bounds.top),en.bounds.width,1);break;case 3:Et.ctx.fillRect(en.bounds.left,Math.ceil(en.bounds.top+We),en.bounds.width,1)}}));break;case 1:w.webkitTextStrokeWidth&&en.text.trim().length&&(Et.ctx.strokeStyle=qo(w.webkitTextStrokeColor),Et.ctx.lineWidth=w.webkitTextStrokeWidth,Et.ctx.lineJoin=window.chrome?"miter":"round",Et.ctx.strokeText(en.text,en.bounds.left,en.bounds.top+Ue)),Et.ctx.strokeStyle="",Et.ctx.lineWidth=0,Et.ctx.lineJoin="miter"}})}),[2]})})},g.prototype.renderReplacedElement=function(x,w,S){if(S&&x.intrinsicWidth>0&&x.intrinsicHeight>0){var O=Lp(x),J=a0(w);this.path(J),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(S,0,0,x.intrinsicWidth,x.intrinsicHeight,O.left,O.top,O.width,O.height),this.ctx.restore()}},g.prototype.renderNodeContent=function(x){return k(this,void 0,void 0,function(){var w,S,O,J,pe,We,lt,Et,en,dn,Wn,Sn,Tn,mr,Oi,ai;return m(this,function(vn){switch(vn.label){case 0:this.applyEffects(x.getEffects(4)),S=x.curves,O=(w=x.container).styles,J=0,pe=w.textNodes,vn.label=1;case 1:return J0&&td>0&&(Wd=O.ctx.createRadialGradient(_a+ia,La+Bs,0,_a+ia,La+Bs,Gl),Ct(We.stops,2*Gl).forEach(function(d0){return Wd.addColorStop(d0.stop,qo(d0.color))}),O.path(Wo),O.ctx.fillStyle=Wd,Gl!==td?(ah=x.bounds.left+.5*x.bounds.width,nd=x.bounds.top+.5*x.bounds.height,id=1/(lh=td/Gl),O.ctx.save(),O.ctx.translate(ah,nd),O.ctx.transform(1,0,0,lh,0,0),O.ctx.translate(-ah,-nd),O.ctx.fillRect(_a,id*(La-nd)+nd,Rr,gs*id),O.ctx.restore()):O.ctx.fill())):(en=c0(x,w,[null,null,null]),Wo=en[0],ia=en[1],Bs=en[2],dn=dv(We.angle,Rr=en[3],gs=en[4]),Wn=dn[0],Sn=dn[1],Tn=dn[2],mr=dn[3],Oi=dn[4],(ai=document.createElement("canvas")).width=Rr,ai.height=gs,vn=ai.getContext("2d"),ar=vn.createLinearGradient(Sn,mr,Tn,Oi),Ct(We.stops,Wn).forEach(function(d0){return ar.addColorStop(d0.stop,qo(d0.color))}),vn.fillStyle=ar,vn.fillRect(0,0,Rr,gs),Rr>0&&gs>0&&(hr=O.ctx.createPattern(ai,"repeat"),O.renderRepeat(Wo,hr,ia,Bs))),ch.label=6;case 6:return w--,[2]}})},O=this,J=0,pe=x.styles.backgroundImage.slice(0).reverse(),Ue.label=1;case 1:return J0?2!==We.style?[3,5]:[4,this.renderDashedDottedBorder(We.color,We.width,pe,x.curves,2)]:[3,11]:[3,13];case 4:return Et.sent(),[3,11];case 5:return 3!==We.style?[3,7]:[4,this.renderDashedDottedBorder(We.color,We.width,pe,x.curves,3)];case 6:return Et.sent(),[3,11];case 7:return 4!==We.style?[3,9]:[4,this.renderDoubleBorder(We.color,We.width,pe,x.curves)];case 8:return Et.sent(),[3,11];case 9:return[4,this.renderSolidBorder(We.color,pe,x.curves)];case 10:Et.sent(),Et.label=11;case 11:pe++,Et.label=12;case 12:return me++,[3,3];case 13:return[2]}})})},g.prototype.renderDashedDottedBorder=function(x,w,S,O,J){return k(this,void 0,void 0,function(){var pe,me,Ue,We,lt,Et,bn,en,dn,Wn,Sn,Tn,mr,Oi,ai,vn;return m(this,function(ar){return this.ctx.save(),pe=function(v,g){switch(g){case 0:return l0(v.topLeftBorderStroke,v.topRightBorderStroke);case 1:return l0(v.topRightBorderStroke,v.bottomRightBorderStroke);case 2:return l0(v.bottomRightBorderStroke,v.bottomLeftBorderStroke);default:return l0(v.bottomLeftBorderStroke,v.topLeftBorderStroke)}}(O,S),me=Xv(O,S),2===J&&(this.path(me),this.ctx.clip()),al(me[0])?(Ue=me[0].start.x,We=me[0].start.y):(Ue=me[0].x,We=me[0].y),al(me[1])?(lt=me[1].end.x,Et=me[1].end.y):(lt=me[1].x,Et=me[1].y),bn=0===S||2===S?Math.abs(Ue-lt):Math.abs(We-Et),this.ctx.beginPath(),this.formatPath(3===J?pe:me.slice(0,2)),en=w<3?3*w:2*w,dn=w<3?2*w:w,3===J&&(en=w,dn=w),Wn=!0,bn<=2*en?Wn=!1:bn<=2*en+dn?(en*=Sn=bn/(2*en+dn),dn*=Sn):(Tn=Math.floor((bn+dn)/(en+dn)),mr=(bn-Tn*en)/(Tn-1),dn=(Oi=(bn-(Tn+1)*en)/Tn)<=0||Math.abs(dn-mr){function Se(Re){return Array.isArray(Re)?Re:[Re]}const m=/^\s+$/,q=/(?:[^\\]|^)\\$/,F=/^\\!/,I=/^\\#/,G=/\r?\n/g,T=/^\.*\/|^\.+$/;let V="node-ignore";typeof Symbol<"u"&&(V=Symbol.for("node-ignore"));const X=V,K=/([0-z])-([0-z])/g,oe=()=>!1,He=[[/^\uFEFF/,()=>""],[/\\?\s+$/,Re=>0===Re.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\$.|*+(){^]/g,Re=>`\\${Re}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(Re,mt,St)=>mt+6mt+St.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(Re,mt,St,Lt,qt)=>"\\"===mt?`\\[${St}${(Re=>{const{length:mt}=Re;return Re.slice(0,mt-mt%2)})(Lt)}${qt}`:"]"===qt&&Lt.length%2==0?`[${(Re=>Re.replace(K,(mt,St,Lt)=>St.charCodeAt(0)<=Lt.charCodeAt(0)?mt:""))(St)}${Lt}]`:"[]"],[/(?:[^*])$/,Re=>/\/$/.test(Re)?`${Re}$`:`${Re}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(Re,mt)=>(mt?`${mt}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],Te=Object.create(null),Je=Re=>"string"==typeof Re;class et{constructor(mt,St,Lt,qt){this.origin=mt,this.pattern=St,this.negative=Lt,this.regex=qt}}const st=(Re,mt)=>{throw new mt(Re)},Ge=(Re,mt,St)=>Je(Re)?Re?!Ge.isNotRelative(Re)||St(`path should be a \`path.relative()\`d string, but got "${mt}"`,RangeError):St("path must not be empty",TypeError):St(`path must be a string, but got \`${mt}\``,TypeError),Fe=Re=>T.test(Re);Ge.isNotRelative=Fe,Ge.convert=Re=>Re;class ge{constructor({ignorecase:mt=!0,ignoreCase:St=mt,allowRelativePaths:Lt=!1}={}){((Re,mt,St)=>{Object.defineProperty(this,mt,{value:!0})})(0,X),this._rules=[],this._ignoreCase=St,this._allowRelativePaths=Lt,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(mt){if(mt&&mt[X])return this._rules=this._rules.concat(mt._rules),void(this._added=!0);if((Re=mt)&&Je(Re)&&!m.test(Re)&&!q.test(Re)&&0!==Re.indexOf("#")){const St=((Re,mt)=>{const St=Re;let Lt=!1;0===Re.indexOf("!")&&(Lt=!0,Re=Re.substr(1));const qt=((Re,mt)=>{let St=Te[Re];return St||(St=He.reduce((Lt,qt)=>Lt.replace(qt[0],qt[1].bind(Re)),Re),Te[Re]=St),mt?new RegExp(St,"i"):new RegExp(St)})(Re=Re.replace(F,"!").replace(I,"#"),mt);return new et(St,Re,Lt,qt)})(mt,this._ignoreCase);this._added=!0,this._rules.push(St)}var Re}add(mt){return this._added=!1,Se(Je(mt)?(Re=mt,Re.split(G)):mt).forEach(this._addPattern,this),this._added&&this._initCache(),this;var Re}addPattern(mt){return this.add(mt)}_testOne(mt,St){let Lt=!1,qt=!1;return this._rules.forEach(wn=>{const{negative:On}=wn;qt===On&&Lt!==qt||On&&!Lt&&!qt&&!St||wn.regex.test(mt)&&(Lt=!On,qt=On)}),{ignored:Lt,unignored:qt}}_test(mt,St,Lt,qt){const wn=mt&&Ge.convert(mt);return Ge(wn,mt,this._allowRelativePaths?oe:st),this._t(wn,St,Lt,qt)}_t(mt,St,Lt,qt){if(mt in St)return St[mt];if(qt||(qt=mt.split("/")),qt.pop(),!qt.length)return St[mt]=this._testOne(mt,Lt);const wn=this._t(qt.join("/")+"/",St,Lt,qt);return St[mt]=wn.ignored?wn:this._testOne(mt,Lt)}ignores(mt){return this._test(mt,this._ignoreCache,!1).ignored}createFilter(){return mt=>!this.ignores(mt)}filter(mt){return Se(mt).filter(this.createFilter())}test(mt){return this._test(mt,this._testCache,!0)}}const Oe=Re=>new ge(Re);if(Oe.isPathValid=Re=>Ge(Re&&Ge.convert(Re),Re,oe),Oe.default=Oe,ut.exports=Oe,typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){Ge.convert=St=>/^\\\\\?\\/.test(St)||/["<>|\u0000-\u001F]+/u.test(St)?St:St.replace(/\\/g,"/");const mt=/^[a-z]:\//i;Ge.isNotRelative=St=>mt.test(St)||Fe(St)}},8749:ut=>{function Se(z){return!!z.constructor&&"function"==typeof z.constructor.isBuffer&&z.constructor.isBuffer(z)}ut.exports=function(z){return null!=z&&(Se(z)||function p(z){return"function"==typeof z.readFloatLE&&"function"==typeof z.slice&&Se(z.slice(0,0))}(z)||!!z._isBuffer)}},4331:ut=>{"use strict";var Se=ut.exports=function(k,m,q){"function"==typeof m&&(q=m,m={}),p(m,"function"==typeof(q=m.cb||q)?q:q.pre||function(){},q.post||function(){},k,"",k)};function p(k,m,q,F,I,G,T,W,V,X){if(F&&"object"==typeof F&&!Array.isArray(F)){for(var P in m(F,I,G,T,W,V,X),F){var K=F[P];if(Array.isArray(K)){if(P in Se.arrayKeywords)for(var oe=0;oe{var z,k,m,q,F;z=p(9928),k=p(7468).utf8,m=p(8749),q=p(7468).bin,(F=function(I,G){I.constructor==String?I=G&&"binary"===G.encoding?q.stringToBytes(I):k.stringToBytes(I):m(I)?I=Array.prototype.slice.call(I,0):!Array.isArray(I)&&I.constructor!==Uint8Array&&(I=I.toString());for(var T=z.bytesToWords(I),W=8*I.length,V=1732584193,X=-271733879,P=-1732584194,K=271733878,oe=0;oe>>24)|4278255360&(T[oe]<<24|T[oe]>>>8);T[W>>>5]|=128<>>9<<4)]=W;var ie=F._ff,Me=F._gg,He=F._hh,Te=F._ii;for(oe=0;oe>>0,X=X+Je>>>0,P=P+ke>>>0,K=K+gt>>>0}return z.endian([V,X,P,K])})._ff=function(I,G,T,W,V,X,P){var K=I+(G&T|~G&W)+(V>>>0)+P;return(K<>>32-X)+G},F._gg=function(I,G,T,W,V,X,P){var K=I+(G&W|T&~W)+(V>>>0)+P;return(K<>>32-X)+G},F._hh=function(I,G,T,W,V,X,P){var K=I+(G^T^W)+(V>>>0)+P;return(K<>>32-X)+G},F._ii=function(I,G,T,W,V,X,P){var K=I+(T^(G|~W))+(V>>>0)+P;return(K<>>32-X)+G},F._blocksize=16,F._digestsize=16,ut.exports=function(I,G){if(null==I)throw new Error("Illegal argument "+I);var T=z.wordsToBytes(F(I,G));return G&&G.asBytes?T:G&&G.asString?q.bytesToString(T):z.bytesToHex(T)}},8314:(ut,Se,p)=>{const k=p(2836),m=p(9460),q=p(7030),F=p(6511);function I(G,T,W,V,X){const P=[].slice.call(arguments,1),K=P.length,oe="function"==typeof P[K-1];if(!oe&&!k())throw new Error("Callback required as last argument");if(!oe){if(K<1)throw new Error("Too few arguments provided");return 1===K?(W=T,T=V=void 0):2===K&&!T.getContext&&(V=W,W=T,T=void 0),new Promise(function(ie,Me){try{const He=m.create(W,V);ie(G(He,T,V))}catch(He){Me(He)}})}if(K<2)throw new Error("Too few arguments provided");2===K?(X=W,W=T,T=V=void 0):3===K&&(T.getContext&&typeof X>"u"?(X=V,V=void 0):(X=V,V=W,W=T,T=void 0));try{const ie=m.create(W,V);X(null,G(ie,T,V))}catch(ie){X(ie)}}Se.mo=I.bind(null,q.render),I.bind(null,q.renderToDataURL),I.bind(null,function(G,T,W){return F.render(G,W)})},2836:ut=>{ut.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6214:(ut,Se,p)=>{const z=p(9089).getSymbolSize;Se.getRowColCoords=function(m){if(1===m)return[];const q=Math.floor(m/7)+2,F=z(m),I=145===F?26:2*Math.ceil((F-13)/(2*q-2)),G=[F-7];for(let T=1;T{const z=p(4058),k=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function m(q){this.mode=z.ALPHANUMERIC,this.data=q}m.getBitsLength=function(F){return 11*Math.floor(F/2)+F%2*6},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(F){let I;for(I=0;I+2<=this.data.length;I+=2){let G=45*k.indexOf(this.data[I]);G+=k.indexOf(this.data[I+1]),F.put(G,11)}this.data.length%2&&F.put(k.indexOf(this.data[I]),6)},ut.exports=m},4662:ut=>{function Se(){this.buffer=[],this.length=0}Se.prototype={get:function(p){const z=Math.floor(p/8);return 1==(this.buffer[z]>>>7-p%8&1)},put:function(p,z){for(let k=0;k>>z-k-1&1))},getLengthInBits:function(){return this.length},putBit:function(p){const z=Math.floor(this.length/8);this.buffer.length<=z&&this.buffer.push(0),p&&(this.buffer[z]|=128>>>this.length%8),this.length++}},ut.exports=Se},5941:ut=>{function Se(p){if(!p||p<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=p,this.data=new Uint8Array(p*p),this.reservedBit=new Uint8Array(p*p)}Se.prototype.set=function(p,z,k,m){const q=p*this.size+z;this.data[q]=k,m&&(this.reservedBit[q]=!0)},Se.prototype.get=function(p,z){return this.data[p*this.size+z]},Se.prototype.xor=function(p,z,k){this.data[p*this.size+z]^=k},Se.prototype.isReserved=function(p,z){return this.reservedBit[p*this.size+z]},ut.exports=Se},4969:(ut,Se,p)=>{const z=p(3174),k=p(4058);function m(q){this.mode=k.BYTE,"string"==typeof q&&(q=z(q)),this.data=new Uint8Array(q)}m.getBitsLength=function(F){return 8*F},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(q){for(let F=0,I=this.data.length;F{const z=p(7424),k=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],m=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];Se.getBlocksCount=function(F,I){switch(I){case z.L:return k[4*(F-1)+0];case z.M:return k[4*(F-1)+1];case z.Q:return k[4*(F-1)+2];case z.H:return k[4*(F-1)+3];default:return}},Se.getTotalCodewordsCount=function(F,I){switch(I){case z.L:return m[4*(F-1)+0];case z.M:return m[4*(F-1)+1];case z.Q:return m[4*(F-1)+2];case z.H:return m[4*(F-1)+3];default:return}}},7424:(ut,Se)=>{Se.L={bit:1},Se.M={bit:0},Se.Q={bit:3},Se.H={bit:2},Se.isValid=function(k){return k&&typeof k.bit<"u"&&k.bit>=0&&k.bit<4},Se.from=function(k,m){if(Se.isValid(k))return k;try{return function p(z){if("string"!=typeof z)throw new Error("Param is not a string");switch(z.toLowerCase()){case"l":case"low":return Se.L;case"m":case"medium":return Se.M;case"q":case"quartile":return Se.Q;case"h":case"high":return Se.H;default:throw new Error("Unknown EC Level: "+z)}}(k)}catch{return m}}},6269:(ut,Se,p)=>{const z=p(9089).getSymbolSize;Se.getPositions=function(q){const F=z(q);return[[0,0],[F-7,0],[0,F-7]]}},6254:(ut,Se,p)=>{const z=p(9089),q=z.getBCHDigit(1335);Se.getEncodedBits=function(I,G){const T=I.bit<<3|G;let W=T<<10;for(;z.getBCHDigit(W)-q>=0;)W^=1335<{const p=new Uint8Array(512),z=new Uint8Array(256);(function(){let m=1;for(let q=0;q<255;q++)p[q]=m,z[m]=q,m<<=1,256&m&&(m^=285);for(let q=255;q<512;q++)p[q]=p[q-255]})(),Se.log=function(m){if(m<1)throw new Error("log("+m+")");return z[m]},Se.exp=function(m){return p[m]},Se.mul=function(m,q){return 0===m||0===q?0:p[z[m]+z[q]]}},3264:(ut,Se,p)=>{const z=p(4058),k=p(9089);function m(q){this.mode=z.KANJI,this.data=q}m.getBitsLength=function(F){return 13*F},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(q){let F;for(F=0;F=33088&&I<=40956)I-=33088;else{if(!(I>=57408&&I<=60351))throw new Error("Invalid SJIS character: "+this.data[F]+"\nMake sure your charset is UTF-8");I-=49472}I=192*(I>>>8&255)+(255&I),q.put(I,13)}},ut.exports=m},3361:(ut,Se)=>{Se.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function z(k,m,q){switch(k){case Se.Patterns.PATTERN000:return(m+q)%2==0;case Se.Patterns.PATTERN001:return m%2==0;case Se.Patterns.PATTERN010:return q%3==0;case Se.Patterns.PATTERN011:return(m+q)%3==0;case Se.Patterns.PATTERN100:return(Math.floor(m/2)+Math.floor(q/3))%2==0;case Se.Patterns.PATTERN101:return m*q%2+m*q%3==0;case Se.Patterns.PATTERN110:return(m*q%2+m*q%3)%2==0;case Se.Patterns.PATTERN111:return(m*q%3+(m+q)%2)%2==0;default:throw new Error("bad maskPattern:"+k)}}Se.isValid=function(m){return null!=m&&""!==m&&!isNaN(m)&&m>=0&&m<=7},Se.from=function(m){return Se.isValid(m)?parseInt(m,10):void 0},Se.getPenaltyN1=function(m){const q=m.size;let F=0,I=0,G=0,T=null,W=null;for(let V=0;V=5&&(F+=I-5+3),T=P,I=1),P=m.get(X,V),P===W?G++:(G>=5&&(F+=G-5+3),W=P,G=1)}I>=5&&(F+=I-5+3),G>=5&&(F+=G-5+3)}return F},Se.getPenaltyN2=function(m){const q=m.size;let F=0;for(let I=0;I=10&&(1488===I||93===I)&&F++,G=G<<1&2047|m.get(W,T),W>=10&&(1488===G||93===G)&&F++}return 40*F},Se.getPenaltyN4=function(m){let q=0;const F=m.data.length;for(let G=0;G{const z=p(377),k=p(9359);Se.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},Se.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},Se.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},Se.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},Se.MIXED={bit:-1},Se.getCharCountIndicator=function(F,I){if(!F.ccBits)throw new Error("Invalid mode: "+F);if(!z.isValid(I))throw new Error("Invalid version: "+I);return I>=1&&I<10?F.ccBits[0]:I<27?F.ccBits[1]:F.ccBits[2]},Se.getBestModeForData=function(F){return k.testNumeric(F)?Se.NUMERIC:k.testAlphanumeric(F)?Se.ALPHANUMERIC:k.testKanji(F)?Se.KANJI:Se.BYTE},Se.toString=function(F){if(F&&F.id)return F.id;throw new Error("Invalid mode")},Se.isValid=function(F){return F&&F.bit&&F.ccBits},Se.from=function(F,I){if(Se.isValid(F))return F;try{return function m(q){if("string"!=typeof q)throw new Error("Param is not a string");switch(q.toLowerCase()){case"numeric":return Se.NUMERIC;case"alphanumeric":return Se.ALPHANUMERIC;case"kanji":return Se.KANJI;case"byte":return Se.BYTE;default:throw new Error("Unknown mode: "+q)}}(F)}catch{return I}}},6628:(ut,Se,p)=>{const z=p(4058);function k(m){this.mode=z.NUMERIC,this.data=m.toString()}k.getBitsLength=function(q){return 10*Math.floor(q/3)+(q%3?q%3*3+1:0)},k.prototype.getLength=function(){return this.data.length},k.prototype.getBitsLength=function(){return k.getBitsLength(this.data.length)},k.prototype.write=function(q){let F,I,G;for(F=0;F+3<=this.data.length;F+=3)I=this.data.substr(F,3),G=parseInt(I,10),q.put(G,10);const T=this.data.length-F;T>0&&(I=this.data.substr(F),G=parseInt(I,10),q.put(G,3*T+1))},ut.exports=k},1744:(ut,Se,p)=>{const z=p(6686);Se.mul=function(m,q){const F=new Uint8Array(m.length+q.length-1);for(let I=0;I=0;){const I=F[0];for(let T=0;T{const z=p(9089),k=p(7424),m=p(4662),q=p(5941),F=p(6214),I=p(6269),G=p(3361),T=p(3677),W=p(6289),V=p(1252),X=p(6254),P=p(4058),K=p(2868);function Te(et,Ne,st){const Ge=et.size,Fe=X.getEncodedBits(Ne,st);let ge,Oe;for(ge=0;ge<15;ge++)Oe=1==(Fe>>ge&1),et.set(ge<6?ge:ge<8?ge+1:Ge-15+ge,8,Oe,!0),et.set(8,ge<8?Ge-ge-1:ge<9?15-ge-1+1:15-ge-1,Oe,!0);et.set(Ge-8,8,1,!0)}function gt(et,Ne,st,Ge){let Fe;if(Array.isArray(et))Fe=K.fromArray(et);else{if("string"!=typeof et)throw new Error("Invalid data");{let mt=Ne;if(!mt){const St=K.rawSplit(et);mt=V.getBestVersionForData(St,st)}Fe=K.fromString(et,mt||40)}}const ge=V.getBestVersionForData(Fe,st);if(!ge)throw new Error("The amount of data is too big to be stored in a QR Code");if(Ne){if(Ne=0&&tt<=6&&(0===Re||6===Re)||Re>=0&&Re<=6&&(0===tt||6===tt)||tt>=2&&tt<=4&&Re>=2&&Re<=4,!0)}}(Re,Ne),function ie(et){const Ne=et.size;for(let st=8;st=7&&function He(et,Ne){const st=et.size,Ge=V.getEncodedBits(Ne);let Fe,ge,Oe;for(let tt=0;tt<18;tt++)Fe=Math.floor(tt/3),ge=tt%3+st-8-3,Oe=1==(Ge>>tt&1),et.set(Fe,ge,Oe,!0),et.set(ge,Fe,Oe,!0)}(Re,Ne),function Xe(et,Ne){const st=et.size;let Ge=-1,Fe=st-1,ge=7,Oe=0;for(let tt=st-1;tt>0;tt-=2)for(6===tt&&tt--;;){for(let Re=0;Re<2;Re++)if(!et.isReserved(Fe,tt-Re)){let mt=!1;Oe>>ge&1)),et.set(Fe,tt-Re,mt),ge--,-1===ge&&(Oe++,ge=7)}if(Fe+=Ge,Fe<0||st<=Fe){Fe-=Ge,Ge=-Ge;break}}}(Re,Oe),isNaN(Ge)&&(Ge=G.getBestMask(Re,Te.bind(null,Re,st))),G.applyMask(Ge,Re),Te(Re,st,Ge),{modules:Re,version:Ne,errorCorrectionLevel:st,maskPattern:Ge,segments:Fe}}Se.create=function(Ne,st){if(typeof Ne>"u"||""===Ne)throw new Error("No input text");let Fe,ge,Ge=k.M;return typeof st<"u"&&(Ge=k.from(st.errorCorrectionLevel,k.M),Fe=V.from(st.version),ge=G.from(st.maskPattern),st.toSJISFunc&&z.setToSJISFunction(st.toSJISFunc)),gt(Ne,Fe,Ge,ge)}},6289:(ut,Se,p)=>{const z=p(1744);function k(m){this.genPoly=void 0,this.degree=m,this.degree&&this.initialize(this.degree)}k.prototype.initialize=function(q){this.degree=q,this.genPoly=z.generateECPolynomial(this.degree)},k.prototype.encode=function(q){if(!this.genPoly)throw new Error("Encoder not initialized");const F=new Uint8Array(q.length+this.degree);F.set(q);const I=z.mod(F,this.genPoly),G=this.degree-I.length;if(G>0){const T=new Uint8Array(this.degree);return T.set(I,G),T}return I},ut.exports=k},9359:(ut,Se)=>{const p="[0-9]+";let k="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";k=k.replace(/u/g,"\\u");const m="(?:(?![A-Z0-9 $%*+\\-./:]|"+k+")(?:.|[\r\n]))+";Se.KANJI=new RegExp(k,"g"),Se.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Se.BYTE=new RegExp(m,"g"),Se.NUMERIC=new RegExp(p,"g"),Se.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const q=new RegExp("^"+k+"$"),F=new RegExp("^"+p+"$"),I=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Se.testKanji=function(T){return q.test(T)},Se.testNumeric=function(T){return F.test(T)},Se.testAlphanumeric=function(T){return I.test(T)}},2868:(ut,Se,p)=>{const z=p(4058),k=p(6628),m=p(1018),q=p(4969),F=p(3264),I=p(9359),G=p(9089),T=p(243);function W(He){return unescape(encodeURIComponent(He)).length}function V(He,Te,Xe){const Je=[];let ke;for(;null!==(ke=He.exec(Xe));)Je.push({data:ke[0],index:ke.index,mode:Te,length:ke[0].length});return Je}function X(He){const Te=V(I.NUMERIC,z.NUMERIC,He),Xe=V(I.ALPHANUMERIC,z.ALPHANUMERIC,He);let Je,ke;return G.isKanjiModeEnabled()?(Je=V(I.BYTE,z.BYTE,He),ke=V(I.KANJI,z.KANJI,He)):(Je=V(I.BYTE_KANJI,z.BYTE,He),ke=[]),Te.concat(Xe,Je,ke).sort(function(et,Ne){return et.index-Ne.index}).map(function(et){return{data:et.data,mode:et.mode,length:et.length}})}function P(He,Te){switch(Te){case z.NUMERIC:return k.getBitsLength(He);case z.ALPHANUMERIC:return m.getBitsLength(He);case z.KANJI:return F.getBitsLength(He);case z.BYTE:return q.getBitsLength(He)}}function Me(He,Te){let Xe;const Je=z.getBestModeForData(He);if(Xe=z.from(Te,Je),Xe!==z.BYTE&&Xe.bit=0?Te[Te.length-1]:null;return Je&&Je.mode===Xe.mode?(Te[Te.length-1].data+=Xe.data,Te):(Te.push(Xe),Te)},[])}(Ne))},Se.rawSplit=function(Te){return Se.fromArray(X(Te,G.isKanjiModeEnabled()))}},9089:(ut,Se)=>{let p;const z=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];Se.getSymbolSize=function(m){if(!m)throw new Error('"version" cannot be null or undefined');if(m<1||m>40)throw new Error('"version" should be in range from 1 to 40');return 4*m+17},Se.getSymbolTotalCodewords=function(m){return z[m]},Se.getBCHDigit=function(k){let m=0;for(;0!==k;)m++,k>>>=1;return m},Se.setToSJISFunction=function(m){if("function"!=typeof m)throw new Error('"toSJISFunc" is not a valid function.');p=m},Se.isKanjiModeEnabled=function(){return typeof p<"u"},Se.toSJIS=function(m){return p(m)}},377:(ut,Se)=>{Se.isValid=function(z){return!isNaN(z)&&z>=1&&z<=40}},1252:(ut,Se,p)=>{const z=p(9089),k=p(3677),m=p(7424),q=p(4058),F=p(377),G=z.getBCHDigit(7973);function W(P,K){return q.getCharCountIndicator(P,K)+4}function V(P,K){let oe=0;return P.forEach(function(ie){const Me=W(ie.mode,K);oe+=Me+ie.getBitsLength()}),oe}Se.from=function(K,oe){return F.isValid(K)?parseInt(K,10):oe},Se.getCapacity=function(K,oe,ie){if(!F.isValid(K))throw new Error("Invalid QR Code version");typeof ie>"u"&&(ie=q.BYTE);const Te=8*(z.getSymbolTotalCodewords(K)-k.getTotalCodewordsCount(K,oe));if(ie===q.MIXED)return Te;const Xe=Te-W(ie,K);switch(ie){case q.NUMERIC:return Math.floor(Xe/10*3);case q.ALPHANUMERIC:return Math.floor(Xe/11*2);case q.KANJI:return Math.floor(Xe/13);default:return Math.floor(Xe/8)}},Se.getBestVersionForData=function(K,oe){let ie;const Me=m.from(oe,m.M);if(Array.isArray(K)){if(K.length>1)return function X(P,K){for(let oe=1;oe<=40;oe++)if(V(P,oe)<=Se.getCapacity(oe,K,q.MIXED))return oe}(K,Me);if(0===K.length)return 1;ie=K[0]}else ie=K;return function T(P,K,oe){for(let ie=1;ie<=40;ie++)if(K<=Se.getCapacity(ie,oe,P))return ie}(ie.mode,ie.getLength(),Me)},Se.getEncodedBits=function(K){if(!F.isValid(K)||K<7)throw new Error("Invalid QR Code version");let oe=K<<12;for(;z.getBCHDigit(oe)-G>=0;)oe^=7973<{const z=p(7077);Se.render=function(F,I,G){let T=G,W=I;typeof T>"u"&&(!I||!I.getContext)&&(T=I,I=void 0),I||(W=function m(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),T=z.getOptions(T);const V=z.getImageWidth(F.modules.size,T),X=W.getContext("2d"),P=X.createImageData(V,V);return z.qrToImageData(P.data,F,T),function k(q,F,I){q.clearRect(0,0,F.width,F.height),F.style||(F.style={}),F.height=I,F.width=I,F.style.height=I+"px",F.style.width=I+"px"}(X,W,V),X.putImageData(P,0,0),W},Se.renderToDataURL=function(F,I,G){let T=G;return typeof T>"u"&&(!I||!I.getContext)&&(T=I,I=void 0),T||(T={}),Se.render(F,I,T).toDataURL(T.type||"image/png",(T.rendererOpts||{}).quality)}},6511:(ut,Se,p)=>{const z=p(7077);function k(F,I){const G=F.a/255,T=I+'="'+F.hex+'"';return G<1?T+" "+I+'-opacity="'+G.toFixed(2).slice(1)+'"':T}function m(F,I,G){let T=F+I;return typeof G<"u"&&(T+=" "+G),T}Se.render=function(I,G,T){const W=z.getOptions(G),V=I.modules.size,X=I.modules.data,P=V+2*W.margin,K=W.color.light.a?"':"",oe="0&&K>0&&F[P-1]||(T+=V?m("M",K+G,.5+oe+G):m("m",W,0),W=0,V=!1),K+1',He=''+K+oe+"\n";return"function"==typeof T&&T(null,He),He}},7077:(ut,Se)=>{function p(z){if("number"==typeof z&&(z=z.toString()),"string"!=typeof z)throw new Error("Color should be defined as hex string");let k=z.slice().replace("#","").split("");if(k.length<3||5===k.length||k.length>8)throw new Error("Invalid hex color: "+z);(3===k.length||4===k.length)&&(k=Array.prototype.concat.apply([],k.map(function(q){return[q,q]}))),6===k.length&&k.push("F","F");const m=parseInt(k.join(""),16);return{r:m>>24&255,g:m>>16&255,b:m>>8&255,a:255&m,hex:"#"+k.slice(0,6).join("")}}Se.getOptions=function(k){k||(k={}),k.color||(k.color={});const q=k.width&&k.width>=21?k.width:void 0;return{width:q,scale:q?4:k.scale||4,margin:typeof k.margin>"u"||null===k.margin||k.margin<0?4:k.margin,color:{dark:p(k.color.dark||"#000000ff"),light:p(k.color.light||"#ffffffff")},type:k.type,rendererOpts:k.rendererOpts||{}}},Se.getScale=function(k,m){return m.width&&m.width>=k+2*m.margin?m.width/(k+2*m.margin):m.scale},Se.getImageWidth=function(k,m){const q=Se.getScale(k,m);return Math.floor((k+2*m.margin)*q)},Se.qrToImageData=function(k,m,q){const F=m.modules.size,I=m.modules.data,G=Se.getScale(F,q),T=Math.floor((F+2*q.margin)*G),W=q.margin*G,V=[q.color.light,q.color.dark];for(let X=0;X=W&&P>=W&&X{"use strict";const{hasOwnProperty:p}=Object.prototype,z=oe();z.configure=oe,z.stringify=z,z.default=z,Se.stringify=z,Se.configure=oe,ut.exports=z;const k=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function m(ie){return ie.length<5e3&&!k.test(ie)?`"${ie}"`:JSON.stringify(ie)}function q(ie){if(ie.length>200)return ie.sort();for(let Me=1;MeHe;)ie[Te]=ie[Te-1],Te--;ie[Te]=He}return ie}const F=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function I(ie){return void 0!==F.call(ie)&&0!==ie.length}function G(ie,Me,He){ie.length= 1`)}return void 0===He?1/0:He}function X(ie){return 1===ie?"1 item":`${ie} items`}function oe(ie){const Me=function K(ie){if(p.call(ie,"strict")){const Me=ie.strict;if("boolean"!=typeof Me)throw new TypeError('The "strict" argument must be of type boolean');if(Me)return He=>{let Te="Object can not safely be stringified. Received type "+typeof He;throw"function"!=typeof He&&(Te+=` (${He.toString()})`),new Error(Te)}}}(ie={...ie});Me&&(void 0===ie.bigint&&(ie.bigint=!1),"circularValue"in ie||(ie.circularValue=Error));const He=function T(ie){if(p.call(ie,"circularValue")){const Me=ie.circularValue;if("string"==typeof Me)return`"${Me}"`;if(null==Me)return Me;if(Me===Error||Me===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(ie),Te=W(ie,"bigint"),Xe=W(ie,"deterministic"),Je=V(ie,"maximumDepth"),ke=V(ie,"maximumBreadth");function gt(Fe,ge,Oe,tt,Re,mt){let St=ge[Fe];switch("object"==typeof St&&null!==St&&"function"==typeof St.toJSON&&(St=St.toJSON(Fe)),St=tt.call(ge,Fe,St),typeof St){case"string":return m(St);case"object":{if(null===St)return"null";if(-1!==Oe.indexOf(St))return He;let Lt="",qt=",";const wn=mt;if(Array.isArray(St)){if(0===St.length)return"[]";if(Jeke&&(Lt+=`${qt}"... ${X(St.length-ke-1)} not stringified"`),""!==Re&&(Lt+=`\n${wn}`),Oe.pop(),`[${Lt}]`}let On=Object.keys(St);const _i=On.length;if(0===_i)return"{}";if(Jeke&&(Lt+=`${Pi}"...":${jn}"${X(_i-ke)} not stringified"`,Pi=qt),""!==Re&&Pi.length>1&&(Lt=`\n${mt}${Lt}\n${wn}`),Oe.pop(),`{${Lt}}`}case"number":return isFinite(St)?String(St):Me?Me(St):"null";case"boolean":return!0===St?"true":"false";case"undefined":return;case"bigint":if(Te)return String(St);default:return Me?Me(St):void 0}}function et(Fe,ge,Oe,tt,Re,mt){switch("object"==typeof ge&&null!==ge&&"function"==typeof ge.toJSON&&(ge=ge.toJSON(Fe)),typeof ge){case"string":return m(ge);case"object":{if(null===ge)return"null";if(-1!==Oe.indexOf(ge))return He;const St=mt;let Lt="",qt=",";if(Array.isArray(ge)){if(0===ge.length)return"[]";if(Jeke&&(Lt+=`${qt}"... ${X(ge.length-ke-1)} not stringified"`),""!==Re&&(Lt+=`\n${St}`),Oe.pop(),`[${Lt}]`}Oe.push(ge);let wn="";""!==Re&&(qt=`,\n${mt+=Re}`,wn=" ");let On="";for(const _i of tt){const jn=et(_i,ge[_i],Oe,tt,Re,mt);void 0!==jn&&(Lt+=`${On}${m(_i)}:${wn}${jn}`,On=qt)}return""!==Re&&On.length>1&&(Lt=`\n${mt}${Lt}\n${St}`),Oe.pop(),`{${Lt}}`}case"number":return isFinite(ge)?String(ge):Me?Me(ge):"null";case"boolean":return!0===ge?"true":"false";case"undefined":return;case"bigint":if(Te)return String(ge);default:return Me?Me(ge):void 0}}function Ne(Fe,ge,Oe,tt,Re){switch(typeof ge){case"string":return m(ge);case"object":{if(null===ge)return"null";if("function"==typeof ge.toJSON){if("object"!=typeof(ge=ge.toJSON(Fe)))return Ne(Fe,ge,Oe,tt,Re);if(null===ge)return"null"}if(-1!==Oe.indexOf(ge))return He;const mt=Re;if(Array.isArray(ge)){if(0===ge.length)return"[]";if(Jeke&&(jn+=`${Pi}"... ${X(ge.length-ke-1)} not stringified"`),jn+=`\n${mt}`,Oe.pop(),`[${jn}]`}let St=Object.keys(ge);const Lt=St.length;if(0===Lt)return"{}";if(Jeke&&(wn+=`${On}"...": "${X(Lt-ke)} not stringified"`,On=qt),""!==On&&(wn=`\n${Re}${wn}\n${mt}`),Oe.pop(),`{${wn}}`}case"number":return isFinite(ge)?String(ge):Me?Me(ge):"null";case"boolean":return!0===ge?"true":"false";case"undefined":return;case"bigint":if(Te)return String(ge);default:return Me?Me(ge):void 0}}function st(Fe,ge,Oe){switch(typeof ge){case"string":return m(ge);case"object":{if(null===ge)return"null";if("function"==typeof ge.toJSON){if("object"!=typeof(ge=ge.toJSON(Fe)))return st(Fe,ge,Oe);if(null===ge)return"null"}if(-1!==Oe.indexOf(ge))return He;let tt="";if(Array.isArray(ge)){if(0===ge.length)return"[]";if(Jeke&&(tt+=`,"... ${X(ge.length-ke-1)} not stringified"`),Oe.pop(),`[${tt}]`}let Re=Object.keys(ge);const mt=Re.length;if(0===mt)return"{}";if(Jeke&&(tt+=`${St}"...":"${X(mt-ke)} not stringified"`),Oe.pop(),`{${tt}}`}case"number":return isFinite(ge)?String(ge):Me?Me(ge):"null";case"boolean":return!0===ge?"true":"false";case"undefined":return;case"bigint":if(Te)return String(ge);default:return Me?Me(ge):void 0}}return function Ge(Fe,ge,Oe){if(arguments.length>1){let tt="";if("number"==typeof Oe?tt=" ".repeat(Math.min(Oe,10)):"string"==typeof Oe&&(tt=Oe.slice(0,10)),null!=ge){if("function"==typeof ge)return gt("",{"":Fe},[],ge,tt,"");if(Array.isArray(ge))return et("",Fe,[],function P(ie){const Me=new Set;for(const He of ie)("string"==typeof He||"number"==typeof He)&&Me.add(String(He));return Me}(ge),tt,"")}if(0!==tt.length)return Ne("",Fe,[],tt,"")}return st("",Fe,[])}}},5568:function(ut,Se){!function(p){"use strict";function z(){for(var Be=arguments.length,fe=Array(Be),De=0;De1){fe[0]=fe[0].slice(0,-1);for(var yt=fe.length-1,Qe=1;Qe= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Ge=Math.floor,Fe=String.fromCharCode;function ge(Be){throw new RangeError(Ne[Be])}function tt(Be,fe){var De=Be.split("@"),yt="";return De.length>1&&(yt=De[0]+"@",Be=De[1]),yt+function Oe(Be,fe){for(var De=[],yt=Be.length;yt--;)De[yt]=fe(Be[yt]);return De}((Be=Be.replace(et,".")).split("."),fe).join(".")}function Re(Be){for(var fe=[],De=0,yt=Be.length;De=55296&&Qe<=56319&&De>1,fe+=Ge(fe/De);fe>455;Qe+=K)fe=Ge(fe/35);return Ge(Qe+36*fe/(fe+38))},wn=function(fe){var De=[],yt=fe.length,Qe=0,yn=128,bi=72,ct=fe.lastIndexOf("-");ct<0&&(ct=0);for(var $i=0;$i=128&&ge("not-basic"),De.push(fe.charCodeAt($i));for(var Qr=ct>0?ct+1:0;Qr=yt&&ge("invalid-input");var zr=St(fe.charCodeAt(Qr++));(zr>=K||zr>Ge((P-Qe)/lo))&&ge("overflow"),Qe+=zr*lo;var Fi=ko<=bi?1:ko>=bi+26?26:ko-bi;if(zrGe(P/wr)&&ge("overflow"),lo*=wr}var rr=De.length+1;bi=qt(Qe-Qi,rr,0==Qi),Ge(Qe/rr)>P-yn&&ge("overflow"),yn+=Ge(Qe/rr),Qe%=rr,De.splice(Qe++,0,yn)}return String.fromCodePoint.apply(String,De)},On=function(fe){var De=[],yt=(fe=Re(fe)).length,Qe=128,yn=0,bi=72,ct=!0,$i=!1,Qr=void 0;try{for(var lo,Qi=fe[Symbol.iterator]();!(ct=(lo=Qi.next()).done);ct=!0){var ko=lo.value;ko<128&&De.push(Fe(ko))}}catch(Po){$i=!0,Qr=Po}finally{try{!ct&&Qi.return&&Qi.return()}finally{if($i)throw Qr}}var zr=De.length,Fi=zr;for(zr&&De.push("-");Fi=Qe&&fsGe((P-yn)/Ti)&&ge("overflow"),yn+=(wr-Qe)*Ti,Qe=wr;var Cl=!0,Ml=!1,Ii=void 0;try{for(var co,Hu=fe[Symbol.iterator]();!(Cl=(co=Hu.next()).done);Cl=!0){var Pd=co.value;if(PdP&&ge("overflow"),Pd==Qe){for(var _c=yn,El=K;;El+=K){var ei=El<=bi?1:El>=bi+26?26:El-bi;if(_c>6|192).toString(16).toUpperCase()+"%"+(63&fe|128).toString(16).toUpperCase():"%"+(fe>>12|224).toString(16).toUpperCase()+"%"+(fe>>6&63|128).toString(16).toUpperCase()+"%"+(63&fe|128).toString(16).toUpperCase()}function Ye(Be){for(var fe="",De=0,yt=Be.length;De=194&&Qe<224){if(yt-De>=6){var yn=parseInt(Be.substr(De+4,2),16);fe+=String.fromCharCode((31&Qe)<<6|63&yn)}else fe+=Be.substr(De,6);De+=6}else if(Qe>=224){if(yt-De>=9){var bi=parseInt(Be.substr(De+4,2),16),ct=parseInt(Be.substr(De+7,2),16);fe+=String.fromCharCode((15&Qe)<<12|(63&bi)<<6|63&ct)}else fe+=Be.substr(De,9);De+=9}else fe+=Be.substr(De,3),De+=3}return fe}function Pt(Be,fe){function De(yt){var Qe=Ye(yt);return Qe.match(fe.UNRESERVED)?Qe:yt}return Be.scheme&&(Be.scheme=String(Be.scheme).replace(fe.PCT_ENCODED,De).toLowerCase().replace(fe.NOT_SCHEME,"")),void 0!==Be.userinfo&&(Be.userinfo=String(Be.userinfo).replace(fe.PCT_ENCODED,De).replace(fe.NOT_USERINFO,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.host&&(Be.host=String(Be.host).replace(fe.PCT_ENCODED,De).toLowerCase().replace(fe.NOT_HOST,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.path&&(Be.path=String(Be.path).replace(fe.PCT_ENCODED,De).replace(Be.scheme?fe.NOT_PATH:fe.NOT_PATH_NOSCHEME,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.query&&(Be.query=String(Be.query).replace(fe.PCT_ENCODED,De).replace(fe.NOT_QUERY,li).replace(fe.PCT_ENCODED,q)),void 0!==Be.fragment&&(Be.fragment=String(Be.fragment).replace(fe.PCT_ENCODED,De).replace(fe.NOT_FRAGMENT,li).replace(fe.PCT_ENCODED,q)),Be}function jt(Be){return Be.replace(/^0*(.*)/,"$1")||"0"}function En(Be,fe){var De=Be.match(fe.IPV4ADDRESS)||[],Qe=V(De,2)[1];return Qe?Qe.split(".").map(jt).join("."):Be}function Xt(Be,fe){var De=Be.match(fe.IPV6ADDRESS)||[],yt=V(De,3),Qe=yt[1],yn=yt[2];if(Qe){for(var bi=Qe.toLowerCase().split("::").reverse(),ct=V(bi,2),$i=ct[0],Qr=ct[1],Qi=Qr?Qr.split(":").map(jt):[],lo=$i.split(":").map(jt),ko=fe.IPV4ADDRESS.test(lo[lo.length-1]),zr=ko?7:8,Fi=lo.length-zr,wr=Array(zr),rr=0;rr1){var or=wr.slice(0,Ts.index),fs=wr.slice(Ts.index+Ts.length);Jo=or.join(":")+"::"+fs.join(":")}else Jo=wr.join(":");return yn&&(Jo+="%"+yn),Jo}return Be}var on=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Yt=void 0==="".match(/(){0}/)[1];function Ri(Be){var fe=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},De={},yt=!1!==fe.iri?W:T;"suffix"===fe.reference&&(Be=(fe.scheme?fe.scheme+":":"")+"//"+Be);var Qe=Be.match(on);if(Qe){Yt?(De.scheme=Qe[1],De.userinfo=Qe[3],De.host=Qe[4],De.port=parseInt(Qe[5],10),De.path=Qe[6]||"",De.query=Qe[7],De.fragment=Qe[8],isNaN(De.port)&&(De.port=Qe[5])):(De.scheme=Qe[1]||void 0,De.userinfo=-1!==Be.indexOf("@")?Qe[3]:void 0,De.host=-1!==Be.indexOf("//")?Qe[4]:void 0,De.port=parseInt(Qe[5],10),De.path=Qe[6]||"",De.query=-1!==Be.indexOf("?")?Qe[7]:void 0,De.fragment=-1!==Be.indexOf("#")?Qe[8]:void 0,isNaN(De.port)&&(De.port=Be.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?Qe[4]:void 0)),De.host&&(De.host=Xt(En(De.host,yt),yt)),De.reference=void 0!==De.scheme||void 0!==De.userinfo||void 0!==De.host||void 0!==De.port||De.path||void 0!==De.query?void 0===De.scheme?"relative":void 0===De.fragment?"absolute":"uri":"same-document",fe.reference&&"suffix"!==fe.reference&&fe.reference!==De.reference&&(De.error=De.error||"URI is not a "+fe.reference+" reference.");var yn=Ui[(fe.scheme||De.scheme||"").toLowerCase()];if(fe.unicodeSupport||yn&&yn.unicodeSupport)Pt(De,yt);else{if(De.host&&(fe.domainHost||yn&&yn.domainHost))try{De.host=Pi.toASCII(De.host.replace(yt.PCT_ENCODED,Ye).toLowerCase())}catch(bi){De.error=De.error||"Host's domain name can not be converted to ASCII via punycode: "+bi}Pt(De,T)}yn&&yn.parse&&yn.parse(De,fe)}else De.error=De.error||"URI can not be parsed.";return De}var yr=/^\.\.?\//,Xn=/^\/\.(\/|$)/,ri=/^\/\.\.(\/|$)/,Qo=/^\/?(?:.|\n)*?(?=\/|$)/;function So(Be){for(var fe=[];Be.length;)if(Be.match(yr))Be=Be.replace(yr,"");else if(Be.match(Xn))Be=Be.replace(Xn,"/");else if(Be.match(ri))Be=Be.replace(ri,"/"),fe.pop();else if("."===Be||".."===Be)Be="";else{var De=Be.match(Qo);if(!De)throw new Error("Unexpected dot segment condition");var yt=De[0];Be=Be.slice(yt.length),fe.push(yt)}return fe.join("")}function Zi(Be){var fe=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},De=fe.iri?W:T,yt=[],Qe=Ui[(fe.scheme||Be.scheme||"").toLowerCase()];if(Qe&&Qe.serialize&&Qe.serialize(Be,fe),Be.host&&!De.IPV6ADDRESS.test(Be.host)&&(fe.domainHost||Qe&&Qe.domainHost))try{Be.host=fe.iri?Pi.toUnicode(Be.host):Pi.toASCII(Be.host.replace(De.PCT_ENCODED,Ye).toLowerCase())}catch(ct){Be.error=Be.error||"Host's domain name can not be converted to "+(fe.iri?"Unicode":"ASCII")+" via punycode: "+ct}Pt(Be,De),"suffix"!==fe.reference&&Be.scheme&&(yt.push(Be.scheme),yt.push(":"));var yn=function ir(Be,fe){var De=!1!==fe.iri?W:T,yt=[];return void 0!==Be.userinfo&&(yt.push(Be.userinfo),yt.push("@")),void 0!==Be.host&&yt.push(Xt(En(String(Be.host),De),De).replace(De.IPV6ADDRESS,function(Qe,yn,bi){return"["+yn+(bi?"%25"+bi:"")+"]"})),("number"==typeof Be.port||"string"==typeof Be.port)&&(yt.push(":"),yt.push(String(Be.port))),yt.length?yt.join(""):void 0}(Be,fe);if(void 0!==yn&&("suffix"!==fe.reference&&yt.push("//"),yt.push(yn),Be.path&&"/"!==Be.path.charAt(0)&&yt.push("/")),void 0!==Be.path){var bi=Be.path;!fe.absolutePath&&(!Qe||!Qe.absolutePath)&&(bi=So(bi)),void 0===yn&&(bi=bi.replace(/^\/\//,"/%2F")),yt.push(bi)}return void 0!==Be.query&&(yt.push("?"),yt.push(Be.query)),void 0!==Be.fragment&&(yt.push("#"),yt.push(Be.fragment)),yt.join("")}function Er(Be,fe){var De=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},Qe={};return arguments[3]||(Be=Ri(Zi(Be,De),De),fe=Ri(Zi(fe,De),De)),!(De=De||{}).tolerant&&fe.scheme?(Qe.scheme=fe.scheme,Qe.userinfo=fe.userinfo,Qe.host=fe.host,Qe.port=fe.port,Qe.path=So(fe.path||""),Qe.query=fe.query):(void 0!==fe.userinfo||void 0!==fe.host||void 0!==fe.port?(Qe.userinfo=fe.userinfo,Qe.host=fe.host,Qe.port=fe.port,Qe.path=So(fe.path||""),Qe.query=fe.query):(fe.path?("/"===fe.path.charAt(0)?Qe.path=So(fe.path):(Qe.path=void 0===Be.userinfo&&void 0===Be.host&&void 0===Be.port||Be.path?Be.path?Be.path.slice(0,Be.path.lastIndexOf("/")+1)+fe.path:fe.path:"/"+fe.path,Qe.path=So(Qe.path)),Qe.query=fe.query):(Qe.path=Be.path,Qe.query=void 0!==fe.query?fe.query:Be.query),Qe.userinfo=Be.userinfo,Qe.host=Be.host,Qe.port=Be.port),Qe.scheme=Be.scheme),Qe.fragment=fe.fragment,Qe}function Js(Be,fe){return Be&&Be.toString().replace(fe&&fe.iri?W.PCT_ENCODED:T.PCT_ENCODED,Ye)}var wl={scheme:"http",domainHost:!0,parse:function(fe,De){return fe.host||(fe.error=fe.error||"HTTP URIs must have a host."),fe},serialize:function(fe,De){var yt="https"===String(fe.scheme).toLowerCase();return(fe.port===(yt?443:80)||""===fe.port)&&(fe.port=void 0),fe.path||(fe.path="/"),fe}},ea={scheme:"https",domainHost:wl.domainHost,parse:wl.parse,serialize:wl.serialize};function Zo(Be){return"boolean"==typeof Be.secure?Be.secure:"wss"===String(Be.scheme).toLowerCase()}var xl={scheme:"ws",domainHost:!0,parse:function(fe,De){var yt=fe;return yt.secure=Zo(yt),yt.resourceName=(yt.path||"/")+(yt.query?"?"+yt.query:""),yt.path=void 0,yt.query=void 0,yt},serialize:function(fe,De){if((fe.port===(Zo(fe)?443:80)||""===fe.port)&&(fe.port=void 0),"boolean"==typeof fe.secure&&(fe.scheme=fe.secure?"wss":"ws",fe.secure=void 0),fe.resourceName){var yt=fe.resourceName.split("?"),Qe=V(yt,2),yn=Qe[0],bi=Qe[1];fe.path=yn&&"/"!==yn?yn:void 0,fe.query=bi,fe.resourceName=void 0}return fe.fragment=void 0,fe}},Ac={scheme:"wss",domainHost:xl.domainHost,parse:xl.parse,serialize:xl.serialize},Bd={},gc="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Ss="[0-9A-Fa-f]",Gc=k(k("%[EFef]"+Ss+"%"+Ss+Ss+"%"+Ss+Ss)+"|"+k("%[89A-Fa-f]"+Ss+"%"+Ss+Ss)+"|"+k("%"+Ss+Ss)),sp=z("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),ma=new RegExp(gc,"g"),Wc=new RegExp(Gc,"g"),Uu=new RegExp(z("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',sp),"g"),Ji=new RegExp(z("[^]",gc,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),Af=Ji;function gf(Be){var fe=Ye(Be);return fe.match(ma)?fe:Be}var Ag={scheme:"mailto",parse:function(fe,De){var yt=fe,Qe=yt.to=yt.path?yt.path.split(","):[];if(yt.path=void 0,yt.query){for(var yn=!1,bi={},ct=yt.query.split("&"),$i=0,Qr=ct.length;$i{ut.exports="varying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\nvarying vec3 vWorldNormal;\n\nbool normalPointingUp(const in vec3 normal)\n{\n return normal.y > 0.9;\n}\n\nvoid main() {\n const float minDelta = 0.001;\n bool isTop = normalPointingUp(vWorldNormal);\n \n if (abs(vDelta) > minDelta && (vUV.y > 1.0 - abs(vDelta) || isTop))\n {\n gl_FragColor = vOutgoingDiffuseDeltaColor;\n } else {\n gl_FragColor = vOutgoingDiffuseColor;\n }\n}\n"},1812:ut=>{ut.exports="#define saturate(a) clamp( a, 0.0, 1.0)\n#define RECIPROCAL_PI 0.31830988618\n#define PI 3.14159265359\n\nattribute vec3 color;\nattribute vec3 deltaColor;\nattribute highp float delta;\nattribute lowp float isHeight;\n\nvarying vec3 vWorldNormal;\nvarying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\n\nuniform vec3 ambientLightColor;\n\nstruct DirectionalLight {\n vec3 direction;\n vec3 color;\n};\nuniform DirectionalLight directionalLights[NUM_DIR_LIGHTS];\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n\nvoid getDirectionalDirectLightIrradiance(const in DirectionalLight directionalLight,out IncidentLight directLight) {\n directLight.color = directionalLight.color;\n directLight.direction = directionalLight.direction;\n}\n\nvec3 BRDF_Diffuse_Lambert (const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nvec3 getAmbientLightIrradiance() {\n return ambientLightColor*PI;\n}\n\nvec3 getBaseOutgoingLight(const vec3 lightFront) {\n ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n reflectedLight.indirectDiffuse = getAmbientLightIrradiance();\n reflectedLight.directDiffuse = lightFront;\n return (reflectedLight.directDiffuse + reflectedLight.indirectDiffuse);\n}\n\n// better to calc the colors in vertex as no color interpolation is used, performance improvements will be noticeable \n// once frustum or occlusion culling is properly used\n\nvoid main() \n{\n vec3 adjustedHeightPos = position;\n \n // height position will be adjusted based on camera position in order to prevent \n // z-fighting in different zoom levels when position is positive.\n // preferred multiplication over if branching of the isHeight variable \n // the same line could be written this way : \n //\n // adjustedHeightPos = position\n // if (isHeight>0.5 && cameraPosition.y>0) {\n // adjustedHeightPos.y = position.y + cameraPosition.y/1000.\n // } \n // \n \n adjustedHeightPos.y = position.y + (isHeight*max(0.,cameraPosition.y/1000.));\n\n\tvec4 modelViewPosition = modelViewMatrix * vec4(adjustedHeightPos, 1.0);\n\tgl_Position = projectionMatrix * modelViewPosition;\n\n vec3 worldNormal = vWorldNormal = normalize((modelMatrix * vec4(normal, 0.0)).xyz);\n vec3 normal= normalize(normalMatrix * normal);\n vec3 lightFront = vec3(0.0);\n\n vUV = uv;\n vDelta = abs(delta);\n\n for (int i=0; i < 2; ++i)\n {\n IncidentLight directLight;\n\n getDirectionalDirectLightIrradiance(directionalLights[i],directLight);\n float dotNL = dot(normal, directLight.direction);\n vec3 directLightColor_Diffuse = PI * directLight.color; \n lightFront += saturate(dotNL) * directLightColor_Diffuse;\n }\n\n vec3 baseOutgoingLight = getBaseOutgoingLight(lightFront);\n \n vOutgoingDiffuseColor = vec4(BRDF_Diffuse_Lambert(color.rgb)*baseOutgoingLight,1.0);\n vOutgoingDiffuseDeltaColor = vec4(BRDF_Diffuse_Lambert(deltaColor)*baseOutgoingLight,1.0);\n}\n"},6655:ut=>{ut.exports='precision highp float;\n\t\t\nuniform sampler2D tDiffuse;\nuniform vec2 resolution;\n\t\t\nvarying vec2 vUv;\n\t\t\n// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n//----------------------------------------------------------------------------------\n// File: es3-kepler\\FXAA\\assets\\shaders/FXAA_DefaultES.frag\n// SDK Version: v3.00\n// Email: gameworks@nvidia.com\n// Site: http://developer.nvidia.com/\n//\n// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of NVIDIA CORPORATION nor the names of its\n// contributors may be used to endorse or promote products derived\n// from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS\\\\ AND ANY\n// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n//----------------------------------------------------------------------------------\n\t\t\n#define FXAA_PC 1\n#define FXAA_GLSL_100 1\n#define FXAA_QUALITY_PRESET 15\n#define FXAA_GATHER4_ALPHA 0\n#define FXAA_GREEN_AS_LUMA 1\n#define FXAA_EARLY_EXIT 1\n\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_120\n #define FXAA_GLSL_120 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_130\n #define FXAA_GLSL_130 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_3\n #define FXAA_HLSL_3 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_4\n #define FXAA_HLSL_4 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_5\n #define FXAA_HLSL_5 0\n#endif\n/*==========================================================================*/\n#ifndef FXAA_GREEN_AS_LUMA\n //\n // For those using non-linear color,\n // and either not able to get luma in alpha, or not wanting to,\n // this enables FXAA to run using green as a proxy for luma.\n // So with this enabled, no need to pack luma in alpha.\n //\n // This will turn off AA on anything which lacks some amount of green.\n // Pure red and blue or combination of only R and B, will get no AA.\n //\n // Might want to lower the settings for both,\n // fxaaConsoleEdgeThresholdMin\n // fxaaQualityEdgeThresholdMin\n // In order to insure AA does not get turned off on colors\n // which contain a minor amount of green.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_GREEN_AS_LUMA 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_EARLY_EXIT\n //\n // Controls algorithm\\s early exit path.\n // On PS3 turning this ON adds 2 cycles to the shader.\n // On 360 turning this OFF adds 10ths of a millisecond to the shader.\n // Turning this off on console will result in a more blurry image.\n // So this defaults to on.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_EARLY_EXIT 1\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_DISCARD\n //\n // Only valid for PC OpenGL currently.\n // Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n //\n // 1 = Use discard on pixels which don\\t need AA.\n // For APIs which enable concurrent TEX+ROP from same surface.\n // 0 = Return unchanged color on pixels which don\\t need AA.\n //\n #define FXAA_DISCARD 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_FAST_PIXEL_OFFSET\n //\n // Used for GLSL 120 only.\n //\n // 1 = GL API supports fast pixel offsets\n // 0 = do not use fast pixel offsets\n //\n #ifdef GL_EXT_gpu_shader4\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifndef FXAA_FAST_PIXEL_OFFSET\n #define FXAA_FAST_PIXEL_OFFSET 0\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GATHER4_ALPHA\n //\n // 1 = API supports gather4 on alpha channel.\n // 0 = API does not support gather4 on alpha channel.\n //\n #if (FXAA_HLSL_5 == 1)\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifndef FXAA_GATHER4_ALPHA\n #define FXAA_GATHER4_ALPHA 0\n #endif\n#endif\n\n\n/*============================================================================\n FXAA QUALITY - TUNING KNOBS\n------------------------------------------------------------------------------\nNOTE the other tuning knobs are now in the shader function inputs!\n============================================================================*/\n#ifndef FXAA_QUALITY_PRESET\n //\n // Choose the quality preset.\n // This needs to be compiled into the shader as it effects code.\n // Best option to include multiple presets is to\n // in each shader define the preset, then include this file.\n //\n // OPTIONS\n // -----------------------------------------------------------------------\n // 10 to 15 - default medium dither (10=fastest, 15=highest quality)\n // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)\n // 39 - no dither, very expensive\n //\n // NOTES\n // -----------------------------------------------------------------------\n // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)\n // 13 = about same speed as FXAA 3.9 and better than 12\n // 23 = closest to FXAA 3.9 visually and performance wise\n // _ = the lowest digit is directly related to performance\n // _ = the highest digit is directly related to style\n //\n #define FXAA_QUALITY_PRESET 12\n#endif\n\n\n/*============================================================================\n\n FXAA QUALITY - PRESETS\n\n============================================================================*/\n\n/*============================================================================\n FXAA QUALITY - MEDIUM DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 10)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 3.0\n #define FXAA_QUALITY_P2 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 11)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 3.0\n #define FXAA_QUALITY_P3 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 12)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 4.0\n #define FXAA_QUALITY_P4 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 13)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 4.0\n #define FXAA_QUALITY_P5 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 14)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 4.0\n #define FXAA_QUALITY_P6 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 15)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 12.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - LOW DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 20)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 2.0\n #define FXAA_QUALITY_P2 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 21)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 22)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 23)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 24)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 3.0\n #define FXAA_QUALITY_P6 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 25)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 26)\n #define FXAA_QUALITY_PS 9\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 4.0\n #define FXAA_QUALITY_P8 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 27)\n #define FXAA_QUALITY_PS 10\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 4.0\n #define FXAA_QUALITY_P9 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 28)\n #define FXAA_QUALITY_PS 11\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 4.0\n #define FXAA_QUALITY_P10 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 29)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - EXTREME QUALITY\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 39)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.0\n #define FXAA_QUALITY_P2 1.0\n #define FXAA_QUALITY_P3 1.0\n #define FXAA_QUALITY_P4 1.0\n #define FXAA_QUALITY_P5 1.5\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n\n\n/*============================================================================\n\n API PORTING\n\n============================================================================*/\n#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)\n #define FxaaBool bool\n #define FxaaDiscard discard\n #define FxaaFloat float\n #define FxaaFloat2 vec2\n #define FxaaFloat3 vec3\n #define FxaaFloat4 vec4\n #define FxaaHalf float\n #define FxaaHalf2 vec2\n #define FxaaHalf3 vec3\n #define FxaaHalf4 vec4\n #define FxaaInt2 ivec2\n #define FxaaSat(x) clamp(x, 0.0, 1.0)\n #define FxaaTex sampler2D\n#else\n #define FxaaBool bool\n #define FxaaDiscard clip(-1)\n #define FxaaFloat float\n #define FxaaFloat2 float2\n #define FxaaFloat3 float3\n #define FxaaFloat4 float4\n #define FxaaHalf half\n #define FxaaHalf2 half2\n #define FxaaHalf3 half3\n #define FxaaHalf4 half4\n #define FxaaSat(x) saturate(x)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_100 == 1)\n #define FxaaTexTop(t, p) texture2D(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_120 == 1)\n // Requires,\n // #version 120\n // And at least,\n // #extension GL_EXT_gpu_shader4 : enable\n // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)\n #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)\n #if (FXAA_FAST_PIXEL_OFFSET == 1)\n #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)\n #else\n #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)\n #endif\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_130 == 1)\n // Requires "#version 130" or better\n #define FxaaTexTop(t, p) textureLod(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_3 == 1)\n #define FxaaInt2 float2\n #define FxaaTex sampler2D\n #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))\n #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_4 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_5 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)\n #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)\n #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)\n #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)\n#endif\n\n\n/*============================================================================\n GREEN AS LUMA OPTION SUPPORT FUNCTION\n============================================================================*/\n#if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }\n#else\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }\n#endif\n\n/*============================================================================\n\n FXAA3 QUALITY - PC\n\n============================================================================*/\n#if (FXAA_PC == 1)\n/*--------------------------------------------------------------------------*/\nFxaaFloat4 FxaaPixelShader(\n //\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy} = center of pixel\n FxaaFloat2 pos,\n //\n // Used only for FXAA Console, and not used on the 360 version.\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy_} = upper left of pixel\n // {_zw} = lower right of pixel\n FxaaFloat4 fxaaConsolePosPos,\n //\n // Input color texture.\n // {rgb_} = color in linear or perceptual color space\n // if (FXAA_GREEN_AS_LUMA == 0)\n // {__a} = luma in perceptual color space (not linear)\n FxaaTex tex,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 2nd sampler.\n // This sampler needs to have an exponent bias of -1.\n FxaaTex fxaaConsole360TexExpBiasNegOne,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 3nd sampler.\n // This sampler needs to have an exponent bias of -2.\n FxaaTex fxaaConsole360TexExpBiasNegTwo,\n //\n // Only used on FXAA Quality.\n // This must be from a constant/uniform.\n // {x_} = 1.0/screenWidthInPixels\n // {_y} = 1.0/screenHeightInPixels\n FxaaFloat2 fxaaQualityRcpFrame,\n //\n // Only used on FXAA Console.\n // This must be from a constant/uniform.\n // This effects sub-pixel AA quality and inversely sharpness.\n // Where N ranges between,\n // N = 0.50 (default)\n // N = 0.33 (sharper)\n // {x__} = -N/screenWidthInPixels\n // {_y_} = -N/screenHeightInPixels\n // {_z_} = N/screenWidthInPixels\n // {__w} = N/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt,\n //\n // Only used on FXAA Console.\n // Not used on 360, but used on PS3 and PC.\n // This must be from a constant/uniform.\n // {x__} = -2.0/screenWidthInPixels\n // {_y_} = -2.0/screenHeightInPixels\n // {_z_} = 2.0/screenWidthInPixels\n // {__w} = 2.0/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt2,\n //\n // Only used on FXAA Console.\n // Only used on 360 in place of fxaaConsoleRcpFrameOpt2.\n // This must be from a constant/uniform.\n // {x__} = 8.0/screenWidthInPixels\n // {_y_} = 8.0/screenHeightInPixels\n // {_z_} = -4.0/screenWidthInPixels\n // {__w} = -4.0/screenHeightInPixels\n FxaaFloat4 fxaaConsole360RcpFrameOpt2,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_SUBPIX define.\n // It is here now to allow easier tuning.\n // Choose the amount of sub-pixel aliasing removal.\n // This can effect sharpness.\n // 1.00 - upper limit (softer)\n // 0.75 - default amount of filtering\n // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)\n // 0.25 - almost off\n // 0.00 - completely off\n FxaaFloat fxaaQualitySubpix,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // The minimum amount of local contrast required to apply algorithm.\n // 0.333 - too little (faster)\n // 0.250 - low quality\n // 0.166 - default\n // 0.125 - high quality\n // 0.063 - overkill (slower)\n FxaaFloat fxaaQualityEdgeThreshold,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // 0.0833 - upper limit (default, the start of visible unfiltered edges)\n // 0.0625 - high quality (faster)\n // 0.0312 - visible limit (slower)\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaQualityEdgeThresholdMin,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3.\n // Due to the PS3 being ALU bound,\n // there are only three safe values here: 2 and 4 and 8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // For all other platforms can be a non-power of two.\n // 8.0 is sharper (default!!!)\n // 4.0 is softer\n // 2.0 is really soft (good only for vector graphics inputs)\n FxaaFloat fxaaConsoleEdgeSharpness,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3.\n // Due to the PS3 being ALU bound,\n // there are only two safe values here: 1/4 and 1/8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // The console setting has a different mapping than the quality setting.\n // Other platforms can use other values.\n // 0.125 leaves less aliasing, but is softer (default!!!)\n // 0.25 leaves more aliasing, and is sharper\n FxaaFloat fxaaConsoleEdgeThreshold,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // The console setting has a different mapping than the quality setting.\n // This only applies when FXAA_EARLY_EXIT is 1.\n // This does not apply to PS3,\n // PS3 was simplified to avoid more shader instructions.\n // 0.06 - faster but more aliasing in darks\n // 0.05 - default\n // 0.04 - slower and less aliasing in darks\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaConsoleEdgeThresholdMin,\n //\n // Extra constants for 360 FXAA Console only.\n // Use zeros or anything else for other platforms.\n // These must be in physical constant registers and NOT immediates.\n // Immediates will result in compiler un-optimizing.\n // {xyzw} = float4(1.0, -1.0, 0.25, -0.25)\n FxaaFloat4 fxaaConsole360ConstDir\n) {\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posM;\n posM.x = pos.x;\n posM.y = pos.y;\n #if (FXAA_GATHER4_ALPHA == 1)\n #if (FXAA_DISCARD == 0)\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #endif\n #if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));\n #else\n FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));\n #endif\n #if (FXAA_DISCARD == 1)\n #define lumaM luma4A.w\n #endif\n #define lumaE luma4A.z\n #define lumaS luma4A.x\n #define lumaSE luma4A.y\n #define lumaNW luma4B.w\n #define lumaN luma4B.z\n #define lumaW luma4B.x\n #else\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));\n #endif\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat maxSM = max(lumaS, lumaM);\n FxaaFloat minSM = min(lumaS, lumaM);\n FxaaFloat maxESM = max(lumaE, maxSM);\n FxaaFloat minESM = min(lumaE, minSM);\n FxaaFloat maxWN = max(lumaN, lumaW);\n FxaaFloat minWN = min(lumaN, lumaW);\n FxaaFloat rangeMax = max(maxWN, maxESM);\n FxaaFloat rangeMin = min(minWN, minESM);\n FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\n FxaaFloat range = rangeMax - rangeMin;\n FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\n FxaaBool earlyExit = range < rangeMaxClamped;\n/*--------------------------------------------------------------------------*/\n if(earlyExit)\n #if (FXAA_DISCARD == 1)\n FxaaDiscard;\n #else\n return rgbyM;\n #endif\n/*--------------------------------------------------------------------------*/\n #if (FXAA_GATHER4_ALPHA == 0)\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n #else\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNS = lumaN + lumaS;\n FxaaFloat lumaWE = lumaW + lumaE;\n FxaaFloat subpixRcpRange = 1.0/range;\n FxaaFloat subpixNSWE = lumaNS + lumaWE;\n FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;\n FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNESE = lumaNE + lumaSE;\n FxaaFloat lumaNWNE = lumaNW + lumaNE;\n FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\n FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNWSW = lumaNW + lumaSW;\n FxaaFloat lumaSWSE = lumaSW + lumaSE;\n FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\n FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\n FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\n FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\n FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;\n FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;\n/*--------------------------------------------------------------------------*/\n FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;\n FxaaFloat lengthSign = fxaaQualityRcpFrame.x;\n FxaaBool horzSpan = edgeHorz >= edgeVert;\n FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\n/*--------------------------------------------------------------------------*/\n if(!horzSpan) lumaN = lumaW;\n if(!horzSpan) lumaS = lumaE;\n if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\n FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;\n/*--------------------------------------------------------------------------*/\n FxaaFloat gradientN = lumaN - lumaM;\n FxaaFloat gradientS = lumaS - lumaM;\n FxaaFloat lumaNN = lumaN + lumaM;\n FxaaFloat lumaSS = lumaS + lumaM;\n FxaaBool pairN = abs(gradientN) >= abs(gradientS);\n FxaaFloat gradient = max(abs(gradientN), abs(gradientS));\n if(pairN) lengthSign = -lengthSign;\n FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posB;\n posB.x = posM.x;\n posB.y = posM.y;\n FxaaFloat2 offNP;\n offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n if(!horzSpan) posB.x += lengthSign * 0.5;\n if( horzSpan) posB.y += lengthSign * 0.5;\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posN;\n posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;\n posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;\n FxaaFloat2 posP;\n posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;\n posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;\n FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;\n FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));\n FxaaFloat subpixE = subpixC * subpixC;\n FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));\n/*--------------------------------------------------------------------------*/\n if(!pairN) lumaNN = lumaSS;\n FxaaFloat gradientScaled = gradient * 1.0/4.0;\n FxaaFloat lumaMM = lumaM - lumaNN * 0.5;\n FxaaFloat subpixF = subpixD * subpixE;\n FxaaBool lumaMLTZero = lumaMM < 0.0;\n/*--------------------------------------------------------------------------*/\n lumaEndN -= lumaNN * 0.5;\n lumaEndP -= lumaNN * 0.5;\n FxaaBool doneN = abs(lumaEndN) >= gradientScaled;\n FxaaBool doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;\n FxaaBool doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;\n/*--------------------------------------------------------------------------*/\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 3)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 4)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 5)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 6)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 7)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 8)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 9)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 10)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 11)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 12)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n/*--------------------------------------------------------------------------*/\n FxaaFloat dstN = posM.x - posN.x;\n FxaaFloat dstP = posP.x - posM.x;\n if(!horzSpan) dstN = posM.y - posN.y;\n if(!horzSpan) dstP = posP.y - posM.y;\n/*--------------------------------------------------------------------------*/\n FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\n FxaaFloat spanLength = (dstP + dstN);\n FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\n FxaaFloat spanLengthRcp = 1.0/spanLength;\n/*--------------------------------------------------------------------------*/\n FxaaBool directionN = dstN < dstP;\n FxaaFloat dst = min(dstN, dstP);\n FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;\n FxaaFloat subpixG = subpixF * subpixF;\n FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\n FxaaFloat subpixH = subpixG * fxaaQualitySubpix;\n/*--------------------------------------------------------------------------*/\n FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\n FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\n if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\n if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\n #if (FXAA_DISCARD == 1)\n return FxaaTexTop(tex, posM);\n #else\n return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);\n #endif\n}\n/*==========================================================================*/\n#endif\n\nvoid main() {\n gl_FragColor = FxaaPixelShader(\n vUv,\n vec4(0.0),\n tDiffuse,\n tDiffuse,\n tDiffuse,\n resolution,\n vec4(0.0),\n vec4(0.0),\n vec4(0.0),\n 0.75,\n 0.166,\n 0.0833,\n 0.0,\n 0.0,\n 0.0,\n vec4(0.0)\n );\n\n // TODO avoid querying texture twice for same texel\n gl_FragColor.a = texture2D(tDiffuse, vUv).a;\n}\n'},889:ut=>{ut.exports="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n"},3420:ut=>{"use strict";ut.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},8198:ut=>{"use strict";ut.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},ut=>{ut(ut.s=9328)}]); \ No newline at end of file diff --git a/gh-pages/visualization/app/package.json b/gh-pages/visualization/app/package.json index 74d41cc791..eb57e99617 100644 --- a/gh-pages/visualization/app/package.json +++ b/gh-pages/visualization/app/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/MaibornWolff/codecharta.git" }, "name": "codecharta-visualization", - "version": "1.129.0", + "version": "1.129.1", "engines": { "node": ">=20" }, diff --git a/visualization/CHANGELOG.md b/visualization/CHANGELOG.md index 5ec7406187..c7e28e641f 100644 --- a/visualization/CHANGELOG.md +++ b/visualization/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/) ## [unreleased] (Added 🚀 | Changed | Removed 🗑 | Fixed 🐞 | Chore 👨‍💻 👩‍💻) +## [1.129.1] - 2024-10-18 + ### Fixed 🐞 - Fix an issue which caused the web demo files to be incomplete [#3790](https://github.com/MaibornWolff/codecharta/pull/3758) diff --git a/visualization/package-lock.json b/visualization/package-lock.json index 4d9c3cac4a..f970e170b0 100644 --- a/visualization/package-lock.json +++ b/visualization/package-lock.json @@ -1,12 +1,12 @@ { "name": "codecharta-visualization", - "version": "1.129.0", + "version": "1.129.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codecharta-visualization", - "version": "1.129.0", + "version": "1.129.1", "license": "BSD-3-Clause", "dependencies": { "@angular/animations": "^17.3.3", diff --git a/visualization/package.json b/visualization/package.json index 74d41cc791..eb57e99617 100644 --- a/visualization/package.json +++ b/visualization/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/MaibornWolff/codecharta.git" }, "name": "codecharta-visualization", - "version": "1.129.0", + "version": "1.129.1", "engines": { "node": ">=20" },